./PaxHeaders/elk-9.6.80000644000000000000000000000013114626155532011457 xustar0030 mtime=1717099354.693044079 29 atime=1717099335.06793834 30 ctime=1717099354.693044079 elk-9.6.8/0000755002504400250440000000000014626155532014122 5ustar00dewhurstdewhurst00000000000000elk-9.6.8/PaxHeaders/src0000644000000000000000000000013214626155521012110 xustar0030 mtime=1717099345.591995043 30 atime=1717099341.748974337 30 ctime=1717099345.591995043 elk-9.6.8/src/0000755002504400250440000000000014626155521014707 5ustar00dewhurstdewhurst00000000000000elk-9.6.8/src/PaxHeaders/eos0000644000000000000000000000013214626155515012701 xustar0030 mtime=1717099341.792974574 30 atime=1717099341.761974407 30 ctime=1717099341.792974574 elk-9.6.8/src/eos/0000755002504400250440000000000014626155515015500 5ustar00dewhurstdewhurst00000000000000elk-9.6.8/src/eos/PaxHeaders/eos.f900000644000000000000000000000013214626155515014064 xustar0030 mtime=1717099341.764974423 30 atime=1717099341.764974423 30 ctime=1717099341.764974423 elk-9.6.8/src/eos/eos.f900000644002504400250440000000051714626155515016611 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-9.6.8/src/eos/PaxHeaders/eveos.f900000644000000000000000000000012714626155515014423 xustar0029 mtime=1717099341.76797444 29 atime=1717099341.76797444 29 ctime=1717099341.76797444 elk-9.6.8/src/eos/eveos.f900000644002504400250440000000454414626155515017150 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 < 1.d-5) v0=1.d-5 if (abs(b0p-1.d0) < 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 < 1.d-5) v0=1.d-5 if (abs(b0p) < 1.d-5) b0p=1.d-5 if (abs(b0p-1.d0) < 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 < 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 < 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 < 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 < 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 < 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-9.6.8/src/eos/PaxHeaders/fitdata.f900000644000000000000000000000013114626155515014711 xustar0030 mtime=1717099341.770974456 29 atime=1717099341.76997445 30 ctime=1717099341.770974456 elk-9.6.8/src/eos/fitdata.f900000644002504400250440000000173214626155515017437 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-9.6.8/src/eos/PaxHeaders/fmin_nm.f900000644000000000000000000000013214626155515014721 xustar0030 mtime=1717099341.772974467 30 atime=1717099341.772974467 30 ctime=1717099341.772974467 elk-9.6.8/src/eos/fmin_nm.f900000644002504400250440000000074614626155515017452 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-9.6.8/src/eos/PaxHeaders/getedata.f900000644000000000000000000000013214626155515015054 xustar0030 mtime=1717099341.774974477 30 atime=1717099341.774974477 30 ctime=1717099341.774974477 elk-9.6.8/src/eos/getedata.f900000644002504400250440000000325114626155515017577 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-9.6.8/src/eos/PaxHeaders/minf_nm.f900000644000000000000000000000013214626155515014721 xustar0030 mtime=1717099341.777974494 30 atime=1717099341.776974488 30 ctime=1717099341.777974494 elk-9.6.8/src/eos/minf_nm.f900000644002504400250440000000370214626155515017445 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 < 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 >= maxit) return ! find the lowest and highest vertex il=1 iu=1 do i=2,n+1 if (f(i) < f(il)) il=i if (f(i) > f(iu)) iu=i end do ! check for convergence if ((f(iu)-f(il)) < 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) > fr) goto 30 if ((f(il) <= fr).and.(fr < 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 > 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 < 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-9.6.8/src/eos/PaxHeaders/modmain.f900000644000000000000000000000013214626155515014722 xustar0030 mtime=1717099341.779974504 30 atime=1717099341.779974504 30 ctime=1717099341.779974504 elk-9.6.8/src/eos/modmain.f900000644002504400250440000000276214626155515017453 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-9.6.8/src/eos/PaxHeaders/output.f900000644000000000000000000000013214626155515014636 xustar0030 mtime=1717099341.781974515 30 atime=1717099341.781974515 30 ctime=1717099341.781974515 elk-9.6.8/src/eos/output.f900000644002504400250440000000505614626155515017366 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)) == "B0") then write(60,'(" B0 (GPa)",T20,"=",T30,G18.10)') popt(ip)*aupress_gpa end if if (trim(pname(ip)) == "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-9.6.8/src/eos/PaxHeaders/pveos.f900000644000000000000000000000013214626155515014432 xustar0030 mtime=1717099341.784974531 30 atime=1717099341.784974531 30 ctime=1717099341.784974531 elk-9.6.8/src/eos/pveos.f900000644002504400250440000000066114626155515017157 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-9.6.8/src/eos/PaxHeaders/readinput.f900000644000000000000000000000013214626155515015271 xustar0030 mtime=1717099341.787974547 30 atime=1717099341.786974542 30 ctime=1717099341.787974547 elk-9.6.8/src/eos/readinput.f900000644002504400250440000000144014626155515020012 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 <= 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 <= 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-9.6.8/src/eos/PaxHeaders/Makefile0000644000000000000000000000013214626155515014416 xustar0030 mtime=1717099341.789974558 30 atime=1717099341.788974553 30 ctime=1717099341.789974558 elk-9.6.8/src/eos/Makefile0000644002504400250440000000134614626155515017144 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-9.6.8/src/eos/PaxHeaders/README0000644000000000000000000000013214626155515013636 xustar0030 mtime=1717099341.791974569 30 atime=1717099341.790974564 30 ctime=1717099341.791974569 elk-9.6.8/src/eos/README0000644002504400250440000000254414626155515016365 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-9.6.8/src/eos/PaxHeaders/eos.in0000644000000000000000000000013014626155515014072 xustar0029 mtime=1717099341.79397458 30 atime=1717099341.792974574 29 ctime=1717099341.79397458 elk-9.6.8/src/eos/eos.in0000644002504400250440000000063514626155515016622 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-9.6.8/src/PaxHeaders/spacegroup0000644000000000000000000000013214626155515014263 xustar0030 mtime=1717099341.854974908 30 atime=1717099341.805974644 30 ctime=1717099341.854974908 elk-9.6.8/src/spacegroup/0000755002504400250440000000000014626155515017062 5ustar00dewhurstdewhurst00000000000000elk-9.6.8/src/spacegroup/PaxHeaders/spacegroup.in0000644000000000000000000000013214626155515017040 xustar0030 mtime=1717099341.808974661 30 atime=1717099341.807974655 30 ctime=1717099341.808974661 elk-9.6.8/src/spacegroup/spacegroup.in0000644002504400250440000000101714626155515021561 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 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-9.6.8/src/spacegroup/PaxHeaders/findprimcell.f900000644000000000000000000000013214626155515017330 xustar0030 mtime=1717099341.810974671 30 atime=1717099341.810974671 30 ctime=1717099341.810974671 elk-9.6.8/src/spacegroup/findprimcell.f900000644002504400250440000000734414626155515022062 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) == 1) return if (natoms(js) < 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 < 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 < epslat).and.(t2 < 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 == 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) < 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 > epslat) then if (dp(i) < 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) > epslat) then if (dp(i) < 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 < 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-9.6.8/src/spacegroup/PaxHeaders/gengroup.f900000644000000000000000000000013214626155515016506 xustar0030 mtime=1717099341.813974687 30 atime=1717099341.812974682 30 ctime=1717099341.813974687 elk-9.6.8/src/spacegroup/gengroup.f900000644002504400250440000000331614626155515021233 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 > 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-9.6.8/src/spacegroup/PaxHeaders/main.f900000644000000000000000000000013214626155515015604 xustar0030 mtime=1717099341.815974698 30 atime=1717099341.815974698 30 ctime=1717099341.815974698 elk-9.6.8/src/spacegroup/main.f900000644002504400250440000013267614626155515020345 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-9.6.8/src/spacegroup/PaxHeaders/r3cross.f900000644000000000000000000000013214626155515016256 xustar0030 mtime=1717099341.818974714 30 atime=1717099341.818974714 30 ctime=1717099341.818974714 elk-9.6.8/src/spacegroup/r3cross.f900000644002504400250440000000137314626155515021004 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-9.6.8/src/spacegroup/PaxHeaders/r3minv.f900000644000000000000000000000013214626155515016076 xustar0030 mtime=1717099341.820974725 30 atime=1717099341.820974725 30 ctime=1717099341.820974725 elk-9.6.8/src/spacegroup/r3minv.f900000644002504400250440000000236114626155515020622 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) < 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-9.6.8/src/spacegroup/PaxHeaders/Makefile0000644000000000000000000000013214626155515016000 xustar0030 mtime=1717099341.822974736 30 atime=1717099341.822974736 30 ctime=1717099341.822974736 elk-9.6.8/src/spacegroup/Makefile0000644002504400250440000000216714626155515020530 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 *.out $(EXE) doc: ../protex -s $(SRC_main) $(SRC_modules) $(SRC_routines) > spacegroup.tex pdflatex spacegroup;pdflatex spacegroup;pdflatex spacegroup spaces: ../rmspaces $(SRC) elk-9.6.8/src/spacegroup/PaxHeaders/r3mv.f900000644000000000000000000000013214626155515015547 xustar0030 mtime=1717099341.825974752 30 atime=1717099341.825974752 30 ctime=1717099341.825974752 elk-9.6.8/src/spacegroup/r3mv.f900000644002504400250440000000143714626155515020276 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-9.6.8/src/spacegroup/PaxHeaders/seitzeq.f900000644000000000000000000000013214626155515016344 xustar0030 mtime=1717099341.828974768 30 atime=1717099341.828974768 30 ctime=1717099341.828974768 elk-9.6.8/src/spacegroup/seitzeq.f900000644002504400250440000000126614626155515021073 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)) > eps).or. & (abs(v1(2)-v2(2)) > eps).or. & (abs(v1(3)-v2(3)) > eps)) return end do seitzeq=.true. return end function elk-9.6.8/src/spacegroup/PaxHeaders/seitzmul.f900000644000000000000000000000013214626155515016534 xustar0030 mtime=1717099341.831974785 30 atime=1717099341.831974785 30 ctime=1717099341.831974785 elk-9.6.8/src/spacegroup/seitzmul.f900000644002504400250440000000112314626155515021253 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-9.6.8/src/spacegroup/PaxHeaders/writegeom.f900000644000000000000000000000013214626155515016662 xustar0030 mtime=1717099341.834974801 30 atime=1717099341.833974795 30 ctime=1717099341.834974801 elk-9.6.8/src/spacegroup/writegeom.f900000644002504400250440000000334614626155515021412 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-9.6.8/src/spacegroup/PaxHeaders/gencrystal.f900000644000000000000000000000013214626155515017033 xustar0030 mtime=1717099341.836974811 30 atime=1717099341.836974811 30 ctime=1717099341.836974811 elk-9.6.8/src/spacegroup/gencrystal.f900000644002504400250440000000576714626155515021574 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) < 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)) < 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 < epslat) goto 30 end do ! add new position to list natoms(is)=natoms(is)+1 if (natoms(is) > 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-9.6.8/src/spacegroup/PaxHeaders/geomplot.f900000644000000000000000000000013214626155515016506 xustar0030 mtime=1717099341.839974828 30 atime=1717099341.838974822 30 ctime=1717099341.839974828 elk-9.6.8/src/spacegroup/geomplot.f900000644002504400250440000000445314626155515021236 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-9.6.8/src/spacegroup/PaxHeaders/modmain.f900000644000000000000000000000013214626155515016304 xustar0030 mtime=1717099341.841974838 30 atime=1717099341.841974838 30 ctime=1717099341.841974838 elk-9.6.8/src/spacegroup/modmain.f900000644002504400250440000000454314626155515021034 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-9.6.8/src/spacegroup/PaxHeaders/r3frac.f900000644000000000000000000000013214626155515016040 xustar0030 mtime=1717099341.844974855 30 atime=1717099341.843974849 30 ctime=1717099341.844974855 elk-9.6.8/src/spacegroup/r3frac.f900000644002504400250440000000175514626155515020572 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) < 0.d0) v(i)=v(i)+1.d0 if ((1.d0-v(i)) < eps) v(i)=0.d0 if (v(i) < eps) v(i)=0.d0 end do return end subroutine !EOC elk-9.6.8/src/spacegroup/PaxHeaders/r3mm.f900000644000000000000000000000013214626155515015536 xustar0030 mtime=1717099341.846974865 30 atime=1717099341.846974865 30 ctime=1717099341.846974865 elk-9.6.8/src/spacegroup/r3mm.f900000644002504400250440000000213514626155515020261 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-9.6.8/src/spacegroup/PaxHeaders/readinput.f900000644000000000000000000000013214626155515016653 xustar0030 mtime=1717099341.848974876 30 atime=1717099341.848974876 30 ctime=1717099341.848974876 elk-9.6.8/src/spacegroup/readinput.f900000644002504400250440000000277614626155515021411 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) < 1).or.(ncell(2) < 1).or.(ncell(3) < 1)) then write(*,*) write(*,'("Error(readinput): invalid ncell : ",3I8)') ncell write(*,*) stop end if read(50,*) primcell read(50,*) nspecies if (nspecies <= 0) then write(*,*) write(*,'("Error(readinput): nspecies <= 0 : ",I8)') nspecies write(*,*) stop end if if (nspecies > 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) <= 0) then write(*,*) write(*,'("Error(readinput): nwpos <= 0 : ",I8)') nwpos(is) write(*,'(" for species ",I4)') is write(*,*) stop end if if (nwpos(is) > 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-9.6.8/src/spacegroup/PaxHeaders/seitzgen.f900000644000000000000000000000013214626155515016510 xustar0030 mtime=1717099341.852974898 30 atime=1717099341.851974892 30 ctime=1717099341.852974898 elk-9.6.8/src/spacegroup/seitzgen.f900000644002504400250440000002566614626155515021251 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,'(') == 1) then if (index(str1,'(0 0 1)') /= 0) then v1(1)=0.d0; v1(2)=0.d0; v1(3)=1.d0 else if (index(str1,'(0 0 -1)') /= 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 <= 1) goto 20 str2=str1(1:m-1) n=n+1 !------------------------------! ! lattice translations ! !------------------------------! if (n == 1) then stgen(:,1)=0.d0 if (scan(str2,'P') /= 0) then ngen=1 else if (scan(str2,'A') /= 0) then stgen(1,2)=0.d0 stgen(2,2)=0.5d0 stgen(3,2)=0.5d0 ngen=2 else if (scan(str2,'B') /= 0) then stgen(1,2)=0.5d0 stgen(2,2)=0.d0 stgen(3,2)=0.5d0 ngen=2 else if (scan(str2,'C') /= 0) then stgen(1,2)=0.5d0 stgen(2,2)=0.5d0 stgen(3,2)=0.d0 ngen=2 else if (scan(str2,'I') /= 0) then stgen(:,2)=0.5d0 ngen=2 else if (scan(str2,'R') /= 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') /= 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') /= 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') /= 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,'-') /= 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 >= 2) then ! determine if rotation is proper or improper if (scan(str2,'-') == 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') == 1) then no=1 else if (scan(str2,'2') == 1) then no=2 else if (scan(str2,'3') == 1) then no=3 else if (scan(str2,'4') == 1) then no=4 else if (scan(str2,'6') == 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') /= 0) then ! a axis axis=1 else if (scan(str2,'y') /= 0) then ! b axis axis=2 else if (scan(str2,'z') /= 0) then ! c axis axis=3 else if (scan(str2,'"') /= 0) then ! a+b axis=5 else if (scan(str2,'*') /= 0) then ! a+b+c axis axis=6 else if (n == 2) then ! default first rotation is along c axis=3 else if ((n == 3).and.(no == 2)) then ! default second rotation if ((nop == 2).or.(nop == 4)) then ! a axis axis=1 else if ((nop == 3).or.(nop == 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 == 4).and.(no == 3)) then ! third rotation around a+b+c axis axis=6 else if (no == 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 == 1) then ! a axis av(1)=1.d0 else if (axis == 2) then ! b axis av(2)=1.d0 else if (axis == 3) then ! c axis av(3)=1.d0 else if (axis == 4) then ! a-b axis av(1)=1.d0 av(2)=-1.d0 else if (axis == 5) then ! a+b axis av(1)=1.d0 av(2)=1.d0 else if (axis == 6) then ! a+b+c axis av(:)=1.d0 end if ! compute the rotation part of the Seitz matrix if (axis == 1) then ! a axis if (no == 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 == 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 == 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 == 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 == 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 == 2) then ! b axis if (no == 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 == 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 == 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 == 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 == 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 == 3) then ! c axis if (no == 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 == 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 == 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 == 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 == 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 == 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 == 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 == 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 > 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') /= 0) then stgen(1,ngen)=stgen(1,ngen)+0.5d0 end if if (scan(str2,'b') /= 0) then stgen(2,ngen)=stgen(2,ngen)+0.5d0 end if if (scan(str2,'c') /= 0) then stgen(3,ngen)=stgen(3,ngen)+0.5d0 end if if (scan(str2,'n') /= 0) then stgen(:,ngen)=stgen(:,ngen)+0.5d0 end if if (scan(str2,'u') /= 0) then stgen(1,ngen)=stgen(1,ngen)+0.25d0 end if if (scan(str2,'v') /= 0) then stgen(2,ngen)=stgen(2,ngen)+0.25d0 end if if (scan(str2,'w') /= 0) then stgen(3,ngen)=stgen(3,ngen)+0.25d0 end if if (scan(str2,'d') /= 0) then stgen(:,ngen)=stgen(:,ngen)+0.25d0 end if if (scan(str2,'1') /= 0) then if (no == 3) then stgen(:,ngen)=stgen(:,ngen)+0.3333333333333333333d0*av(:) else if (no == 4) then stgen(:,ngen)=stgen(:,ngen)+0.25d0*av(:) else if (no == 6) then stgen(:,ngen)=stgen(:,ngen)+0.1666666666666666667d0*av(:) end if else if (scan(str2,'2') /= 0) then if (no == 3) then stgen(:,ngen)=stgen(:,ngen)+0.6666666666666666667d0*av(:) else if (no == 6) then stgen(:,ngen)=stgen(:,ngen)+0.3333333333333333333d0*av(:) end if else if (scan(str2,'3') /= 0) then if (no == 4) then stgen(:,ngen)=stgen(:,ngen)+0.75d0*av(:) end if else if (scan(str2,'4') /= 0) then if (no == 6) then stgen(:,ngen)=stgen(:,ngen)+0.6666666666666666667d0*av(:) end if else if (scan(str2,'5') /= 0) then if (no == 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-9.6.8/src/spacegroup/PaxHeaders/sgsymb.f900000644000000000000000000000013214626155515016164 xustar0030 mtime=1717099341.855974914 30 atime=1717099341.854974908 30 ctime=1717099341.855974914 elk-9.6.8/src/spacegroup/sgsymb.f900000644002504400250440000010040014626155515020701 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-9.6.8/src/PaxHeaders/modmain.f900000644000000000000000000000013214626155517014136 xustar0030 mtime=1717099343.994986439 30 atime=1717099341.874975016 30 ctime=1717099343.994986439 elk-9.6.8/src/modmain.f900000644002504400250440000012500714626155517016665 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),avec0(3,3),davec(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),bvec0(3,3) ! inverse of reciprocal lattice vector matrix real(8) binv(3,3),binv0(3,3) ! unit cell volume real(8) omega,omega0 ! 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),natoms0(maxspecies) ! maximum number of atoms over all the species integer natmmax ! total number of atoms integer natmtot,natmtot0 ! index to atoms and species integer idxas(maxatoms,maxspecies) ! inverse atoms and species indices integer idxis(maxatoms*maxspecies),idxis0(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,primcell0 ! atomic positions in lattice coordinates real(8) atposl(3,maxatoms,maxspecies),atposl0(3,maxatoms,maxspecies) real(8) datposl(3,maxatoms,maxspecies) ! atomic positions in Cartesian coordinates real(8) atposc(3,maxatoms,maxspecies),atposc0(3,maxatoms,maxspecies) ! magnitude of random displacements added to the atomic positions real(8) rndatposc ! tatdisp is .true. if small amplitude atomic displacements are to be included ! when calculating the Coulomb potential logical :: tatdisp=.false. ! trdatdv is .true. if the atomic displacements and velocities are to be read ! from file logical trdatdv ! atomic displacements and velocities in Cartesian coordinates real(8) atdvc(3,0:1,maxatoms,maxspecies) ! atomic damping force coefficient real(8) atdfc !----------------------------------! ! atomic species variables ! !----------------------------------! ! species files path character(256) sppath ! species filenames character(256) spfname(maxspecies) ! species name character(64) spname(maxspecies) ! species symbol character(64) 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) ! 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(:,:) ! 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,dnrmtscf ! number of muffin-tin radial points for each species integer nrmt(maxspecies) ! maximum nrmt over all the species integer nrmtmax ! order of averaging applied to the muffin-tin radii integer mrmtav ! 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),rmt0(maxspecies) ! trmt0 is .true. if the original muffin-tin radii rmt0 are to be retained ! between tasks logical trmt0 ! (R_mt)^l for l up to lmaxo+3 real(8), allocatable :: rmtl(:,:) ! 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 coefficients on fine radial mesh real(8), allocatable :: wcrmt(:,:,:) ! 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(:,:,:) ! weights for spline coefficients on coarse radial mesh real(8), allocatable :: wcrcmt(:,:,:) ! maximum allowable angular momentum for augmented plane waves integer, parameter :: maxlapw=30 ! maximum angular momentum for augmented plane waves integer lmaxapw,dlmaxapw ! (lmaxapw+1)^2 integer lmmaxapw ! maximum angular momentum on the outer part of the muffin-tin integer lmaxo,dlmaxo ! (lmaxo+1)^2 integer lmmaxo ! maximum angular momentum on the inner part of the muffin-tin integer lmaxi,lmaxi0 ! (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) ! 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 ! smoothing order used when calculating gradients in the muffin-tin integer msmgmt !--------------------------------! ! spin related variables ! !--------------------------------! ! spinpol is .true. for spin-polarised calculations logical spinpol,spinpol0 ! spinorb is .true. for spin-orbit coupling logical spinorb,spinorb0 ! 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,cmagz0 ! 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,fsmtype0 ! fixed total spin magnetic moment real(8) momfix(3),momfix0(3),dmomfix(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),mommtfix0(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),bfieldc00(3),dbfieldc0(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),bfcmt00(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,reducebf0 ! small change in magnetic field used for calculating the magnetoelectric tensor real(8) deltabf ! spinsprl is .true. if a spin-spiral is to be calculated logical spinsprl,spinsprl0 ! ssdph is .true. if the muffin-tin spin-spiral magnetisation is de-phased logical ssdph ! spin-spiral phase factor for each atom complex(8), allocatable :: zqss(:) ! 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),vqlss0(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) ! average electric field in Cartesian coordinates in each muffin-tin real(8), allocatable :: efcmt(:,:) ! maximum distance over which the electric field is applied real(8) dmaxefc ! maximum allowed absolute value of the potential generated by efieldc real(8) vmaxefc ! 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),afieldc0(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,tshift0 ! 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,dgmaxvr ! G-vector grid sizes integer ngridg(3),ngridg0(3) ! G-vector grid sizes for coarse grid with |G| < 2 gkmax integer ngdgc(3) ! total number of G-vectors integer ngtot,ngtot0 ! total number of G-vectors for coarse grid 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 with |G| < 2 gkmax integer ngvc ! G-vector integer coordinates (i1,i2,i3) integer, allocatable :: ivg(:,:),ivg0(:,:) ! map from (i1,i2,i3) to G-vector index integer, allocatable :: ivgig(:,:,:) ! map from G-vector index to FFT array integer, allocatable :: igfft(:),igfft0(:) ! map from G-vector index to FFT array for coarse grid integer, allocatable :: igfc(:) ! number of complex FFT elements for real-complex transforms integer nfgrz ! map from real-complex FFT index to G-point index integer, allocatable :: igrzf(:) ! 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π/G² 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 real(8), allocatable :: cfrc(:) !---------------------------! ! k-point variables ! !---------------------------! ! autokpt is .true. if the k-point set is determined automatically logical autokpt,autokpt0 ! radius of sphere used to determine k-point density when autokpt is .true. real(8) radkpt ! k-point grid sizes integer ngridk(3),ngridk0(3),dngridk(3) ! k-point offset real(8) vkloff(3),vkloff0(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,reducek0 ! 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 integer grid to reduced k-point index integer, allocatable :: ivkik(:,:,:) ! map from integer grid 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 ! number of k-points subdivision used for calculating the polarisation phase integer nkspolar !------------------------------! ! 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,drgkmax ! 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 ! locations of q-points on integer grid integer, allocatable :: ivq(:,:) ! map from integer grid to reduced index integer, allocatable :: ivqiq(:,:,:) ! map from integer grid to non-reduced index integer, allocatable :: ivqiqnr(:,:,:) ! 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 ! regularised Coulomb Green's function in q-space real(8), allocatable :: gclq(:) ! if t0gclq0 is .true. then the Coulomb Green's function at q = 0 is set to zero logical t0gclq0 !-----------------------------------------------------! ! spherical harmonic transform (SHT) matrices ! !-----------------------------------------------------! ! trotsht is .true. if the spherical cover used for the SHT is to be rotated logical :: 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(:,:) ! single-precision copies of the complex SHT matrices complex(4), allocatable :: cbshti(:,:),cfshti(:,:) complex(4), allocatable :: cbshto(:,:),cfshto(:,:) !---------------------------------------------------------------! ! density, potential and exchange-correlation variables ! !---------------------------------------------------------------! ! exchange-correlation functional type integer xctype(3) ! exchange-correlation functional description character(264) xcdescr ! exchange-correlation functional spin requirement integer xcspin ! exchange-correlation functional density gradient requirement ! 0 : no gradients ! 1 : gradients required for GGA with no post-processing: |grad rho|, ! grad^2 rho, (grad rho).(grad |grad rho|) ! 2 : gradients required for GGA with post-processing: |grad rho|^2 ! 3 : as 2 but with the laplacian, grad^2 rho ! 4 : as 2 but with the kinetic energy density, tau ! 5 : as 4 but with the laplacian, grad^2 rho integer xcgrad ! small constant used to stabilise non-collinear GGA real(8) dncgga ! kinetic energy density functional type integer ktype(3) ! kinetic energy density functional description character(264) kdescr ! kinetic energy density density gradient requirement (see xcgrad) integer kgrad ! 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(:,:) ! tjr is .true. if the current density j(r) is to be calculated logical tjr,tjr0 ! muffin-tin and interstitial gauge-invariant current density vector field real(8), allocatable :: jrmt(:,:,:),jrir(:,:) ! 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(:) ! 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 ! combined target array for vsmt, vsir, bsmt and bsir real(8), allocatable, target :: vsbs(:) ! muffin-tin and interstitial Kohn-Sham effective potential real(8), pointer, contiguous :: vsmt(:,:),vsir(:) ! muffin-tin Kohn-Sham effective magnetic field in spherical coordinates and on ! a coarse radial mesh real(8), pointer, contiguous :: bsmt(:,:,:) ! interstitial Kohn-Sham effective magnetic field real(8), pointer, contiguous :: bsir(:,:) ! G-space interstitial Kohn-Sham effective potential complex(8), allocatable :: vsig(:) ! trimvg is .true. if the components of the effective potential are to be set to ! zero for |G| > 4 gkmax before the characteristic function is applied logical trimvg,trimvg0 ! nosource is .true. if the field is to be made source-free logical nosource ! tssxc is .true. if scaled spin exchange-correlation is to be used logical tssxc ! spin exchange-correlation scaling factor real(8) sxcscf,dsxcscf ! 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(:,:,:) ! meta-GGA exchange-correlation potential real(8), allocatable :: wxcmt(:,:),wxcir(:) ! if trdstate is .true. the density and potential can be read from STATE.OUT logical :: trdstate=.false. ! temperature in degrees Kelvin real(8) tempk !--------------------------! ! mixing variables ! !--------------------------! ! type of mixing to use for the potential integer mixtype ! mixing type description character(64) 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,dchgexs ! 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 gauge-invariant current and its magnitude real(8) jtot(3),jtotm !-----------------------------------------! ! 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 ! number of (l,m) components used for generating the muffin-tin wavefunctions integer nlmwf(maxspecies) !-------------------------------------------! ! 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 !--------------------------------------------! ! eigenvalue and occupancy variables ! !--------------------------------------------! ! number of empty states per atom and spin real(8) nempty0,dnempty0 ! 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(64) sdescr ! smearing width real(8) swidth,swidth0 ! 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 occupation numbers real(8) epsocc ! second-variational occupation numbers real(8), allocatable :: occsv(:,:) ! Fermi energy for second-variational states real(8) efermi ! tscissor is .true. if the scissor correction is non-zero logical tscissor ! scissor correction applied to eigenvalues and momentum matric elements 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 ! !------------------------------! ! occupation numbers 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, stress and strain variables ! !--------------------------------------------! ! tforce is .true. if force should be calculated logical tforce,tforce0 ! Hellmann-Feynman force on each atom real(8), allocatable :: forcehf(:,:) ! 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 ! maximum allowed force magnitude; if this force is reached for any atom then ! all forces are rescaled so that the maximum force magnitude is this value real(8) maxforce ! tfav0 is .true. if the average force should be zero in order to prevent ! translation of the atomic basis logical tfav0,tfav00 ! 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=0 ! strain tensors real(8) strain(3,3,9) ! small displacement parameter multiplied by the strain tensor for computing the ! stress tensor; also used for calculating the piezoelectric 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) !--------------------------------------------------------! ! self-consistent loop and convergence variables ! !--------------------------------------------------------! ! maximum number of self-consistent loops integer maxscl,maxscl0 ! current self-consistent loop number integer iscl ! 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 ! 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 ! starting point for 1D plot integer ip01d ! 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, Hartree-Fock and Kohn-Sham inversion variables ! !-------------------------------------------------------------! ! maximum number of core states over all species integer ncrmax ! maximum number of OEP iterations integer maxitoep ! OEP initial and subsequent step sizes real(8) tau0oep,tauoep ! exchange potential and magnetic field real(8), allocatable :: vxmt(:,:),vxir(:) real(8), allocatable :: bxmt(:,:,:),bxir(:,:) ! OEP residual functions real(8), allocatable :: dvxmt(:,:),dvxir(:) real(8), allocatable :: dbxmt(:,:,:),dbxir(:,:) ! magnitude of the OEP residual real(8) resoep ! hybrid is .true. if a hybrid functional is to be used logical hybrid,hybrid0 ! hybrid functional mixing coefficient real(8) hybridc ! tolerance for convergence of the absolute change in residual real(8) epsdres !-------------------------------------------------------------! ! 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(4), parameter :: czero=(0.e0,0.e0),cone=(1.e0,0.e0) complex(8), parameter :: zzero=(0.d0,0.d0),zone=(1.d0,0.d0) complex(8), parameter :: zi=(0.d0,1.d0) ! Pauli spin matrices: ! σ_x = ⎛0 1⎞ σ_y = ⎛0 -i⎞ σ_z = ⎛1 0⎞ ! ⎝1 0⎠ ⎝i 0⎠ ⎝0 -1⎠ ! 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/α) (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, parameter :: version(3)=[9,6,8] ! maximum number of tasks integer, parameter :: maxtasks=40 ! number of tasks integer ntasks ! task index integer itask ! task array integer tasks(maxtasks) ! current task integer task ! filename extension for files generated by gndstate character(256) :: 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-9.6.8/src/PaxHeaders/modmpi.f900000644000000000000000000000013214626155517013777 xustar0030 mtime=1717099343.997986455 30 atime=1717099341.878975038 30 ctime=1717099343.997986455 elk-9.6.8/src/modmpi.f900000644002504400250440000000074214626155517016524 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-9.6.8/src/PaxHeaders/modramdisk.f900000644000000000000000000000013214626155520014636 xustar0030 mtime=1717099344.000986471 30 atime=1717099341.880975048 30 ctime=1717099344.000986471 elk-9.6.8/src/modramdisk.f900000644002504400250440000001722214626155520017364 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2021 J. K. Dewhurst, S. Sharma and 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 modramdisk ! ramdisk is .true. if the RAM disk should be used logical ramdisk ! maximum allowed number of files on the RAM disk integer, parameter, private :: maxfiles=32 ! maximum number of records per file integer, parameter, private :: maxrec=32768 ! wrtdsk is .true. if files should also be written to disk logical wrtdsk,wrtdsk0 ! record data stored as 4-byte words type, private :: rec_t integer(4), allocatable :: dat(:) end type ! RAM disk file consisting of the filename and an array of records type, private :: file_t character(len=:), allocatable :: fname type(rec_t), allocatable :: rec(:) end type ! arrays of files constituting the RAM disk type(file_t), allocatable, private :: file(:) ! private subroutines private findfile,openfile contains subroutine initrd ! this subroutine should not be called from a parallel region implicit none ! local variables integer i if (allocated(file)) then write(*,*) write(*,'("Error(initrd): RAM disk already initialised")') write(*,*) stop end if allocate(file(maxfiles)) do i=1,maxfiles file(i)%fname='' end do end subroutine subroutine findfile(fname,fnum) implicit none ! arguments character(*), intent(in) :: fname integer, intent(out) :: fnum ! local variables integer i if (.not.allocated(file)) then write(*,*) write(*,'("Error(findfile): RAM disk not initialised")') write(*,*) stop end if fnum=0 do i=1,maxfiles if (file(i)%fname == fname) then fnum=i return end if end do end subroutine subroutine openfile(fname,fnum) implicit none ! arguments character(*), intent(in) :: fname integer, intent(out) :: fnum ! local variables integer i ! check to see if the file already exists call findfile(fname,fnum) if (fnum /= 0) return ! use the first available file number do i=1,maxfiles if (file(i)%fname == '') then ! assign the filename file(i)%fname=fname ! allocate the record array allocate(file(i)%rec(maxrec)) fnum=i return end if end do write(*,*) write(*,'("Error(openfile): too many RAM disk files open : ",I8)') maxfiles write(*,*) stop end subroutine subroutine delfrd(fname) ! this subroutine should not be called from a parallel region implicit none ! arguments character(*), intent(in) :: fname ! local variables integer fnum,i ! determine the file number call findfile(fname,fnum) ! return if the file does not exist if (fnum == 0) return ! erase filename file(fnum)%fname='' ! deallocate associated arrays do i=1,maxrec if (allocated(file(fnum)%rec(i)%dat)) deallocate(file(fnum)%rec(i)%dat) end do deallocate(file(fnum)%rec) end subroutine subroutine putrd(fname,irec,n1,n2,n3,v1,v2,nrv,rva,nzv,zva) ! this subroutine should be called from an OpenMP critical section implicit none ! arguments character(*), intent(in) :: fname integer, intent(in) :: irec integer, optional, intent(in) :: n1,n2,n3 real(8), optional, intent(in) :: v1(3),v2(3) integer, optional, intent(in) :: nrv real(8), optional, intent(in) :: rva(*) integer, optional, intent(in) :: nzv complex(8), optional, intent(in) :: zva(*) ! local variables integer fnum,n,i,j ! check that the record number does not exceed the maximum if (irec > maxrec) then ! fail safe by enabling disk writes wrtdsk=.true. return end if ! find the record length in 4-byte words n=0 if (present(n1)) n=n+1 if (present(n2)) n=n+1 if (present(n3)) n=n+1 if (present(v1)) n=n+6 if (present(v2)) n=n+6 if (present(rva)) then if (present(nrv)) then n=n+2*nrv else write(*,*) write(*,'("Error(putrd): missing argument nrv")') write(*,*) stop end if end if if (present(zva)) then if (present(nzv)) then n=n+4*nzv else write(*,*) write(*,'("Error(putrd): missing argument nzv")') write(*,*) stop end if end if ! open the file call openfile(fname,fnum) ! allocate the record data array if required if (allocated(file(fnum)%rec(irec)%dat)) then if (size(file(fnum)%rec(irec)%dat) < n) then deallocate(file(fnum)%rec(irec)%dat) end if end if if (.not.allocated(file(fnum)%rec(irec)%dat)) then allocate(file(fnum)%rec(irec)%dat(n)) end if i=1 if (present(n1)) then file(fnum)%rec(irec)%dat(i)=n1 i=i+1 end if if (present(n2)) then file(fnum)%rec(irec)%dat(i)=n2 i=i+1 end if if (present(n3)) then file(fnum)%rec(irec)%dat(i)=n3 i=i+1 end if if (present(v1)) then j=i+5 file(fnum)%rec(irec)%dat(i:j)=transfer(v1(:),file(fnum)%rec(irec)%dat(i:j)) i=i+6 end if if (present(v2)) then j=i+5 file(fnum)%rec(irec)%dat(i:j)=transfer(v2(:),file(fnum)%rec(irec)%dat(i:j)) i=i+6 end if if (present(rva)) then j=i+2*nrv-1 file(fnum)%rec(irec)%dat(i:j)=transfer(rva(1:nrv), & file(fnum)%rec(irec)%dat(i:j)) i=i+2*nrv end if if (present(zva)) then j=i+4*nzv-1 file(fnum)%rec(irec)%dat(i:j)=transfer(zva(1:nzv), & file(fnum)%rec(irec)%dat(i:j)) end if end subroutine subroutine getrd(fname,irec,tgs,n1,n2,n3,v1,v2,nrv,rva,nzv,zva) implicit none ! arguments character(*), intent(in) :: fname integer, intent(in) :: irec logical, intent(out) :: tgs integer, optional, intent(out) :: n1,n2,n3 real(8), optional, intent(out) :: v1(3),v2(3) integer, optional, intent(in) :: nrv real(8), optional, intent(out) :: rva(*) integer, optional, intent(in) :: nzv complex(8), optional, intent(out) :: zva(*) ! local variables integer fnum,n,i if (present(rva)) then if (.not.present(nrv)) then write(*,*) write(*,'("Error(getrd): missing argument nrv")') write(*,*) stop end if end if if (present(zva)) then if (.not.present(nzv)) then write(*,*) write(*,'("Error(getrd): missing argument nzv")') write(*,*) stop end if end if tgs=.false. if (irec > maxrec) return ! determine the file number call findfile(fname,fnum) ! return unsuccessfully if file is not found or record is unavailable if (fnum == 0) return if (.not.allocated(file(fnum)%rec(irec)%dat)) return n=size(file(fnum)%rec(irec)%dat) i=1 if (present(n1)) then if (n < 1) return n1=file(fnum)%rec(irec)%dat(i) i=i+1 n=n-1 end if if (present(n2)) then if (n < 1) return n2=file(fnum)%rec(irec)%dat(i) i=i+1 n=n-1 end if if (present(n3)) then if (n < 1) return n3=file(fnum)%rec(irec)%dat(i) i=i+1 n=n-1 end if if (present(v1)) then if (n < 6) return v1(:)=transfer(file(fnum)%rec(irec)%dat(i:i+5),v1(:)) i=i+6 n=n-6 end if if (present(v2)) then if (n < 6) return v2(:)=transfer(file(fnum)%rec(irec)%dat(i:i+5),v2(:)) i=i+6 n=n-6 end if if (present(rva)) then if (n < 2*nrv) return rva(1:nrv)=transfer(file(fnum)%rec(irec)%dat(i:i+2*nrv-1),rva(1:nrv)) i=i+2*nrv n=n-2*nrv end if if (present(zva)) then if (n < 4*nzv) return zva(1:nzv)=transfer(file(fnum)%rec(irec)%dat(i:i+4*nzv-1),zva(1:nzv)) end if ! flag the get operation as successful tgs=.true. end subroutine subroutine rdstatus ! this subroutine should not be called from a parallel region implicit none ! local variables integer nf,nr,i,j integer(8) m,n write(*,*) write(*,'("Info(rdstatus):")') if (.not.allocated(file)) then write(*,'(" RAM disk not initialised")') return end if nf=0 n=0 do i=1,maxfiles if (file(i)%fname /= '') then write(*,*) write(*,'(" Filename : ",A)') file(i)%fname nf=nf+1 nr=0 m=0 do j=1,maxrec if (allocated(file(i)%rec(j)%dat)) then nr=nr+1 m=m+size(file(i)%rec(j)%dat) end if end do n=n+m write(*,'(" number of records : ",I8)') nr write(*,'(" total number of bytes : ",I14)') 4*m end if end do write(*,*) write(*,'(" Number of files on RAM disk : ",I4)') nf write(*,'(" Total number of bytes used by RAM disk : ",I14)') 4*n end subroutine end module elk-9.6.8/src/PaxHeaders/libxcifc_stub.f900000644000000000000000000000013214626155521015325 xustar0030 mtime=1717099345.572994941 30 atime=1717099341.883975065 30 ctime=1717099345.572994941 elk-9.6.8/src/libxcifc_stub.f900000644002504400250440000000407314626155521020053 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) contains subroutine xcifc_libxc(xctype,n,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 :: 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(264) 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-9.6.8/src/PaxHeaders/modxcifc.f900000644000000000000000000000013214626155520014300 xustar0030 mtime=1717099344.004986492 30 atime=1717099341.885975075 30 ctime=1717099344.004986492 elk-9.6.8/src/modxcifc.f900000644002504400250440000004463514626155520017036 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,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,dtdr,dtdru,dtdrd,& dtdgr2,dtdgu2,dtdgd2,dtdg2r,dtdg2u,dtdg2d) ! !INPUT/OUTPUT PARAMETERS: ! xctype : type of exchange-correlation functional (in,integer(3)) ! n : number of density points (in,integer) ! 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) ! dtdr : dtau/drho (out,real(n),optional) ! dtdru : dtauup/drhoup (out,real(n),optional) ! dtdrd : dtaudn/drhodn (out,real(n),optional) ! dtdgr2 : dtau/d|grad rho|^2 (out,real(n),optional) ! dtdgu2 : dtauup/d(|grad rhoup|^2) (out,real(n),optional) ! dtdgd2 : dtaudn/d(|grad rhodn|^2) (out,real(n),optional) ! dtdg2r : dtau/d(grad^2 rho) (out,real(n),optional) ! dtdg2u : dtauup/d(grad^2 rhoup) (out,real(n),optional) ! dtdg2d : dtaudn/d(grad^2 rhodn) (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) :: 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) real(8), optional, intent(out) :: dtdr(n),dtdru(n),dtdrd(n) real(8), optional, intent(out) :: dtdgr2(n),dtdgu2(n),dtdgd2(n) real(8), optional, intent(out) :: dtdg2r(n),dtdg2u(n),dtdg2d(n) ! local variables real(8) kappa,mu,beta ! allocatable arrays real(8), allocatable :: ra(:,:) if (n <= 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,2)) ra(:,1)=0.5d0*rho(:) call xc_pwca(n,ra,ra,ex,ec,vx,ra(:,2),vc,ra(:,2)) 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,2)) ra(:,1)=0.5d0*rho(:) call xc_vbh(n,ra,ra,ex,ec,vx,ra(:,2),vc,ra(:,2)) deallocate(ra) else goto 10 end if case(20,21,22) ! original PBE kappa kappa=0.804d0 if (xctype(1) == 21) then ! Zhang-Yang kappa kappa=1.245d0 end if ! original PBE mu and beta mu=0.2195149727645171d0 beta=0.06672455060314922d0 if (xctype(1) == 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,5)) 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,ra,grho,ra(:,2),ra(:,2),ra(:,3),ra(:,3), & g3rho,ra(:,4),ra(:,4),ex,ec,vx,ra(:,5),vc,ra(:,5)) 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(50) ! Thomas-Fermi kinetic energy functional if (present(rhoup).and.present(rhodn).and.present(dtdru) & .and.present(dtdrd)) then call k_tf_sp(n,rhoup,rhodn,dtdru,dtdrd) if (present(dtdgu2)) dtdgu2(:)=0.d0 if (present(dtdgd2)) dtdgd2(:)=0.d0 else if (present(rho).and.present(dtdr)) then call k_tf(n,rho,dtdr) if (present(dtdgr2)) dtdgr2(:)=0.d0 else goto 10 end if case(52) ! Thomas-Fermi-von Weizsacker kinetic energy functional if (present(rhoup).and.present(rhodn).and.present(gup2).and.present(gdn2) & .and.present(dtdru).and.present(dtdrd).and.present(dtdgu2) & .and.present(dtdgd2)) then call k_tfvw_sp(n,rhoup,rhodn,gup2,gdn2,dtdru,dtdrd,dtdgu2,dtdgd2) else if (present(rho).and.present(grho2).and.present(dtdr) & .and.present(dtdgr2)) then call k_tfvw(n,rho,grho2,dtdr,dtdgr2) 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 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(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(g2up) & .and.present(g2dn).and.present(gup2).and.present(gdn2).and.present(tauup) & .and.present(taudn).and.present(dtdru).and.present(dtdrd) & .and.present(dtdg2u).and.present(dtdg2d).and.present(dtdgu2) & .and.present(dtdgd2).and.present(wxup).and.present(wxdn)) then ! spin-polarised LSDA, GGA or meta-GGA kinetic energy functional call xcifc_libxc(xctype,n,rhoup=rhoup,rhodn=rhodn,g2up=g2up,g2dn=g2dn, & gup2=gup2,gdn2=gdn2,tauup=tauup,taudn=taudn,vxup=dtdru,vxdn=dtdrd, & dxdg2u=dtdg2u,dxdg2d=dtdg2d,dxdgu2=dtdgu2,dxdgd2=dtdgd2,wxup=wxup, & wxdn=wxdn) 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 ! spin-polarised 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 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(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(g2rho).and.present(grho2).and.present(tau) & .and.present(dtdr).and.present(dtdgr2).and.present(dtdg2r) & .and.present(wx)) then ! spin-unpolarised LDA, GGA or meta-GGA kinetic energy functional call xcifc_libxc(xctype,n,rho=rho,g2rho=g2rho,grho2=grho2,tau=tau,vx=dtdr, & dxdgr2=dtdgr2,dxdg2r=dtdg2r,wx=wx) else if (present(rho).and.present(ex).and.present(ec).and.present(vx) & .and.present(vc)) then ! spin-unpolarised 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) <= -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(264)) ! 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(264), 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 case(2) xcdescr='Perdew-Zunger/Ceperley-Alder, Phys. Rev. B 23, 5048 (1981)' xcspin=0 xcgrad=0 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(50) xcdescr='Thomas-Fermi kinetic energy functional' xcspin=-1 xcgrad=0 case(52) xcdescr='Thomas-Fermi-von Weizsacker kinetic energy functional' xcspin=-1 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 end subroutine !EOC end module elk-9.6.8/src/PaxHeaders/modfxcifc.f900000644000000000000000000000013214626155520014446 xustar0030 mtime=1717099344.006986503 30 atime=1717099341.888975092 30 ctime=1717099344.006986503 elk-9.6.8/src/modfxcifc.f900000644002504400250440000000412714626155520017174 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 <= 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-9.6.8/src/PaxHeaders/moddftu.f900000644000000000000000000000013214626155520014146 xustar0030 mtime=1717099344.009986519 30 atime=1717099341.891975108 30 ctime=1717099344.009986519 elk-9.6.8/src/moddftu.f900000644002504400250440000000636614626155520016703 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(:,:,:,:,:) ! tolerance for checking invariance of density matrix under symmetry operations real(8) epsdmat ! potential matrix in each muffin-tin complex(8), allocatable :: vmatmt(:,:,:,:,:) ! potential matrix in spherical coordinates for lmaxi and lmaxo complex(4), allocatable :: vmatmti(:,:,:,:,:),vmatmto(:,:,:,:,:) ! 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=10 ! number of DFT+U entries integer ndftu ! species and angular momentum for each entry integer isldu(2,maxdftu) ! U and J values for each entry real(8) ujdu(2,maxdftu) ! 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) lamdu(maxdftu) ! initial values of screening length if U is fixed real(8) lamdu0(maxdftu) ! energies to calculate radial functions for Slater integrals real(8), allocatable :: efdu(:,:) ! 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),dudufix(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 ! 1 (-1) : 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 for the species, atom, angular momentum ! k, p, r, t for the 3-index tensor moment and vector component integer, allocatable :: itmfix(:,:) ! 3-index tensor component with conventional normalisation real(8), allocatable :: wkprfix(:) ! 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 ! tensor moments at t=0 of a TDDFT+U calculations real(8), allocatable :: wkpr0(:,:) ! tm3old is .true. if the tensor moments should be in the old complex convention logical tm3old end module elk-9.6.8/src/PaxHeaders/modrdm.f900000644000000000000000000000013014626155520013764 xustar0029 mtime=1717099344.01198653 30 atime=1717099341.893975119 29 ctime=1717099344.01198653 elk-9.6.8/src/modrdm.f900000644002504400250440000000213314626155520016507 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 functionals real(8) rdmalpha ! temperature real(8) rdmtemp ! entropy real(8) rdmentrpy end module elk-9.6.8/src/PaxHeaders/modphonon.f900000644000000000000000000000013214626155520014505 xustar0030 mtime=1717099344.013986541 30 atime=1717099341.895975129 30 ctime=1717099344.013986541 elk-9.6.8/src/modphonon.f900000644002504400250440000001264114626155520017233 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 ! phonon frequencies for all q-points real(8), allocatable :: wphq(:,:) !-----------------------------! ! 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=.false. ! nuclear potential without the self-term; used for the phonon dynamical matrix complex(8), allocatable :: zvnmt(:) ! gradient of vsmt for the displaced muffin-tin complex(8), allocatable :: gvsmt(:) ! combined target array for dvsmt, dvsir, dbsmt and dbsir complex(8), allocatable, target :: dvsbs(:) ! Kohn-Sham potential derivative complex(8), pointer, contiguous :: dvsmt(:,:),dvsir(:) ! Kohn-Sham effective magnetic field derivative complex(8), pointer, contiguous :: dbsmt(:,:,:),dbsir(:,:) ! G+q-space interstitial Kohn-Sham potential derivative complex(8), allocatable :: dvsig(:) ! 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(:,:) !-------------------------------------------+ ! electron-phonon mean-field theory | !-------------------------------------------+ ! energy change of the electron system real(8) dengye ! energy change of the phonon system real(8) dengyph ! sum of energy changes in electron and phonon systems real(8) dengy ! phonon frequency cut-off below which modes are neglected real(8) wphcut ! scale factor of the electron-phonon term and its mixing parameter real(8) ephscf(2) ! anomalous is .true. if only the anomalous density matrix is to be used in the ! construction of the electron-phonon Hamiltonian logical anomalous ! tephde is .true. if D = D0 + E, otherwise D = D0 logical tephde ! single-precision electron-phonon matrix element array for each k- and q-point complex(4), allocatable :: ephmkq(:,:,:,:,:) end module elk-9.6.8/src/PaxHeaders/modtest.f900000644000000000000000000000013114626155520014162 xustar0030 mtime=1717099344.015986552 29 atime=1717099341.89797514 30 ctime=1717099344.015986552 elk-9.6.8/src/modtest.f900000644002504400250440000000470014626155520016706 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 < 0).or.(id > 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 <= 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',action='WRITE') 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_) end subroutine end module elk-9.6.8/src/PaxHeaders/modrandom.f900000644000000000000000000000013214626155520014464 xustar0030 mtime=1717099344.017986562 30 atime=1717099341.900975156 30 ctime=1717099344.017986562 elk-9.6.8/src/modrandom.f900000644002504400250440000000251414626155520017210 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)=[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=0 integer(8) i1,i5 !$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-9.6.8/src/PaxHeaders/modpw.f900000644000000000000000000000013214626155520013632 xustar0030 mtime=1717099344.019986573 30 atime=1717099341.902975167 30 ctime=1717099344.019986573 elk-9.6.8/src/modpw.f900000644002504400250440000000320214626155520016351 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-9.6.8/src/PaxHeaders/modvars.f900000644000000000000000000000013214626155520014157 xustar0030 mtime=1717099344.021986584 30 atime=1717099341.905975183 30 ctime=1717099344.021986584 elk-9.6.8/src/modvars.f900000644002504400250440000000451214626155520016703 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 ! if wrtvars is .true. then variables are written to VARIABLES.OUT logical wrtvars ! if batch is .true. then Elk will run in batch mode logical batch contains subroutine writevars(vname,n1,n2,n3,n4,n5,n6,nv,iv,iva,rv,rva,zv,zva,sv,sva) implicit none ! arguments character(*), intent(in) :: vname integer, optional, intent(in) :: n1,n2,n3,n4,n5,n6 integer, optional, intent(in) :: nv,iv,iva(*) real(8), optional, intent(in) :: rv,rva(*) complex(8), optional, intent(in) :: zv,zva(*) character(*), optional, intent(in) :: sv,sva(*) ! local variables integer i 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 < 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',action='WRITE') write(95,*) write(95,'(A," ")',advance='NO') trim(vname) if (present(n1)) write(95,'(I8)',advance='NO') n1 if (present(n2)) write(95,'(I8)',advance='NO') n2 if (present(n3)) write(95,'(I8)',advance='NO') n3 if (present(n4)) write(95,'(I8)',advance='NO') n4 if (present(n5)) write(95,'(I8)',advance='NO') n5 if (present(n6)) write(95,'(I8)',advance='NO') n6 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) end subroutine end module elk-9.6.8/src/PaxHeaders/modtddft.f900000644000000000000000000000013214626155520014311 xustar0030 mtime=1717099344.023986595 30 atime=1717099341.907975194 30 ctime=1717099344.023986595 elk-9.6.8/src/modtddft.f900000644002504400250440000000760214626155520017040 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, frequency, phase, chirp rate, ! peak time, full-width at half-maximum, spin components real(8), allocatable :: pulse(:,:) ! number of A-field ramps integer nramp ! ramp parameters: vector amplitude, ramp start time, linear, quadratic, cubic, ! quartic coefficients, spin components real(8), allocatable :: ramp(:,:) ! number of A-field steps integer nstep ! step parameters: vector amplitude, step start and stop times, spin components real(8), allocatable :: step(:,:) ! total simulation time real(8) tstime ! time step length real(8) dtimes ! number of time steps integer ntimes ! starting time step integer itimes0 ! current time step integer itimes ! time steps real(8), allocatable :: times(:) ! tdt0 is .true. if the time evolution starts at t=0 logical tdt0 ! 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 total A-field (external plus induced) real(8), allocatable :: afieldt(:,:) ! tafspt is .true. if the A-field is spin- and time-dependent logical tafspt ! spin- and time-dependent A-field real(8), allocatable :: afspt(:,:,:) ! induced A-field and its time derivative at the current time step real(8) afindt(3,0:1) ! induced A-field parameters real(8) afindpm(0:2) ! if tafindt is .true. then the induced A-field is determined from Maxwell's ! equation and added to the total logical tafindt ! electric field at current time step real(8) efieldt(3) ! observables are written to file every ntswrite(1) time steps; this begins ! at or after time step ntswrite(2); writing occurs at the first time step ! irrespective of ntswrite integer ntswrite(2) ! ttswrite is .true. if observables are to be written for the current time step logical ttswrite ! static charge density real(8), allocatable :: rhosmt(:,:,:),rhosir(:,:) ! total static charge real(8) chgstot(3) ! muffin-tin static charge real(8), allocatable :: chgsmt(:,:) ! gradient of the muffin-tin Coulomb potential of the nucleus and static density complex(8), allocatable :: gvnsmt(:,:,:) ! the following variables are .true. if the corresponding quantities are to be ! written every ntswrite time steps logical tdrho1d,tdrho2d,tdrho3d logical tdmag1d,tdmag2d,tdmag3d logical tdjr1d,tdjr2d,tdjr3d logical tddos,tdlsj,tdjtk ! magnitude of complex numbers added to initial eigenvectors real(8) rndevt0 ! number of time steps between force calculations integer ntsforce ! ttsforce is .true. if forces are calculated for the current time step logical ttsforce ! total atomic forces at each time step real(8), allocatable :: forcet(:,:,:) ! number of time steps after which the time-dependent Kohn-Sham orbitals are ! made strictly orthogonal using a singular value decomposition integer ntsorth ! jtconst0 is .true. if the constant part of J(t) should be set to zero when ! calculating the dielectric function; this effectively removes the Drude term logical jtconst0 end module elk-9.6.8/src/PaxHeaders/modgw.f900000644000000000000000000000013214626155520013621 xustar0030 mtime=1717099344.025986606 30 atime=1717099341.909975205 30 ctime=1717099344.025986606 elk-9.6.8/src/modgw.f900000644002504400250440000000261214626155520016344 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 ! ksgwrho is .true. if the GW density is to be used in the self-consistent ! Kohn-Sham calculation logical ksgwrho end module elk-9.6.8/src/PaxHeaders/modulr.f900000644000000000000000000000013214626155520014006 xustar0030 mtime=1717099344.028986622 30 atime=1717099341.912975221 30 ctime=1717099344.028986622 elk-9.6.8/src/modulr.f900000644002504400250440000000631514626155520016535 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(:,:,:) ! phase factor functions exp(iQ.r) in each muffin-tin complex(8), allocatable :: expqmt(:,:,:) !---------------------------------------------------! ! 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, target :: vsbsq(:) complex(8), pointer, contiguous :: vsqmt(:,:,:),vsqir(:,:) complex(8), pointer, contiguous :: 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-9.6.8/src/PaxHeaders/modbog.f900000644000000000000000000000013214626155520013753 xustar0030 mtime=1717099344.030986633 30 atime=1717099341.914975232 30 ctime=1717099344.030986633 elk-9.6.8/src/modbog.f900000644002504400250440000000304114626155520016473 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2019 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. module modbog ! combined target array for fermionic and bosonic density matrices complex(8), allocatable, target :: duvwx(:) !----------------------------------------! ! fermionic Bogoliubov variables ! !----------------------------------------! ! Bogoliubov equation eigenvalues real(8), allocatable :: evaluv(:,:) ! V-norm for each state and k-point real(8), allocatable :: vnorm(:,:) ! Fermi energy adjustment step size real(8) tauefm ! Fermi energy convergence tolerance real(8) epsefm ! Hartree-Fock-Bogoliubov coupling constant real(8) ehfb ! density matrices VV† and UV† complex(8), pointer, contiguous :: dvv(:,:,:),duv(:,:,:) ! fermionic anomalous correlation entropy real(8) face ! bdiag is .true. if the matrix B is taken to be diagonal logical bdiag ! cut-off energy for matrix B (elements outside this window are set to zero) real(8) ecutb !--------------------------------------! ! bosonic Bogoliubov variables ! !--------------------------------------! ! Bogoliubov equation eigenvalues real(8), allocatable :: evalwx(:,:) ! power used in formula for (W,X) pseudo-normalisation (see article) integer pwxpsn ! X-norm for each branch and q-point real(8), allocatable :: xnorm(:,:) ! density matrices XX† and WX† complex(8), pointer, contiguous :: dxx(:,:,:),dwx(:,:,:) ! ediag is .true. if the matrix E is taken to be diagonal logical ediag end module elk-9.6.8/src/PaxHeaders/moddelf.f900000644000000000000000000000013214626155520014116 xustar0030 mtime=1717099344.032986643 30 atime=1717099341.916975243 30 ctime=1717099344.032986643 elk-9.6.8/src/moddelf.f900000644002504400250440000000401514626155520016640 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2020 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. module moddelf use modphonon use modramdisk use modmpi contains subroutine delfile(fname) implicit none ! arguments character(*), intent(in) :: fname ! local variables integer ios open(40,file=fname,iostat=ios) close(40,status='DELETE',iostat=ios) end subroutine subroutine delfiles(evec,devec,eval,occ,pmat,epsi) implicit none ! arguments logical, optional, intent(in) :: evec,devec,eval,occ,pmat,epsi ! local variables character(256) fext,fname if (present(evec)) then ! delete the first-variational eigenvector file fname=trim(scrpath)//'EVECFV'//trim(filext) if (mp_mpi) call delfile(fname) if (ramdisk) call delfrd(fname) ! delete the second-variational eigenvector file fname=trim(scrpath)//'EVECSV'//trim(filext) if (mp_mpi) call delfile(fname) if (ramdisk) call delfrd(fname) end if if (present(devec)) then ! construct the dynamical matrix file extension call dynfext(iqph,isph,iaph,ipph,fext) ! delete the eigenvector derivative files fname=trim(scrpath)//'DEVECFV'//trim(fext) if (mp_mpi) call delfile(fname) if (ramdisk) call delfrd(fname) fname=trim(scrpath)//'DEVECSV'//trim(fext) if (mp_mpi) call delfile(fname) if (ramdisk) call delfrd(fname) end if if (present(eval)) then ! delete the first-variational eigenvalue file fname='EVALFV'//trim(filext) if (mp_mpi) call delfile(fname) if (ramdisk) call delfrd(fname) ! delete the second-variational eigenvalue file if (mp_mpi) call delfile('EVALSV'//trim(filext)) end if if (present(occ)) then ! delete the occupation number file if (mp_mpi) call delfile('OCCSV'//trim(filext)) end if if (present(pmat)) then ! delete the momentum matrix elements file if (mp_mpi) call delfile('PMAT.OUT') if (ramdisk) call delfrd('PMAT.OUT') end if if (present(epsi)) then ! delete the inverse dielectric function file if (mp_mpi) call delfile('EPSINV.OUT') end if end subroutine end module elk-9.6.8/src/PaxHeaders/modomp.f900000644000000000000000000000013214626155520013777 xustar0030 mtime=1717099344.034986654 30 atime=1717099341.918975253 30 ctime=1717099344.034986654 elk-9.6.8/src/modomp.f900000644002504400250440000000604514626155520016526 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 use omp_lib ! 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, protected :: nathd(:) interface integer function mkl_set_num_threads_local(num_threads) integer, intent(in) :: num_threads end function end interface contains subroutine omp_init implicit none ! determine the maximum number of available threads select case(maxthd) case(:-1) ! set the number of threads equal to a fraction of the number of processors maxthd=omp_get_num_procs()/abs(maxthd) maxthd=max(maxthd,1) call omp_set_num_threads(maxthd) case(0) ! use the system default number of threads maxthd=omp_get_max_threads() case default ! use the number of threads specified in the input file call omp_set_num_threads(maxthd) end select ! determine the maximum number of threads available at first nesting level select case(maxthd1) case(:-1) maxthd1=maxthd/abs(maxthd1) maxthd1=max(maxthd1,1) case(0) maxthd1=maxthd case default maxthd1=min(maxthd1,maxthd) end select ! switch off dynamic allocation of threads call omp_set_dynamic(.false.) ! set the scheduling method and chunk size call omp_set_schedule(omp_sched_dynamic,0) ! allow nested parallelism (deprecated in OpenMP version 5) 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 end subroutine subroutine omp_reset implicit none ! number of active threads at each nesting level nathd(0)=1 nathd(1:)=0 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 < 0).or.(lvl >= maxlvl)) then nthd=1 return end if ! 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) > 0) nthd=nthd+1 if (lvl == 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) !$OMP ATOMIC WRITE nathd(lvl+1)=n 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 < 0).or.(lvl >= maxlvl)) return ! subtract from the number of active threads in next nesting level n=nathd(lvl+1)-nthd n=max(min(n,maxthd),0) !$OMP ATOMIC WRITE nathd(lvl+1)=n end subroutine end module elk-9.6.8/src/PaxHeaders/mkl_init.f900000644000000000000000000000013214626155520014312 xustar0030 mtime=1717099344.036986665 30 atime=1717099341.921975269 30 ctime=1717099344.036986665 elk-9.6.8/src/mkl_init.f900000644002504400250440000000117614626155520017041 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 global number of MKL threads equal to one call mkl_set_num_threads(1) ! set the maximum number of threads available to MKL select case(maxthdmkl) case(:-1) maxthdmkl=maxthd/abs(maxthdmkl) maxthdmkl=max(maxthdmkl,1) case(0) maxthdmkl=maxthd case default maxthdmkl=min(maxthdmkl,maxthd) end select ! enable dynamic thread allocation call mkl_set_dynamic(.true.) end subroutine elk-9.6.8/src/PaxHeaders/w90_stub.f900000644000000000000000000000013114626155521014160 xustar0030 mtime=1717099345.552994833 29 atime=1717099341.92397528 30 ctime=1717099345.552994833 elk-9.6.8/src/w90_stub.f900000644002504400250440000000322114626155521016701 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(*,*) error stop end subroutine !EOC elk-9.6.8/src/PaxHeaders/modw90.f900000644000000000000000000000013214626155520013623 xustar0030 mtime=1717099344.040986686 30 atime=1717099341.925975291 30 ctime=1717099344.040986686 elk-9.6.8/src/modw90.f900000644002504400250440000000257614626155520016357 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 ! number of iterations for disentanglement integer dis_num_iter ! trial step for the line search minimisation real(8) trial_step ! 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(:,:,:) ! wrtunk is .true. if the UNKkkkkk.s files are to be written in order to ! enable real-space wavefunction plotting logical wrtunk end module elk-9.6.8/src/PaxHeaders/zfftifc_fftw.f900000644000000000000000000000013214626155521015166 xustar0030 mtime=1717099345.585995011 30 atime=1717099341.927975302 30 ctime=1717099345.585995011 elk-9.6.8/src/zfftifc_fftw.f900000644002504400250440000000263414626155521017715 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(fftw_) call dfftw_plan_dft(plan,nd,n,z,z,sgn,FFTW_ESTIMATE) !$OMP END CRITICAL(fftw_) call dfftw_execute(plan) !$OMP CRITICAL(fftw_) call dfftw_destroy_plan(plan) !$OMP END CRITICAL(fftw_) if (sgn == -1) then p=product(n(:)) t1=1.d0/dble(p) call zdscal(p,t1,z,1) end if 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(fftw_) if (sgn == -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(fftw_) call dfftw_execute(plan) !$OMP CRITICAL(fftw_) call dfftw_destroy_plan(plan) !$OMP END CRITICAL(fftw_) if (sgn == -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 end subroutine elk-9.6.8/src/PaxHeaders/cfftifc_fftw.f900000644000000000000000000000013214626155521015137 xustar0030 mtime=1717099345.587995022 30 atime=1717099341.930975318 30 ctime=1717099345.587995022 elk-9.6.8/src/cfftifc_fftw.f900000644002504400250440000000260414626155521017663 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2022 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 cfftifc(nd,n,sgn,c) implicit none ! arguments integer, intent(in) :: nd,n(nd),sgn complex(4), intent(inout) :: c(*) ! local variables integer, parameter :: FFTW_ESTIMATE=64 integer p integer(8) plan real(4) t1 ! interface to FFTW version 3 !$OMP CRITICAL(fftw_) call sfftw_plan_dft(plan,nd,n,c,c,sgn,FFTW_ESTIMATE) !$OMP END CRITICAL(fftw_) call sfftw_execute(plan) !$OMP CRITICAL(fftw_) call sfftw_destroy_plan(plan) !$OMP END CRITICAL(fftw_) if (sgn == -1) then p=product(n(:)) t1=1.e0/real(p) call csscal(p,t1,c,1) end if end subroutine subroutine rcfftifc(nd,n,sgn,r,c) implicit none ! arguments integer, intent(in) :: nd,n(nd),sgn real(4), intent(inout) :: r(*) complex(4), intent(inout) :: c(*) ! local variables integer, parameter :: FFTW_ESTIMATE=64 integer p integer(8) plan real(4) t1 !$OMP CRITICAL(fftw_) if (sgn == -1) then call sfftw_plan_dft_r2c(plan,nd,n,r,c,FFTW_ESTIMATE) else call sfftw_plan_dft_c2r(plan,nd,n,c,r,FFTW_ESTIMATE) end if !$OMP END CRITICAL(fftw_) call sfftw_execute(plan) !$OMP CRITICAL(fftw_) call sfftw_destroy_plan(plan) !$OMP END CRITICAL(fftw_) if (sgn == -1) then p=product(n(:)) t1=1.e0/real(p) p=p/n(1) p=p*(n(1)/2+1) call csscal(p,t1,c,1) end if end subroutine elk-9.6.8/src/PaxHeaders/elk.f900000644000000000000000000000013214626155520013257 xustar0030 mtime=1717099344.047986724 30 atime=1717099341.932975329 30 ctime=1717099344.047986724 elk-9.6.8/src/elk.f900000644002504400250440000025356314626155520016017 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 use modramdisk use moddelf implicit none ! local variables logical exist ! 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 == 0) then mp_mpi=.true. write(*,*) write(*,'("+---------------------------------+")') write(*,'("| Elk code version ",I1.1,".",I1.1,".",I2.2," started |")') version write(*,'("+---------------------------------+")') else mp_mpi=.false. end if ! read input files call readinput ! initialise OpenMP variables call omp_init ! initialise the MKL library call mkl_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 (MPI x OpenMP) : ",I6)') np_mpi*maxthd write(*,'("Maximum OpenMP nesting level : ",I4)') maxlvl write(*,'("Number of OpenMP threads at first nesting level : ",I4)') maxthd1 write(*,'("Number of MKL threads : ",I4)') maxthdmkl ! check if Elk is already running in this directory 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 if (batch) then wrtvars=.true. write(*,*) write(*,'("Batch mode enabled")') end if if (wrtvars) then ! delete the VARIABLES.OUT file call delfile('VARIABLES.OUT') ! write version number to VARIABLES.OUT call writevars('version',nv=3,iva=version) end if else wrtvars=.false. end if ! initialise the RAM disk if required if (ramdisk) then call initrd if (mp_mpi) then write(*,*) write(*,'("RAM disk enabled")') if (.not.wrtdsk) then write(*,*) write(*,'("Warning(elk): some direct access files may not be written to & &disk")') end if end if else wrtdsk=.true. end if ! perform the tasks do itask=1,ntasks ! synchronise MPI processes call mpi_barrier(mpicom,ierror) task=tasks(itask) if (mp_mpi) then write(*,*) write(*,'("+-----------------------+")') write(*,'("| Current task : ",I6," |")') task write(*,'("+-----------------------+")') end if ! increment the batch variables if required if (batch) call batchdv ! check if task can be run with MPI if (lp_mpi > 0) then if (any(task == [0,1,2,3,5,15,16,28,29,61,62,63,110,120,121,125,135,136, & 162,170,180,185,200,201,205,208,240,241,270,271,300,320,330,331,350,351, & 371,372,373,380,390,420,421,440,460,461,462,463,471,478,600,610,620,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 if (wrtvars) 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(68) call rdstatus 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(208,209) call bornechg 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,271) call gndsteph case(280) call ephdos case(285) call aceplot 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(371,372,373) call jprplot case(380) call piezoelt case(390) call magnetoelt case(400) call writetm case(420,421) call moldyn case(430) call writestrain case(440) call writestress case(450) call genafieldt case(460,461,462,463) call tddft case(471) call rhosplot case(478) call bornecdyn 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(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 end do if (mp_mpi) then call delfile('RUNNING') write(*,*) write(*,'("+------------------+")') write(*,'("| Elk code stopped |")') write(*,'("+------------------+")') end if ! terminate MPI execution environment call mpi_finalize(ierror) end program !BOI ! !TITLE: {\huge{\sc The Elk Code Manual}}\\ \Large{\sc Version 9.6.8}\\ \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, Jagdish Kumar, Andrew Shyichuk, Nisha ! Singh, Pietro Bonfa, Ronald Cohen, Alyn James, Chung-Yu Wang, Leon Kerber, ! Yunfan Liang, Xavier Gonze, Mike Bruckhoff, Eddie Harris-Lee, Andreas ! Fischer, Wenhan Chen and Jyoti Krishna. 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, Sangeeta Sharma \\ ! Lars Nordstr\"{o}m, Francesco Cricchio, Oscar Gr\aa n\"{a}s \\ ! Hardy Gross ! ! \vspace{12pt} ! Halle, Berlin, Uppsala and Jerusalem ! \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.529177210903(80) \AA, and the atomic unit of energy is the Hartree which ! equals 27.211386245988(53) 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. Edit the file {\tt make.inc} in the ! {\tt elk} directory and adjust the compiler options for your computer ! system. Use of machine-optimised BLAS/LAPACK and FFT libraries will result ! in significant increase in performance. 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=n ! \end{verbatim} ! where n is the number of cores available on a particular node. The same can ! be accomplished in {\tt elk.in} with ! \begin{verbatim} ! maxthd ! n ! \end{verbatim} ! In addition, some vendor-supplied BLAS/LAPACK libraries use OpenMP ! internally. The maximum number of threads used for LAPACK operations by ! Intel's MKL can be set with ! \begin{verbatim} ! maxthdmkl ! n ! \end{verbatim} ! \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{Memory requirements} ! Elk is a memory-bound code and runs best on processors with large caches and ! a large number of memory channels per core. Some tasks in Elk require a ! considerable amount of memory which can exceed the physical memory of the ! computer. In such cases, the number of threads at the first nesting level ! can be reduced with (for example) ! \begin{verbatim} ! maxthd1 ! -4 ! \end{verbatim} ! which restricts the number of threads at the first nesting level to ! maxthd/4. Deeper nesting levels, which generally require less memory, will ! still utilise the full compliment of available threads. ! \subsubsection{Stack space} ! The latest versions of Elk use stack space aggressively. This is because ! accessing variables is faster on the stack than on the heap. This can, ! however, result in the code crashing as threads run out of their stack ! space. To avoid this, increase the stack size for each OpenMP thread with ! (for example) ! \begin{verbatim} ! export OMP_STACKSIZE=512M ! \end{verbatim} ! before running the code. ! ! \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 6. This should have produced the files {\tt libxc.a} ! and {\tt libxcf90.a}. Copy these files and the file {\tt libxcf90.f90} from ! the Libxc {\tt src} directory 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/libxcf90.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 antiferromagnetic 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{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.005$} ! The stress tensor is computed by changing the lattice vector matrix $A$ by ! $$ A\rightarrow (1+\delta t\,e_k)A, $$ ! where $\delta t$ is an infinitesimal equal in practice to {\tt deltast} and ! $e_k$ is the $k^{\rm th}$ strain tensor. Numerical finite differences are ! used to compute the stress tensor as the derivative of the total energy ! $dE_k/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 & $5\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 & ! $2\times 10^{-3}$} ! 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 also {\tt tm3fix}. ! ! \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 & 300} ! 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 & 3} ! 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{mrmtav}{ ! {\tt mrmtav} & order of averaging applied to the muffin-tin radii & ! integer & 0} ! Crystal structures with muffin-tin radii which are widely varying in size ! can cause calculations to become unstable. Applying a simple averaging ! procedure to the radii reduces this variation and can improve stability. ! The larger {\tt mrmtav}, the more equal the muffin-tin radii will become. ! See the routine {\tt rmtavrg}. ! ! \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{num\_wann}{ ! {\tt num\_wann} & number of Wannier90 wavefunctions & integer & 0} ! If ${\tt num\_wann}>0$ then this is the number of Wannier wavefunctions ! to be found by the Wannier90 package. If ${\tt num\_wann}\le 0$ then the ! number of wavefunctions is given by ${\tt num\_bands}+{\tt num\_wann}$. ! ! \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 ! occupation numbers 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} ! 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 occupation numbers. \\ ! 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/2/3 & 1/2/3D charge density plot. \\ ! 41/2/3 & 1/2/3D exchange-correlation and Coulomb potential plots. \\ ! 51/2/3 & 1/2/3D electron localisation function (ELF) plot. \\ ! 61/2/3 & 1/2/3D wavefunction plot: ! $\left|\Psi_{i{\bf k}}({\bf r})\right|^2$. \\ ! 65 & Write the core wavefunctions to file for plotting. \\ ! 68 & Output the status of the RAM disk. \\ ! 71/2/3 & 1/2/3D plot of magnetisation vector field, ${\bf m}({\bf r})$. \\ ! 81/2/3 & 1/2/3D plot of exchange-correlation magnetic vector field, ! ${\bf B}_{\rm xc}({\bf r})$. \\ ! 91/2/3 & 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})=\prod_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. \\ ! 130 & Output matrix elements of the type ! $\langle\Psi_{i{\bf k+q}}|e^{i{\bf q}\cdot{\bf r}}| ! \Psi_{j{\bf k}}\rangle$. ! \end{tabularx} ! ! \begin{tabularx}{\textwidth}[h]{lX} ! 135 & Output all wavefunctions expanded in the plane wave basis up to a ! cut-off defined by {\tt hkmax}. \\ ! 140 & Energy loss near edge structure (ELNES). \\ ! 141/2/3 & 1/2/3D plot of the electric field ! ${\bf E}({\bf r})\equiv\nabla V_{\rm C}({\bf r})$. \\ ! 150 & Write out the atomic eigenvalues for each species. \\ ! 151/2/3 & 1/2/3D plot of ! ${\bf m}({\bf r})\times{\bf B}_{\rm xc}({\bf r})$. \\ ! 160 & Calculates the total exchange-correlation spin-torque acting on the ! system: $\boldsymbol{\tau}=\int d^3r\, {\bf m}({\bf r})\times ! {\bf B}_{\rm xc}({\bf r}).$ \\ ! 162 & 2D scanning-tunneling microscopy (STM) image. \\ ! 170 & Writes the electron momentum density to {\tt EMD.OUT}. \\ ! 171/2/3 & 1/2/3D plot of the electron momentum density. \\ ! 180 & Generate the RPA inverse dielectric function with local contributions ! $\epsilon^{-1}({\bf G},{\bf G}',{\bf q},\omega)$ 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 {\tt DYN} files. \\ ! 205 & Calculation of phonon dynamical matrices using density functional ! perturbation theory (DFPT). \\ ! 208 & Calculation of static Born effective charges. \\ ! 209 & Born effective charge dry run: produce a set of empty {\tt BEC} ! files. \\ ! 210 & Phonon density of states. \\ ! 220 & Phonon dispersion plot. \\ ! 230 & Phonon frequencies and eigenvectors for an arbitrary $q$-point. \\ ! 240/1 & Generate the ${\bf q}$-dependent phonon linewidths and ! electron-phonon coupling constants and write them to file. Task 241 also ! writes the complete set of electron-phonon coupling matrix elements to ! {\tt EPHMAT.OUT}. \\ ! 245 & Phonon linewidths plot. \\ ! 250 & Eliashberg function $\alpha^2F(\omega)$, electron-phonon coupling ! constant $\lambda$, and the McMillan-Allen-Dynes critical temperature ! $T_c$. \\ ! 260 & Solves the Eliashberg equations to find the superconducting gap. \\ ! 270 & Electron-phonon Bogoliubov equation ground-state. \\ ! 271 & Resumption of the Bogoliubov ground-state. \\ ! 280 & Electron-phonon Bogoliubov density of states. \\ ! 285 & Electron and phonon anomalous correlation entropy (ACE). \\ ! 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/1 & 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}',{\bf q},\omega)$ to file. ! \end{tabularx} ! ! \begin{tabularx}{\textwidth}[h]{lX} ! 341/2/3 & 1/2/3D plot of ! $w_{\rm xc}({\bf r})\equiv \left.\delta E_{\rm xc}[\rho,\tau]/ ! \delta \tau({\bf r})\right|_{\rho}$ which is calculated for meta-GGA ! functionals. \\ ! 350/1/2 & Spin-spiral supercell calculations (spin-orbit coupling can be ! included). Task 352 is a dry run: produce a set of empty {\tt SS} files. \\ ! 371/2/3 & 1/2/3D plot of the paramagnetic current density ! ${\bf j}_{\rm p}({\bf r})$. \\ ! 380 & Piezoelectric tensor. \\ ! 390 & Magnetoelectric tensor. \\ ! 400 & Calculation of tensor moments and corresponding DFT+$U$ Hartree-Fock ! energy contributions. \\ ! 420/1 & Molecular dynamics (MD) calculation within the adiabatic ! approximation. Task 421 restarts an interrupted MD calculation. \\ ! 430 & Write the strain tensors to {\tt STRAIN.OUT}. \\ ! 440 & Write the stress tensor components corresponding to the strain tensors ! to {\tt STRESS.OUT}. \\ ! 450 & Generates a laser pulse in the form of a time-dependent vector ! potential ${\bf A}(t)$ and writes it to {\tt AFIELDT.OUT}. \\ ! 460/1/2/3 & Time evolution run using TDDFT under the influence of ! ${\bf A}(t)$. Tasks 462 and 463 include nuclear Ehrenfest dynamics. Tasks ! 461 and 463 restart interrupted calculations. \\ ! 471 & 1D plot of the static charge density. \\ ! 478 & Calculation of the dynamical Born effective charges. \\ ! 480/1 & Computes the dielectric function from the time-dependent current ! density in {\tt JTOT\_TD.OUT}. Task 481 assumes that the vector potential ! ${\bf A}(t)$ is a step function at $t=0$, while task 480 makes no such ! assumptions. \\ ! 500 & Checks the test files generated when {\tt test} is {\tt .true.} \\ ! 550 & Writes the files required by Wannier90. \\ ! 600 & Output the $GW$ self-energy matrix elements. \\ ! 610 & Generates the $GW$ spectral function. \\ ! 620 & Generates the $GW$ band structure, i.e. the ${\bf k}$-dependent ! spectral function). \\ ! 640 & Determines the $GW$ density matrix in terms of natural orbitals and ! occupation numbers. The files {\tt EVECSV.OUT} and {\tt OCCSV.OUT} are ! overwritten by these and can then be used for other calculations. \\ ! 700/1 & Ultra long-range ground-state calculation. Task 701 is for ! restarting from the potential in {\tt STATE\_ULR.OUT}. \\ ! 731/2/3 & 1/2/3D plot of the ultra long-range density. \\ ! 741/2/3 & 1/2/3D plot of the ultra long-range Kohn-Sham potential. \\ ! 771/2/3 & 1/2/3D plot of the ultra long-range magnetisation. ! \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{tau0oep}{ ! {\tt tau0oep} & initial step length for the OEP iterative solver & real & ! $0.5$} ! The optimised effective potential is determined using an interative method ! [Phys. Rev. Lett. 98, 196405 (2007)]. This variable sets the step length as ! described in the article. See {\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{tm3fix}{ ! {\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(i)} & $l$ of TM & integer & - \\ ! \hline ! {\tt (k, p, r, t)(i)} & indices for the 3-index TM & integer & - \\ ! \hline ! {\tt wkpr(t)(i)} & real TM value & real & - } ! This block sets up the fixed tensor moment (FTM). There should be as many ! TM entries as {\tt ntmfix}. See the routine {\tt tm3todm} for the tensor ! moment indexing convention. ! ! \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 2008 should be used. Features which are marked as ! obsolescent in Fortran 2008 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-9.6.8/src/PaxHeaders/factn.f900000644000000000000000000000012714626155520013603 xustar0029 mtime=1717099344.05098674 29 atime=1717099341.93697535 29 ctime=1717099344.05098674 elk-9.6.8/src/factn.f900000644002504400250440000000230214626155520016316 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2022 J. K. Dewhurst, S. Sharma and E. K. U. Gross. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. elemental real(8) function factn(n) implicit none ! arguments integer, intent(in) :: n ! local variables integer i real(8), parameter :: f(24)=[ & 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] if (n <= 1) then factn=1.d0 else if (n <= 24) then factn=f(n) else factn=f(24) do i=25,n factn=factn*dble(i) end do end if end function elk-9.6.8/src/PaxHeaders/factr.f900000644000000000000000000000013214626155520013603 xustar0030 mtime=1717099344.052986751 30 atime=1717099341.938975361 30 ctime=1717099344.052986751 elk-9.6.8/src/factr.f900000644002504400250440000000175014626155520016330 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), external :: factn if (d == 1) then factr=factn(n) return end if if ((n < 0).or.(d < 0)) then factr=0.d0 return end if if (n < d) then factr=dble(n+1) do i=n+2,d factr=factr*dble(i) end do factr=1.d0/factr else if (n == d) then factr=1.d0 else factr=dble(d+1) do i=d+2,n factr=factr*dble(i) end do end if end function !EOC elk-9.6.8/src/PaxHeaders/factn2.f900000644000000000000000000000013214626155520013661 xustar0030 mtime=1717099344.054986762 30 atime=1717099341.940975372 30 ctime=1717099344.054986762 elk-9.6.8/src/factn2.f900000644002504400250440000000317414626155520016410 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2022 J. K. Dewhurst, S. Sharma and E. K. U. Gross. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. elemental real(8) function factn2(n) implicit none ! arguments integer, intent(in) :: n ! local variables integer i real(8), parameter :: f(38)=[ & 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] if (n <= 1) then factn2=1.d0 else if (n <= 38) then factn2=f(n) else factn2=dble(n) do i=1,n/2-1 factn2=factn2*dble(n-2*i) end do end if end function elk-9.6.8/src/PaxHeaders/r3mm.f900000644000000000000000000000013214626155520013362 xustar0030 mtime=1717099344.056986773 30 atime=1717099341.942975382 30 ctime=1717099344.056986773 elk-9.6.8/src/r3mm.f900000644002504400250440000000210414626155520016101 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) end subroutine !EOC elk-9.6.8/src/PaxHeaders/r3mtm.f900000644000000000000000000000013214626155520013546 xustar0030 mtime=1717099344.058986783 30 atime=1717099341.945975399 30 ctime=1717099344.058986783 elk-9.6.8/src/r3mtm.f900000644002504400250440000000214414626155520016271 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) end subroutine !EOC elk-9.6.8/src/PaxHeaders/r3mmt.f900000644000000000000000000000013114626155520013545 xustar0030 mtime=1717099344.060986794 29 atime=1717099341.94797541 30 ctime=1717099344.060986794 elk-9.6.8/src/r3mmt.f900000644002504400250440000000212614626155520016271 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) end subroutine !EOC elk-9.6.8/src/PaxHeaders/r3vo.f900000644000000000000000000000013114626155520013374 xustar0030 mtime=1717099344.062986805 29 atime=1717099341.94997542 30 ctime=1717099344.062986805 elk-9.6.8/src/r3vo.f900000644002504400250440000000076714626155520016131 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 ! orthogonalise the vector y with respect to x t1=x(1)**2+x(2)**2+x(3)**2 if (t1 < 1.d-8) return t2=(x(1)*y(1)+x(2)*y(2)+x(3)*y(3))/t1 y(:)=y(:)-t2*x(:) end subroutine elk-9.6.8/src/PaxHeaders/gcd.f900000644000000000000000000000013214626155520013241 xustar0030 mtime=1717099344.064986816 30 atime=1717099341.951975431 30 ctime=1717099344.064986816 elk-9.6.8/src/gcd.f900000644002504400250440000000156214626155520015767 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 <= 0).or.(y <= 0)) then write(*,*) write(*,'("Error(gcd): x <= 0 or y <= 0 : ",2I8)') x,y write(*,*) stop end if if (x >= 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 > 0) goto 10 gcd=a end function !EOC elk-9.6.8/src/PaxHeaders/rfint.f900000644000000000000000000000013214626155520013626 xustar0030 mtime=1717099344.066986827 30 atime=1717099341.954975447 30 ctime=1717099344.066986827 elk-9.6.8/src/rfint.f900000644002504400250440000000120614626155520016347 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 ! external functions real(8), external :: rfmtint ! interstitial contribution rfint=dot_product(rfir(:),cfunir(:)) rfint=rfint*omega/dble(ngtot) ! muffin-tin contribution do ias=1,natmtot is=idxis(ias) rfint=rfint+rfmtint(nrmt(is),nrmti(is),wrmt(:,is),rfmt(:,ias)) end do end function elk-9.6.8/src/PaxHeaders/trimrfg.f900000644000000000000000000000013214626155520014156 xustar0030 mtime=1717099344.068986837 30 atime=1717099341.956975458 30 ctime=1717099344.068986837 elk-9.6.8/src/trimrfg.f900000644002504400250440000000106214626155520016677 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2023 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 trimrfg(rfir) use modmain implicit none ! arguments real(8), intent(inout) :: rfir(ngtot) ! automatic arrays complex(8) zfft(nfgrz) ! Fourier transform function to G-space call rzfftifc(3,ngridg,-1,rfir,zfft) ! zero the components for |G| > 2 gkmax where(igrzf(:) > ngvc) zfft(:)=0.d0 ! Fourier transform back to real-space call rzfftifc(3,ngridg,1,rfir,zfft) end subroutine elk-9.6.8/src/PaxHeaders/gencfun.f900000644000000000000000000000013214626155520014131 xustar0030 mtime=1717099344.070986848 30 atime=1717099341.958975469 30 ctime=1717099344.070986848 elk-9.6.8/src/gencfun.f900000644002504400250440000000403414626155520016654 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,ifg real(8) v1,v2,v3,t1 ! allocatable arrays complex(8), allocatable :: zfft(:) allocate(zfft(ngtot)) zfft(1)=1.d0 zfft(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 ifg=igfft(ig) ! structure factor t1=vgc(1,ig)*v1+vgc(2,ig)*v2+vgc(3,ig)*v3 ! add to characteristic function in G-space zfft(ifg)=zfft(ifg)-ffacg(ig,is)*cmplx(cos(t1),-sin(t1),8) end do end do end do ! allocate global characteristic function arrays if (allocated(cfunig)) deallocate(cfunig) allocate(cfunig(ngvec)) if (allocated(cfunir)) deallocate(cfunir) allocate(cfunir(ngtot)) cfunig(1:ngvec)=zfft(igfft(1:ngvec)) ! Fourier transform to real-space call zfftifc(3,ngridg,1,zfft) cfunir(:)=dble(zfft(:)) deallocate(zfft) end subroutine !EOC elk-9.6.8/src/PaxHeaders/zpotcoul.f900000644000000000000000000000013114626155520014362 xustar0030 mtime=1717099344.072986859 29 atime=1717099341.96097548 30 ctime=1717099344.072986859 elk-9.6.8/src/zpotcoul.f900000644002504400250440000002274514626155520017117 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,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)) ! 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),np(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,iro integer l,lm,lma,lmb integer ig,jg,i,i0,i1 real(8) t1,t2,t3 complex(8) z1,z2 ! automatic arrays real(8) rl2(0:lmaxo) complex(8) qlm(lmmaxo,natmtot),zlm(lmmaxo),zhmt(ld3) ! external functions real(8), external :: factn2 ! compute the multipole moments from the muffin-tin potentials t1=1.d0/fourpi do ias=1,natmtot is=idxis(ias) i=np(is)-lmmaxo do l=0,lmaxo t2=t1*dble(2*l+1)*rmtl(l+1,is) lma=l**2+1; lmb=lma+2*l qlm(lma:lmb,ias)=t2*zvclmt(i+lma:i+lmb,ias) 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 rl2(0:lmaxo)=rmtl(2:lmaxo+2,is) t1=rl2(0)*fourpi*y00 do ia=1,natoms(is) ias=idxas(ia,is) zlm(:)=0.d0 do ig=1,ngp jg=igf(ig) if (gpc(ig) > epslat) then z1=zvclir(jg)*sfacgp(ig,ias)/gpc(ig) zlm(1)=zlm(1)+jlgprmt(1,ig,is)*t1*z1 do l=1,lmaxo lma=l**2+1; lmb=lma+2*l z2=jlgprmt(l+1,ig,is)*rl2(l)*z1 zlm(lma:lmb)=zlm(lma:lmb)+z2*conjg(ylmgp(lma:lmb,ig)) end do else t2=(fourpi/3.d0)*rmtl(3,is)*y00 zlm(1)=zlm(1)+t2*zvclir(jg) end if end do qlm(:,ias)=qlm(:,ias)-zlm(:) 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=factn2(2*lnpsd+1)/omega do ias=1,natmtot is=idxis(ias) do l=0,lmaxo t2=t1/(factn2(2*l+1)*rmtl(l,is)) lma=l**2+1; lmb=lma+2*l zlm(lma:lmb)=t2*qlm(lma:lmb,ias) end do ! add the pseudocharge and real interstitial densities in G-space do ig=1,ngp jg=igf(ig) if (gpc(ig) > epslat) then t2=gpc(ig)*rmt(is) t3=1.d0/t2**lnpsd z1=t3*fourpi*y00*zlm(1) do l=1,lmaxo lma=l**2+1; lmb=lma+2*l t3=t3*t2 z1=z1+t3*sum(zlm(lma:lmb)*ylmgp(lma:lmb,ig)) end do z2=jlgprmt(lnpsd,ig,is)*conjg(sfacgp(ig,ias)) zvclir(jg)=zvclir(jg)+z1*z2 else t2=fourpi*y00/factn2(2*lnpsd+1) 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) iro=nri(is)+1 ! find the spherical harmonic expansion of the interstitial potential at the ! muffin-tin radius zlm(:)=0.d0 do ig=1,ngp z1=zvclir(igf(ig))*sfacgp(ig,ias) zlm(1)=zlm(1)+jlgprmt(0,ig,is)*fourpi*y00*z1 do l=1,lmaxo lma=l**2+1; lmb=lma+2*l z2=jlgprmt(l,ig,is)*z1 zlm(lma:lmb)=zlm(lma:lmb)+z2*conjg(ylmgp(lma:lmb,ig)) end do end do ! calculate the homogenous solution i=np(is)-lmmaxo do l=0,lmaxi t1=1.d0/rmtl(l,is) do lm=l**2+1,(l+1)**2 z1=t1*(zlm(lm)-zvclmt(i+lm,ias)) i1=lmmaxi*(nri(is)-1)+lm zhmt(lm:i1:lmmaxi)=z1*rl(1:nri(is),l,is) i0=i1+lmmaxi i1=lmmaxo*(nr(is)-iro)+i0 zhmt(i0:i1:lmmaxo)=z1*rl(iro:nr(is),l,is) end do end do do l=lmaxi+1,lmaxo t1=1.d0/rmtl(l,is) do lm=l**2+1,(l+1)**2 z1=t1*(zlm(lm)-zvclmt(i+lm,ias)) i0=lmmaxi*nri(is)+lm i1=lmmaxo*(nr(is)-iro)+i0 zhmt(i0:i1:lmmaxo)=z1*rl(iro:nr(is),l,is) 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 == 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) end subroutine !EOC elk-9.6.8/src/PaxHeaders/cpotcoul.f900000644000000000000000000000013214626155520014334 xustar0030 mtime=1717099344.075986875 30 atime=1717099341.963975496 30 ctime=1717099344.075986875 elk-9.6.8/src/cpotcoul.f900000644002504400250440000001060514626155520017060 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2023 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 cpotcoul(nr,nri,np,ld1,rl,ngdg,igf,ngp,gpc,gclgp,ld2,jlgprmt,ylmgp, & sfacgp,crhoir,ld3,cvclmt,cvclir) use modmain use modphonon implicit none integer, intent(in) :: nr(nspecies),nri(nspecies),np(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(4), intent(in) :: crhoir(*) integer, intent(in) :: ld3 complex(4), intent(inout) :: cvclmt(ld3,natmtot) complex(4), intent(out) :: cvclir(*) ! local variables integer is,ia,ias,iro integer l,lm,lma,lmb integer ig,jg,i,i0,i1 real(8) t1,t2,t3 complex(8) z1,z2 ! automatic arrays real(8) rl2(0:lmaxo) complex(8) qlm(lmmaxo,natmtot),zlm(lmmaxo) ! external functions real(8), external :: factn2 ! compute the multipole moments from the muffin-tin potentials t1=1.d0/fourpi do ias=1,natmtot is=idxis(ias) i=np(is)-lmmaxo do l=0,lmaxo t2=t1*dble(2*l+1)*rmtl(l+1,is) lma=l**2+1; lmb=lma+2*l qlm(lma:lmb,ias)=t2*cvclmt(i+lma:i+lmb,ias) end do end do ! Fourier transform density to G-space and store in zvclir call ccopy(ngdg(1)*ngdg(2)*ngdg(3),crhoir,1,cvclir,1) call cfftifc(3,ngdg,-1,cvclir) ! subtract the multipole moments of the interstitial charge density do is=1,nspecies rl2(0:lmaxo)=rmtl(2:lmaxo+2,is) t1=rl2(0)*fourpi*y00 do ia=1,natoms(is) ias=idxas(ia,is) zlm(:)=0.d0 do ig=1,ngp jg=igf(ig) if (gpc(ig) > epslat) then z1=cvclir(jg)*sfacgp(ig,ias)/gpc(ig) zlm(1)=zlm(1)+jlgprmt(1,ig,is)*t1*z1 do l=1,lmaxo lma=l**2+1; lmb=lma+2*l z2=jlgprmt(l+1,ig,is)*rl2(l)*z1 zlm(lma:lmb)=zlm(lma:lmb)+z2*conjg(ylmgp(lma:lmb,ig)) end do else t2=(fourpi/3.d0)*rmtl(3,is)*y00 zlm(1)=zlm(1)+t2*cvclir(jg) end if end do qlm(:,ias)=qlm(:,ias)-zlm(:) 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=factn2(2*lnpsd+1)/omega do ias=1,natmtot is=idxis(ias) do l=0,lmaxo t2=t1/(factn2(2*l+1)*rmtl(l,is)) lma=l**2+1; lmb=lma+2*l zlm(lma:lmb)=t2*qlm(lma:lmb,ias) end do ! add the pseudocharge and real interstitial densities in G-space do ig=1,ngp jg=igf(ig) if (gpc(ig) > epslat) then t2=gpc(ig)*rmt(is) t3=1.d0/t2**lnpsd z1=t3*fourpi*y00*zlm(1) do l=1,lmaxo lma=l**2+1; lmb=lma+2*l t3=t3*t2 z1=z1+t3*sum(zlm(lma:lmb)*ylmgp(lma:lmb,ig)) end do z2=jlgprmt(lnpsd,ig,is)*conjg(sfacgp(ig,ias)) cvclir(jg)=cvclir(jg)+z1*z2 else t2=fourpi*y00/factn2(2*lnpsd+1) cvclir(jg)=cvclir(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) cvclir(jg)=gclgp(ig)*cvclir(jg) end do ! match potentials at muffin-tin boundary by adding homogeneous solution do ias=1,natmtot is=idxis(ias) iro=nri(is)+1 ! find the spherical harmonic expansion of the interstitial potential at the ! muffin-tin radius zlm(:)=0.d0 do ig=1,ngp z1=cvclir(igf(ig))*sfacgp(ig,ias) zlm(1)=zlm(1)+jlgprmt(0,ig,is)*fourpi*y00*z1 do l=1,lmaxo lma=l**2+1; lmb=lma+2*l z2=jlgprmt(l,ig,is)*z1 zlm(lma:lmb)=zlm(lma:lmb)+z2*conjg(ylmgp(lma:lmb,ig)) end do end do ! add the homogenous solution i=np(is)-lmmaxo do l=0,lmaxi t1=1.d0/rmtl(l,is) do lm=l**2+1,(l+1)**2 z1=t1*(zlm(lm)-cvclmt(i+lm,ias)) i1=lmmaxi*(nri(is)-1)+lm cvclmt(lm:i1:lmmaxi,ias)=cvclmt(lm:i1:lmmaxi,ias)+z1*rl(1:nri(is),l,is) i0=i1+lmmaxi i1=lmmaxo*(nr(is)-iro)+i0 cvclmt(i0:i1:lmmaxo,ias)=cvclmt(i0:i1:lmmaxo,ias)+z1*rl(iro:nr(is),l,is) end do end do do l=lmaxi+1,lmaxo t1=1.d0/rmtl(l,is) do lm=l**2+1,(l+1)**2 z1=t1*(zlm(lm)-cvclmt(i+lm,ias)) i0=lmmaxi*nri(is)+lm i1=lmmaxo*(nr(is)-iro)+i0 cvclmt(i0:i1:lmmaxo,ias)=cvclmt(i0:i1:lmmaxo,ias)+z1*rl(iro:nr(is),l,is) end do end do end do ! Fourier transform interstitial potential to real-space call cfftifc(3,ngdg,1,cvclir) end subroutine elk-9.6.8/src/PaxHeaders/potcoul.f900000644000000000000000000000013214626155520014171 xustar0030 mtime=1717099344.077986886 30 atime=1717099341.965975506 30 ctime=1717099344.077986886 elk-9.6.8/src/potcoul.f900000644002504400250440000000513514626155520016717 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,iro,i0,i1 ! 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) iro=nri+1 i1=lmmaxi*(nri-1)+1 zvclmt(1:i1:lmmaxi,ias)=zvclmt(1:i1:lmmaxi,ias)+vcln(1:nri,is) i0=i1+lmmaxi i1=lmmaxo*(nr-iro)+i0 zvclmt(i0:i1:lmmaxo,ias)=zvclmt(i0:i1:lmmaxo,ias)+vcln(iro:nr,is) end do ! apply atomic displacement potential if required if (tatdisp) call zvcldisp(zvclmt) allocate(zrhoir(ngtot),zvclir(ngtot)) ! store real interstitial charge density in complex array zrhoir(:)=rhoir(:) ! solve Poisson's equation in the entire unit cell call zpotcoul(nrmt,nrmti,npmt,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+1,nthd) !$OMP PARALLEL DEFAULT(SHARED) & !$OMP PRIVATE(ias,is) & !$OMP NUM_THREADS(nthd) !$OMP DO do ias=1,natmtot is=idxis(ias) call ztorfmt(nrmt(is),nrmti(is),zvclmt(:,ias),vclmt(:,ias)) end do !$OMP END DO NOWAIT ! store complex interstitial potential in real array !$OMP SINGLE vclir(:)=dble(zvclir(:)) !$OMP END SINGLE !$OMP END PARALLEL call freethd(nthd) deallocate(zrhoir,zvclmt,zvclir) ! apply constant electric field if required if (tefield) call potefield end subroutine !EOC elk-9.6.8/src/PaxHeaders/zftcf.f900000644000000000000000000000013214626155520013620 xustar0030 mtime=1717099344.079986897 30 atime=1717099341.967975517 30 ctime=1717099344.079986897 elk-9.6.8/src/zftcf.f900000644002504400250440000000574314626155520016353 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2023 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 zftcf(ngp,jlgpr,ylmgp,ld,sfacgp,cfmt,cfir,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(4), intent(in) :: cfmt(npcmtmax,natmtot),cfir(ngtc) complex(8), intent(out) :: zfgp(ngp) ! local variables integer is,ia,ias,ig integer nrc,nrci,irco,irc integer l,lm,n,i,j real(8) t0,y0 complex(8) zsm,z1 ! automatic arrays complex(4) ylm(lmmaxo),cfft(ngtc) !-----------------------------------! ! interstitial contribution ! !-----------------------------------! ! multiply by coarse characteristic function cfft(:)=cfir(:)*cfrc(:) ! Fourier transform to coarse G-grid call cfftifc(3,ngdgc,-1,cfft) zfgp(1:ngp)=cfft(igfc(1:ngp)) !---------------------------------! ! muffin-tin contribution ! !---------------------------------! t0=1.d0/omega y0=t0*fourpi*y00 do ig=1,ngp ylm(1:lmmaxo)=t0*ylmgp(1:lmmaxo,ig) do is=1,nspecies nrc=nrcmt(is) nrci=nrcmti(is) irco=nrci+1 do ia=1,natoms(is) ias=idxas(ia,is) zsm=0.d0 i=1 j=1 ! inner part of muffin-tin, note that lmaxi >= 1 if (lmaxi == 1) then do irc=1,nrci zsm=zsm+wrcmt(irc,is)*(jlgpr(j,is,ig)*cfmt(i,ias)*y0+jlgpr(j+1,is,ig)& *(cfmt(i+1,ias)*ylm(2)+cfmt(i+2,ias)*ylm(3)+cfmt(i+3,ias)*ylm(4))) i=i+4 j=j+2 end do else do irc=1,nrci z1=jlgpr(j,is,ig)*cfmt(i,ias)*y0+jlgpr(j+1,is,ig) & *(cfmt(i+1,ias)*ylm(2)+cfmt(i+2,ias)*ylm(3)+cfmt(i+3,ias)*ylm(4)) i=i+4 j=j+2 do l=2,lmaxi n=2*l lm=l**2+1 z1=z1+jlgpr(j,is,ig)*sum(cfmt(i:i+n,ias)*ylm(lm:lm+n)) i=i+n+1 j=j+1 end do zsm=zsm+wrcmt(irc,is)*z1 end do end if ! outer part of muffin-tin, note that lmaxo >= 3 do irc=irco,nrc z1=jlgpr(j,is,ig)*cfmt(i,ias)*y0+jlgpr(j+1,is,ig) & *(cfmt(i+1,ias)*ylm(2)+cfmt(i+2,ias)*ylm(3)+cfmt(i+3,ias)*ylm(4)) & +jlgpr(j+2,is,ig) & *(cfmt(i+4,ias)*ylm(5)+cfmt(i+5,ias)*ylm(6)+cfmt(i+6,ias)*ylm(7) & +cfmt(i+7,ias)*ylm(8)+cfmt(i+8,ias)*ylm(9)) & +jlgpr(j+3,is,ig) & *(cfmt(i+9,ias)*ylm(10)+cfmt(i+10,ias)*ylm(11)+cfmt(i+11,ias)*ylm(12) & +cfmt(i+12,ias)*ylm(13)+cfmt(i+13,ias)*ylm(14)+cfmt(i+14,ias)*ylm(15)& +cfmt(i+15,ias)*ylm(16)) i=i+16 j=j+4 do l=4,lmaxo n=2*l lm=l**2+1 z1=z1+jlgpr(j,is,ig)*sum(cfmt(i:i+n,ias)*ylm(lm:lm+n)) i=i+n+1 j=j+1 end do zsm=zsm+wrcmt(irc,is)*z1 end do zfgp(ig)=zfgp(ig)+conjg(sfacgp(ig,ias))*zsm end do end do end do end subroutine elk-9.6.8/src/PaxHeaders/elnes.f900000644000000000000000000000013214626155520013612 xustar0030 mtime=1717099344.081986907 30 atime=1717099341.970975533 30 ctime=1717099344.081986907 elk-9.6.8/src/elnes.f900000644002504400250440000000712014626155520016334 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) > epslat).or.(v(2) > epslat).or.(v(3) > 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 ! 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 occupation numbers 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)) call gengqf(1,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) < 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 > 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) end subroutine elk-9.6.8/src/PaxHeaders/symdmat.f900000644000000000000000000000013214626155520014162 xustar0030 mtime=1717099344.084986924 30 atime=1717099341.972975544 30 ctime=1717099344.084986924 elk-9.6.8/src/symdmat.f900000644002504400250440000000355014626155520016707 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,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) end subroutine elk-9.6.8/src/PaxHeaders/axangsu2.f900000644000000000000000000000013214626155520014234 xustar0030 mtime=1717099344.086986934 30 atime=1717099341.974975555 30 ctime=1717099344.086986934 elk-9.6.8/src/axangsu2.f900000644002504400250440000000253014626155520016756 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 pure 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) ! return the identity matrix for a zero-length axis if (t1 < 1.d-8) then su2(1,1)=1.d0 su2(2,1)=0.d0 su2(1,2)=0.d0 su2(2,2)=1.d0 return 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) end subroutine !EOC elk-9.6.8/src/PaxHeaders/gradzvcln.f900000644000000000000000000000013214626155520014476 xustar0030 mtime=1717099344.088986945 30 atime=1717099341.977975571 30 ctime=1717099344.088986945 elk-9.6.8/src/gradzvcln.f900000644002504400250440000000143214626155520017220 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2020 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 gradzvcln(is,gzfmt) use modmain implicit none ! arguments integer, intent(in) :: is complex(8), intent(out) :: gzfmt(npmtmax,3) ! local variables integer nr,nri,iro,i0,i1 ! automatic arrays complex(8) zvclmt(npmtmax) nr=nrmt(is) nri=nrmti(is) iro=nri+1 ! convert nuclear Coulomb potential to complex spherical harmonics expansion zvclmt(1:npmt(is))=0.d0 i1=lmmaxi*(nri-1)+1 zvclmt(1:i1:lmmaxi)=vcln(1:nri,is) i0=i1+lmmaxi i1=lmmaxo*(nr-iro)+i0 zvclmt(i0:i1:lmmaxo)=vcln(iro:nr,is) ! compute the gradient of the potential call gradzfmt(nr,nri,rlmt(:,-1,is),wcrmt(:,:,is),zvclmt,npmtmax,gzfmt) end subroutine elk-9.6.8/src/PaxHeaders/gentpmae.f900000644000000000000000000000013214626155520014304 xustar0030 mtime=1717099344.090986956 30 atime=1717099341.979975582 30 ctime=1717099344.090986956 elk-9.6.8/src/gentpmae.f900000644002504400250440000000355214626155520017033 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 == 0).and.(i2 == 0).and.(i3 == 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 < 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 end subroutine elk-9.6.8/src/PaxHeaders/zfcmtwr.f900000644000000000000000000000013214626155520014200 xustar0030 mtime=1717099344.092986967 30 atime=1717099341.982975598 30 ctime=1717099344.092986967 elk-9.6.8/src/zfcmtwr.f900000644002504400250440000000134714626155520016727 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2020 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. pure subroutine zfcmtwr(nr,nri,wr,zfmt) use modmain implicit none ! arguments integer, intent(in) :: nr,nri real(8), intent(in) :: wr(nr) complex(8), intent(inout) :: zfmt(*) ! local variables integer n,ir,i real(8) t1 i=1 if (lmaxi == 1) then do ir=1,nri zfmt(i:i+3)=(pi*wr(ir))*zfmt(i:i+3) i=i+4 end do else t1=fourpi/dble(lmmaxi) n=lmmaxi-1 do ir=1,nri zfmt(i:i+n)=(t1*wr(ir))*zfmt(i:i+n) i=i+lmmaxi end do end if t1=fourpi/dble(lmmaxo) n=lmmaxo-1 do ir=nri+1,nr zfmt(i:i+n)=(t1*wr(ir))*zfmt(i:i+n) i=i+lmmaxo end do end subroutine elk-9.6.8/src/PaxHeaders/cfcmtwr.f900000644000000000000000000000013214626155520014151 xustar0030 mtime=1717099344.094986977 30 atime=1717099341.984975609 30 ctime=1717099344.094986977 elk-9.6.8/src/cfcmtwr.f900000644002504400250440000000134714626155520016700 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2022 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. pure subroutine cfcmtwr(nr,nri,wr,cfmt) use modmain implicit none ! arguments integer, intent(in) :: nr,nri real(8), intent(in) :: wr(nr) complex(4), intent(inout) :: cfmt(*) ! local variables integer n,ir,i real(8) t1 i=1 if (lmaxi == 1) then do ir=1,nri cfmt(i:i+3)=(pi*wr(ir))*cfmt(i:i+3) i=i+4 end do else t1=fourpi/dble(lmmaxi) n=lmmaxi-1 do ir=1,nri cfmt(i:i+n)=(t1*wr(ir))*cfmt(i:i+n) i=i+lmmaxi end do end if t1=fourpi/dble(lmmaxo) n=lmmaxo-1 do ir=nri+1,nr cfmt(i:i+n)=(t1*wr(ir))*cfmt(i:i+n) i=i+lmmaxo end do end subroutine elk-9.6.8/src/PaxHeaders/projsbf.f900000644000000000000000000000013114626155520014150 xustar0030 mtime=1717099344.096986988 29 atime=1717099341.98697562 30 ctime=1717099344.096986988 elk-9.6.8/src/projsbf.f900000644002504400250440000000406214626155520016675 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,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π to existing B_xc t1=1.d0/fourpi do idm=1,3 do ias=1,natmtot is=idxis(ias) np=npmt(is) bxcmt(1:np,ias,idm)=bxcmt(1:np,ias,idm)+t1*grfmt(1:np,ias,idm) end do end do bxcir(:,:)=bxcir(:,:)+t1*grfir(:,:) deallocate(rfmt,rfir,grfmt,grfir) deallocate(zrhomt,zrhoir,zvclmt,zvclir) end subroutine elk-9.6.8/src/PaxHeaders/gradzf.f900000644000000000000000000000013214626155520013761 xustar0030 mtime=1717099344.098986999 30 atime=1717099341.989975636 30 ctime=1717099344.098986999 elk-9.6.8/src/gradzf.f900000644002504400250440000000234314626155520016505 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 gradzf(zfmt,zfir,gzfmt,gzfir) use modmain use modomp implicit none ! arguments complex(8), intent(in) :: zfmt(npmtmax,natmtot),zfir(ngtot) complex(8), intent(out) :: gzfmt(npmtmax,natmtot,3),gzfir(ngtot,3) ! local variables integer is,ias,ld,i integer ig,ifg,nthd complex(8) z1 ! allocatable arrays complex(8), allocatable :: zfft(:) ! muffin-tin gradient ld=npmtmax*natmtot call holdthd(natmtot+1,nthd) !$OMP PARALLEL DEFAULT(SHARED) & !$OMP PRIVATE(zfft,is,i,ig,ifg,z1) & !$OMP NUM_THREADS(nthd) !$OMP DO do ias=1,natmtot is=idxis(ias) call gradzfmt(nrmt(is),nrmti(is),rlmt(:,-1,is),wcrmt(:,:,is),zfmt(:,ias),ld, & gzfmt(1,ias,1)) end do !$OMP END DO NOWAIT ! interstitial gradient !$OMP SINGLE allocate(zfft(ngtot)) zfft(:)=zfir(:) call zfftifc(3,ngridg,-1,zfft) do i=1,3 gzfir(:,i)=0.d0 do ig=1,ngvec ifg=igfft(ig) z1=zfft(ifg) gzfir(ifg,i)=vgc(i,ig)*cmplx(-aimag(z1),dble(z1),8) end do call zfftifc(3,ngridg,1,gzfir(:,i)) end do deallocate(zfft) !$OMP END SINGLE !$OMP END PARALLEL call freethd(nthd) end subroutine elk-9.6.8/src/PaxHeaders/timesec.f900000644000000000000000000000013014626155520014133 xustar0029 mtime=1717099344.10098701 30 atime=1717099341.991975647 29 ctime=1717099344.10098701 elk-9.6.8/src/timesec.f900000644002504400250440000000122214626155520016654 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) end subroutine !EOC elk-9.6.8/src/PaxHeaders/zfmtftoc.f900000644000000000000000000000013014626155520014336 xustar0029 mtime=1717099344.10298702 30 atime=1717099341.993975657 29 ctime=1717099344.10298702 elk-9.6.8/src/zfmtftoc.f900000644002504400250440000000123514626155520017063 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 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,m,n i=1 j=1 m=lmmaxi*lradstp n=lmmaxi-1 do irc=1,nrci zfcmt(i:i+n)=zfmt(j:j+n) i=i+lmmaxi j=j+m end do j=j+(lradstp-1)*(lmmaxo-lmmaxi) m=lmmaxo*lradstp n=lmmaxo-1 do irc=nrci+1,nrc zfcmt(i:i+n)=zfmt(j:j+n) i=i+lmmaxo j=j+m end do end subroutine elk-9.6.8/src/PaxHeaders/ztorfmt.f900000644000000000000000000000013214626155520014211 xustar0030 mtime=1717099344.103987026 30 atime=1717099341.995975668 30 ctime=1717099344.103987026 elk-9.6.8/src/ztorfmt.f900000644002504400250440000000423314626155520016735 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. pure 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 i call ztorflmn(lmaxi,nri,lmmaxi,zfmt,rfmt) i=lmmaxi*nri+1 call ztorflmn(lmaxo,nr-nri,lmmaxo,zfmt(i),rfmt(i)) return contains !BOP ! !ROUTINE: ztorflmn ! !INTERFACE: pure subroutine ztorflmn(lmax,n,ld,zflm,rflm) ! !INPUT/OUTPUT PARAMETERS: ! lmax : maximum angular momentum (in,integer) ! n : number of functions to convert (in,integer) ! ld : leading dimension (in,integer) ! zflm : coefficients of complex spherical harmonic expansion ! (in,complex(ld,n)) ! rflm : coefficients of real spherical harmonic expansion (out,real(ld,n)) ! !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,n,ld complex(8), intent(in) :: zflm(ld,n) real(8), intent(out) :: rflm(ld,n) ! 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) /= 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) /= 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 end subroutine !EOC end subroutine elk-9.6.8/src/PaxHeaders/zfmtctof.f900000644000000000000000000000013214626155520014340 xustar0030 mtime=1717099344.105987037 30 atime=1717099341.998975684 30 ctime=1717099344.105987037 elk-9.6.8/src/zfmtctof.f900000644002504400250440000000432514626155520017066 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,iro integer nrc,nrci,nrco,irco integer i0,i1,nthd ! automatic arrays real(8) fi1(nrcmtmax),fi2(nrcmtmax) real(8) fo1(nrmtmax),fo2(nrmtmax) complex(8) zfmt1(npcmtmax) if (lradstp == 1) return call holdthd(natmtot,nthd) !$OMP PARALLEL DO DEFAULT(SHARED) & !$OMP PRIVATE(zfmt1,fi1,fi2,fo1,fo2,is) & !$OMP PRIVATE(nr,nri,nro,iro) & !$OMP PRIVATE(nrc,nrci,nrco,irco) & !$OMP PRIVATE(lm,i0,i1) & !$OMP NUM_THREADS(nthd) do ias=1,natmtot is=idxis(ias) nr=nrmt(is) nri=nrmti(is) nro=nr-nri iro=nri+1 nrc=nrcmt(is) nrci=nrcmti(is) nrco=nrc-nrci irco=nrci+1 ! copy the input function zfmt1(1:npcmt(is))=zfmt(1:npcmt(is),ias) ! interpolate up to lmaxi over entire muffin-tin do lm=1,lmmaxi i1=lmmaxi*(nrci-1)+lm fi1(1:nrci)=dble(zfmt1(lm:i1:lmmaxi)) fi2(1:nrci)=aimag(zfmt1(lm:i1:lmmaxi)) i0=i1+lmmaxi i1=lmmaxo*(nrc-irco)+i0 fi1(irco:nrc)=dble(zfmt1(i0:i1:lmmaxo)) fi2(irco:nrc)=aimag(zfmt1(i0:i1:lmmaxo)) call rfinterp(nrc,rcmt(:,is),wcrcmt(:,:,is),fi1,nr,rlmt(:,1,is),fo1) call rfinterp(nrc,rcmt(:,is),wcrcmt(:,:,is),fi2,nr,rlmt(:,1,is),fo2) i1=lmmaxi*(nri-1)+lm zfmt(lm:i1:lmmaxi,ias)=cmplx(fo1(1:nri),fo2(1:nri),8) i0=i1+lmmaxi i1=lmmaxo*(nr-iro)+i0 zfmt(i0:i1:lmmaxo,ias)=cmplx(fo1(iro:nr),fo2(iro:nr),8) end do ! interpolate up to lmaxo on outer part of muffin-tin do lm=lmmaxi+1,lmmaxo i0=lmmaxi*nrci+lm i1=lmmaxo*(nrc-irco)+i0 fi1(irco:nrc)=dble(zfmt1(i0:i1:lmmaxo)) fi2(irco:nrc)=aimag(zfmt1(i0:i1:lmmaxo)) call rfinterp(nrco,rcmt(irco,is),wcrcmt(:,irco,is),fi1(irco),nro, & rsp(iro,is),fo1(iro)) call rfinterp(nrco,rcmt(irco,is),wcrcmt(:,irco,is),fi2(irco),nro, & rsp(iro,is),fo2(iro)) i0=lmmaxi*nri+lm i1=lmmaxo*(nr-iro)+i0 zfmt(i0:i1:lmmaxo,ias)=cmplx(fo1(iro:nr),fo2(iro:nr),8) end do end do !$OMP END PARALLEL DO call freethd(nthd) end subroutine elk-9.6.8/src/PaxHeaders/eveqnfvz.f900000644000000000000000000000013014626155520014346 xustar0030 mtime=1717099344.107987048 28 atime=1717099342.0019757 30 ctime=1717099344.107987048 elk-9.6.8/src/eveqnfvz.f900000644002504400250440000000262114626155520017073 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 m,info,nthd,nts real(8) vl,vu real(8) ts0,ts1 ! automatic arrays integer iwork(5*nmatp),ifail(nmatp) real(8) w(nmatp),rwork(7*nmatp) complex(8) work(2*nmatp) call timesec(ts0) ! enable MKL parallelism call holdthd(maxthdmkl,nthd) nts=mkl_set_num_threads_local(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,2*nmatp,rwork,iwork,ifail,info) nts=mkl_set_num_threads_local(0) call freethd(nthd) if (info /= 0) then write(*,*) write(*,'("Error(eveqnfvz): diagonalisation failed")') write(*,'(" ZHEGVX returned INFO = ",I8)') info if (info > nmatp) then write(*,'(" The leading minor of the overlap matrix of order ",I8)') & info-nmatp write(*,'(" is not positive definite")') write(*,'(" Order of overlap matrix : ",I8)') nmatp end if write(*,*) stop end if evalfv(1:nstfv)=w(1:nstfv) call timesec(ts1) !$OMP ATOMIC timefv=timefv+ts1-ts0 end subroutine elk-9.6.8/src/PaxHeaders/energynn.f900000644000000000000000000000013214626155520014331 xustar0030 mtime=1717099344.109987058 30 atime=1717099342.004975717 30 ctime=1717099344.109987058 elk-9.6.8/src/energynn.f900000644002504400250440000000227214626155520017056 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,nr,nri integer iro,i0,i1 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) iro=nri+1 i1=lmmaxi*(nri-1)+1 zvclmt(1:npmt(is),ias)=0.d0 zvclmt(1:i1:lmmaxi,ias)=vcln(1:nri,is) i0=i1+lmmaxi i1=lmmaxo*(nr-iro)+i0 zvclmt(i0:i1:lmmaxo,ias)=vcln(iro:nr,is) 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,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) end subroutine elk-9.6.8/src/PaxHeaders/gaunt.f900000644000000000000000000000013214626155520013622 xustar0030 mtime=1717099344.111987069 30 atime=1717099342.006975727 30 ctime=1717099344.111987069 elk-9.6.8/src/gaunt.f900000644002504400250440000000407314626155520016350 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), external :: wigner3j,factn,factr if ((l1 < 0).or.(l2 < 0).or.(l3 < 0).or.(abs(m1) > l1).or.(abs(m2) > l2) & .or.(abs(m3) > 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 > 50).or.(l2 > 50).or.(l3 > 50)) then write(*,*) write(*,'("Error(gaunt): angular momenta out of range : ",3I8)') l1,l2,l3 write(*,*) stop end if if (m1-m2-m3 /= 0) then gaunt=0.d0 return end if j1=l2-l1+l3 j2=l1-l2+l3 j3=l1+l2-l3 if ((j1 < 0).or.(j2 < 0).or.(j3 < 0)) then gaunt=0.d0 return end if j=l1+l2+l3 if (mod(j,2) /= 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)*factn(j2)*factn(j3)) t1=t1*factr(jh,jh-l1)/(factn(jh-l2)*factn(jh-l3)) gaunt=t1*c1*wigner3j(l1,l2,l3,-m1,m2,m3) if (mod(m1+jh,2) /= 0) gaunt=-gaunt end function !EOC elk-9.6.8/src/PaxHeaders/potxcmt.f900000644000000000000000000000013214626155520014202 xustar0030 mtime=1717099344.114987085 30 atime=1717099342.008975738 30 ctime=1717099344.114987085 elk-9.6.8/src/potxcmt.f900000644002504400250440000002611014626155520016724 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 :: dtdr(:),dtdru(:),dtdrd(:) 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 (any(xcgrad == [3,4,5])) 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 == 1) then allocate(grho(n),gup(n),gdn(n)) allocate(g2up(n),g2dn(n)) allocate(g3rho(n),g3up(n),g3dn(n)) else if (xcgrad == 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 (any(xcgrad == [3,4,5])) 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(dtdru(n),dtdrd(n)) allocate(wxup(n),wxdn(n),wcup(n),wcdn(n)) end if else allocate(vx(n),vc(n)) if (xcgrad == 1) then allocate(grho(n),g2rho(n),g3rho(n)) else if (xcgrad == 2) then allocate(g2rho(n),gvrho(n,3),grho2(n)) allocate(dxdgr2(n),dcdgr2(n)) else if (any(xcgrad == [3,4,5])) then allocate(g2rho(n),gvrho(n,3),grho2(n)) allocate(dxdgr2(n),dcdgr2(n)) allocate(dxdg2r(n),dcdg2r(n)) allocate(dtdr(n),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 (any(xcgrad == [3,4,5])) 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 if required if (tssxc) mag(:,1:ndmag)=mag(:,1:ndmag)*sxcscf if (ncmag) then ! non-collinear (use Kubler's trick) if (xcgrad == 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 <= 0) then call xcifc(xctype_,n,tempa=swidth,rhoup=rhoup,rhodn=rhodn,ex=ex,ec=ec, & vxup=vxup,vxdn=vxdn,vcup=vcup,vcdn=vcdn) else if (xcgrad == 1) then call ggamt_sp_1(is,n,rhoup,rhodn,grho,gup,gdn,g2up,g2dn,g3rho,g3up,g3dn) call xcifc(xctype_,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 == 2) then call ggamt_sp_2a(is,n,rhoup,rhodn,g2up,g2dn,gvup,gvdn,gup2,gdn2,gupdn) call xcifc(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) call ggamt_sp_2b(is,n,g2up,g2dn,gvup,gvdn,vxup,vxdn,vcup,vcdn,dxdgu2, & dxdgd2,dxdgud,dcdgu2,dcdgd2,dcdgud) else if (any(xcgrad == [3,4,5])) then call ggamt_sp_2a(is,n,rhoup,rhodn,g2up,g2dn,gvup,gvdn,gup2,gdn2,gupdn) ! enforce the von Weizsacker lower bound call k_vwlb(n,rhoup,gup2,tau(:,1)) call k_vwlb(n,rhodn,gdn2,tau(:,2)) call xcifc(xctype_,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) ! determine δτ(r')/δρ(r) using an approximate kinetic energy functional if (xcgrad /= 3) then call xcifc(ktype,n,rhoup=rhoup,rhodn=rhodn,g2up=g2up,g2dn=g2dn,gup2=gup2,& gdn2=gdn2,tauup=tau(:,1),taudn=tau(:,2),dtdru=dtdru,dtdrd=dtdrd, & dtdgu2=dxdgu2,dtdgd2=dxdgd2,dtdg2u=dxdg2u,dtdg2d=dxdg2d,wxup=dcdgu2, & wxdn=dcdgd2) call ggamt_4(is,n,gvup,vxup,vcup,wxup,wcup,dtdru,dxdgu2) call ggamt_4(is,n,gvdn,vxdn,vcdn,wxdn,wcdn,dtdrd,dxdgd2) if (kgrad == 3) then call ggamt_3(is,n,vxup,vcup,wxup,wcup,dxdg2u) call ggamt_3(is,n,vxdn,vcdn,wxdn,wcdn,dxdg2d) end if end if wxcmt_(1:n,ias)=0.5d0*(wxup(1:n)+wxdn(1:n)+wcup(1:n)+wcdn(1:n)) if (tsh) call rfshtip(nr,nri,wxcmt_(:,ias)) 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(1:n)=t1*vxup(1:n) vxdn(1:n)=t1*vxdn(1:n) 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) > 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 if required if (tssxc) bxc(:,1:ndmag)=bxc(:,1:ndmag)*sxcscf 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 <= 0) then call xcifc(xctype_,n,tempa=swidth,rho=rho,ex=ex,ec=ec,vx=vx,vc=vc) else if (xcgrad == 1) then call ggamt_1(tsh,is,n,rhomt_(:,ias),grho,g2rho,g3rho) call xcifc(xctype_,n,rho=rho,grho=grho,g2rho=g2rho,g3rho=g3rho,ex=ex,ec=ec,& vx=vx,vc=vc) else if (xcgrad == 2) then call ggamt_2a(tsh,is,n,rhomt_(:,ias),g2rho,gvrho,grho2) call xcifc(xctype_,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 (any(xcgrad == [3,4,5])) then call ggamt_2a(tsh,is,n,rhomt_(:,ias),g2rho,gvrho,grho2) ! enforce the von Weizsacker lower bound call k_vwlb(n,rho,grho2,tau) call xcifc(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) call ggamt_2b(is,n,g2rho,gvrho,vx,vc,dxdgr2,dcdgr2) ! determine δτ(r')/δρ(r) using an approximate kinetic energy functional if (xcgrad /= 3) then call xcifc(ktype,n,rho=rho,g2rho=g2rho,grho2=grho2,tau=tau,dtdr=dtdr, & dtdgr2=dxdgr2,dtdg2r=dxdg2r,wx=dcdgr2) call ggamt_4(is,n,gvrho,vx,vc,wx,wc,dtdr,dxdgr2) if (kgrad == 3) then call ggamt_3(is,n,vx,vc,wx,wc,dxdg2r) end if end if wxcmt_(1:n,ias)=wx(1:n)+wc(1:n) if (tsh) call rfshtip(nr,nri,wxcmt_(:,ias)) 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(1:n)=t1*vx(1:n)+vc(1:n) else vxc(1:n)=vx(1:n)+vc(1:n) 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 (any(xcgrad == [3,4,5])) deallocate(tau) if (spinpol) then deallocate(mag,bxc) deallocate(rhoup,rhodn,vxup,vxdn,vcup,vcdn) if (xcgrad == 1) then deallocate(grho,gup,gdn,g2up,g2dn,g3rho,g3up,g3dn) else if (xcgrad == 2) then deallocate(g2up,g2dn) deallocate(gvup,gvdn) deallocate(gup2,gdn2,gupdn) deallocate(dxdgu2,dxdgd2,dxdgud) deallocate(dcdgu2,dcdgd2,dcdgud) else if (any(xcgrad == [3,4,5])) then deallocate(g2up,g2dn) deallocate(gvup,gvdn) deallocate(gup2,gdn2,gupdn) deallocate(dxdgu2,dxdgd2,dxdgud) deallocate(dcdgu2,dcdgd2,dcdgud) deallocate(dxdg2u,dxdg2d) deallocate(dcdg2u,dcdg2d) deallocate(dtdru,dtdrd) deallocate(wxup,wxdn,wcup,wcdn) end if else deallocate(vx,vc) if (xcgrad == 1) then deallocate(grho,g2rho,g3rho) else if (xcgrad == 2) then deallocate(g2rho,gvrho,grho2) deallocate(dxdgr2,dcdgr2) else if (any(xcgrad == [3,4,5])) then deallocate(g2rho,gvrho,grho2) deallocate(dxdgr2,dcdgr2,dxdg2r,dcdg2r) deallocate(dtdr,wx,wc) end if end if end subroutine elk-9.6.8/src/PaxHeaders/sdelta_mp.f900000644000000000000000000000013214626155520014454 xustar0030 mtime=1717099344.116987096 30 atime=1717099342.011975754 30 ctime=1717099344.116987096 elk-9.6.8/src/sdelta_mp.f900000644002504400250440000000335614626155520017205 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) sm,t0,t1 ! external functions real(8), external :: factn,hermite if (n == 0) then sdelta_mp=exp(-x**2)/sqpi return end if if (n < 0) then write(*,*) write(*,'("Error(sdelta_mp): n < 0 : ",I8)') n write(*,*) stop end if if (n > 10) then write(*,*) write(*,'("Error(sdelta_mp): n out of range : ",I8)') n write(*,*) stop end if if (abs(x) > 12.d0) then sdelta_mp=0.d0 return end if t0=exp(-x**2)/sqpi sm=t0 do i=1,n t1=t0/(factn(i)*dble(4**i)) if (mod(i,2) /= 0) t1=-t1 sm=sm+t1*hermite(2*i,x) end do sdelta_mp=sm end function !EOC elk-9.6.8/src/PaxHeaders/stheta_mp.f900000644000000000000000000000013214626155520014470 xustar0030 mtime=1717099344.118987107 30 atime=1717099342.013975765 30 ctime=1717099344.118987107 elk-9.6.8/src/stheta_mp.f900000644002504400250440000000335214626155520017215 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) sm,t0,t1 ! external functions real(8), external :: factn,hermite,erf if (n == 0) then stheta_mp=0.5d0*(1.d0+erf(x)) return end if if (n < 0) then write(*,*) write(*,'("Error(stheta_mp): n < 0 : ",I8)') n write(*,*) stop end if if (n > 10) then write(*,*) write(*,'("Error(stheta_mp): n out of range : ",I8)') n write(*,*) stop end if if (x < -12.d0) then stheta_mp=0.d0 return end if if (x > 12.d0) then stheta_mp=1.d0 return end if t0=-exp(-x**2)/sqpi sm=0.5d0*(1.d0+erf(x)) do i=1,n t1=t0/(factn(i)*dble(4**i)) if (mod(i,2) /= 0) t1=-t1 sm=sm+t1*hermite(2*i-1,x) end do stheta_mp=sm end function !EOC elk-9.6.8/src/PaxHeaders/sdelta_fd.f900000644000000000000000000000013214626155520014431 xustar0030 mtime=1717099344.120987117 30 atime=1717099342.015975776 30 ctime=1717099344.120987117 elk-9.6.8/src/sdelta_fd.f900000644002504400250440000000135214626155520017154 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: elemental 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) > 50.d0) then sdelta_fd=0.d0 else t1=exp(-x) sdelta_fd=t1/((1.d0+t1)**2) end if end function !EOC elk-9.6.8/src/PaxHeaders/stheta_fd.f900000644000000000000000000000013214626155520014445 xustar0030 mtime=1717099344.122987128 30 atime=1717099342.018975792 30 ctime=1717099344.122987128 elk-9.6.8/src/stheta_fd.f900000644002504400250440000000134214626155520017167 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: elemental 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 > 50.d0) then stheta_fd=1.d0 else if (x < -50.d0) then stheta_fd=0.d0 else stheta_fd=1.d0/(1.d0+exp(-x)) end if end function !EOC elk-9.6.8/src/PaxHeaders/writelsj.f900000644000000000000000000000013214626155520014347 xustar0030 mtime=1717099344.124987139 30 atime=1717099342.020975803 30 ctime=1717099344.124987139 elk-9.6.8/src/writelsj.f900000644002504400250440000000773414626155520017104 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 ! 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 == 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',action='WRITE') 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',action='WRITE') 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 <= 0).or.(ik > nkpt)) then write(*,*) write(*,'("Error(writelsj): k-point out of range : ",I8)') ik write(*,*) stop end if if ((ist <= 0).or.(ist > 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) end subroutine elk-9.6.8/src/PaxHeaders/eveqnzh.f900000644000000000000000000000013014626155520014162 xustar0029 mtime=1717099344.12698715 30 atime=1717099342.022975814 29 ctime=1717099344.12698715 elk-9.6.8/src/eveqnzh.f900000644002504400250440000000210514626155520016704 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 eveqnzh(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 lrwork,lwork,info integer nthd,nts ! automatic arrays integer iwork(5*n+3) ! allocatable arrays real(8), allocatable :: rwork(:) complex(8), allocatable :: work(:) ! use the divide-and-conquer LAPACK routine zheevd lrwork=2*n**2+5*n+1 lwork=n**2+2*n allocate(rwork(lrwork),work(lwork)) ! enable MKL parallelism call holdthd(maxthdmkl,nthd) nts=mkl_set_num_threads_local(nthd) call zheevd('V','U',n,a,ld,w,work,lwork,rwork,lrwork,iwork,5*n+3,info) nts=mkl_set_num_threads_local(0) call freethd(nthd) if (info /= 0) then write(*,*) write(*,'("Error(eveqnzh): diagonalisation failed")') write(*,'(" ZHEEVD returned INFO = ",I8)') info write(*,*) stop end if deallocate(rwork,work) end subroutine elk-9.6.8/src/PaxHeaders/gensmatk.f900000644000000000000000000000013114626155520014314 xustar0030 mtime=1717099344.128987161 29 atime=1717099342.02597583 30 ctime=1717099344.128987161 elk-9.6.8/src/gensmatk.f900000644002504400250440000000203514626155520017037 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(evecsv,smat) use modmain implicit none ! arguments complex(8), intent(in) :: evecsv(nstsv,nstsv) complex(8), intent(out) :: smat(nstsv,nstsv,2,2) ! local variables integer ist,jst,n ! external functions complex(8), external :: zdotc n=nstfv+1 do jst=1,nstsv do ist=1,jst smat(ist,jst,1,1)=zdotc(nstfv,evecsv(1,ist),1,evecsv(1,jst),1) smat(ist,jst,2,1)=zdotc(nstfv,evecsv(n,ist),1,evecsv(1,jst),1) smat(ist,jst,1,2)=zdotc(nstfv,evecsv(1,ist),1,evecsv(n,jst),1) smat(ist,jst,2,2)=zdotc(nstfv,evecsv(n,ist),1,evecsv(n,jst),1) end do end do ! set the lower triangular parts do jst=1,nstsv do ist=1,jst-1 smat(jst,ist,1,1)=conjg(smat(ist,jst,1,1)) smat(jst,ist,2,1)=conjg(smat(ist,jst,1,2)) smat(jst,ist,1,2)=conjg(smat(ist,jst,2,1)) smat(jst,ist,2,2)=conjg(smat(ist,jst,2,2)) end do end do end subroutine elk-9.6.8/src/PaxHeaders/gensfacgp.f900000644000000000000000000000013114626155520014440 xustar0030 mtime=1717099344.130987171 29 atime=1717099342.02797584 30 ctime=1717099344.130987171 elk-9.6.8/src/gensfacgp.f900000644002504400250440000000247014626155520017166 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: pure subroutine gensfacgp(ngp,vgpc,ld,sfacgp) ! !USES: use modmain ! !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,igp real(8) v1,v2,v3,t1 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 end subroutine !EOC elk-9.6.8/src/PaxHeaders/rhomag.f900000644000000000000000000000013214626155520013761 xustar0030 mtime=1717099344.132987182 30 atime=1717099342.029975851 30 ctime=1717099344.132987182 elk-9.6.8/src/rhomag.f900000644002504400250440000000141214626155520016501 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 nthd ! calculate the valence density and magnetisation call rhomagv ! 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) ! synchronise MPI processes call mpi_barrier(mpicom,ierror) end subroutine elk-9.6.8/src/PaxHeaders/wsplintp.f900000644000000000000000000000013214626155520014364 xustar0030 mtime=1717099344.134987193 30 atime=1717099342.031975862 30 ctime=1717099344.134987193 elk-9.6.8/src/wsplintp.f900000644002504400250440000000306414626155520017111 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,wp) implicit none ! arguments integer, intent(in) :: n real(8), intent(in) :: x(n) real(8), intent(out) :: wp(4,n) ! local variables integer i real(8) f(4),t1,t2 ! external functions real(8), external :: polynm if (n < 4) then write(*,*) write(*,'("Error(wsplintp): n < 4 : ",I8)') n write(*,*) stop end if wp(:,1)=0.d0 f(1)=1.d0 f(2:)=0.d0 wp(1,2)=polynm(-1,4,x,f,x(2)) f(1)=0.d0 f(2)=1.d0 wp(2,2)=polynm(-1,4,x,f,x(2)) f(2)=0.d0 f(3)=1.d0 wp(3,2)=polynm(-1,4,x,f,x(2)) f(3)=0.d0 f(4)=1.d0 wp(4,2)=polynm(-1,4,x,f,x(2)) do i=3,n-1 f(1)=1.d0 f(2:)=0.d0 t1=polynm(-1,4,x(i-2),f,x(i-1)) t2=polynm(-1,4,x(i-2),f,x(i)) wp(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)) wp(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)) wp(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)) wp(4,i)=t2-t1 end do f(1)=1.d0 f(2:)=0.d0 t1=polynm(-1,4,x(n-3),f,x(n-1)) t2=polynm(-1,4,x(n-3),f,x(n)) wp(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)) wp(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)) wp(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)) wp(4,n)=t2-t1 end subroutine elk-9.6.8/src/PaxHeaders/checkmt.f900000644000000000000000000000013214626155520014122 xustar0030 mtime=1717099344.136987204 30 atime=1717099342.033975873 30 ctime=1717099344.136987204 elk-9.6.8/src/checkmt.f900000644002504400250440000000355414626155520016653 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 real(8) rmtp(nspecies) if (nspecies <= 0) return ! store previous muffin-tin radii rmtp(1:nspecies)=rmt(1:nspecies) ! restore original muffin-tin radii read from species files if required if (trmt0) rmt(1:nspecies)=rmt0(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 < rmtdelta-1.d-4) then t1=rmt(is)+rmt(js) t2=(t1+dmin-rmtdelta)/t1 rmt(is)=rmt(is)*t2 if (is /= js) rmt(js)=rmt(js)*t2 goto 10 end if do is=1,nspecies if (rmt(is) < 0.1d0) 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 ! report changed muffin-tin radii t1=abs(rmt(is)-rmtp(is)) if (t1 > 1.d-4) then if (mp_mpi) then write(*,'("Info(checkmt): changed muffin-tin radius of species ",I3,& &" (",A,") from ",F8.4," to ",F8.4)') is,trim(spsymb(is)),rmtp(is), & rmt(is) end if end if end do ! write to VARIABLES.OUT if (wrtvars) call writevars('rmt',nv=nspecies,rva=rmt) end subroutine !EOC elk-9.6.8/src/PaxHeaders/reciplat.f900000644000000000000000000000013214626155520014307 xustar0030 mtime=1717099344.138987215 30 atime=1717099342.036975889 30 ctime=1717099344.138987215 elk-9.6.8/src/reciplat.f900000644002504400250440000000333614626155520017036 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),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 < 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 end subroutine !EOC elk-9.6.8/src/PaxHeaders/gradrf.f900000644000000000000000000000013014626155520013747 xustar0030 mtime=1717099344.140987225 28 atime=1717099342.0389759 30 ctime=1717099344.140987225 elk-9.6.8/src/gradrf.f900000644002504400250440000000240314626155520016472 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+1,nthd) !$OMP PARALLEL DEFAULT(SHARED) & !$OMP PRIVATE(zfft1,zfft2) & !$OMP PRIVATE(is,i,ifg,ig,z1) & !$OMP NUM_THREADS(nthd) !$OMP DO do ias=1,natmtot is=idxis(ias) call gradrfmt(nrmt(is),nrmti(is),rlmt(:,-1,is),wcrmt(:,:,is),rfmt(:,ias),ld, & grfmt(1,ias,1)) end do !$OMP END DO NOWAIT ! interstitial gradient !$OMP SINGLE allocate(zfft1(nfgrz),zfft2(nfgrz)) call rzfftifc(3,ngridg,-1,rfir,zfft1) do i=1,3 do ifg=1,nfgrz ig=igrzf(ifg) z1=zfft1(ifg) zfft2(ifg)=vgc(i,ig)*cmplx(-aimag(z1),dble(z1),8) end do call rzfftifc(3,ngridg,1,grfir(:,i),zfft2) end do deallocate(zfft1,zfft2) !$OMP END SINGLE !$OMP END PARALLEL call freethd(nthd) end subroutine elk-9.6.8/src/PaxHeaders/gencfrm.f900000644000000000000000000000013214626155520014125 xustar0030 mtime=1717099344.142987236 30 atime=1717099342.041975916 30 ctime=1717099344.142987236 elk-9.6.8/src/gencfrm.f900000644002504400250440000000265114626155520016653 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 gencfrm(wfmt11,wfmt12,wfir11,wfir12,wfmt21,wfmt22,wfir21,wfir22, & crhomt,crhoir,cmagmt,cmagir) use modmain use modomp implicit none ! arguments complex(4), intent(in) :: wfmt11(npcmtmax,natmtot),wfmt12(npcmtmax,natmtot) complex(4), intent(in) :: wfir11(ngtot),wfir12(ngtot) complex(4), intent(in) :: wfmt21(npcmtmax,natmtot),wfmt22(npcmtmax,natmtot) complex(4), intent(in) :: wfir21(ngtot),wfir22(ngtot) complex(4), intent(out) :: crhomt(npcmtmax,natmtot),crhoir(ngtot) complex(4), intent(out) :: cmagmt(npcmtmax,natmtot,ndmag),cmagir(ngtot,ndmag) ! local variables integer ld,is,ias,nthd ld=npcmtmax*natmtot call holdthd(natmtot+1,nthd) !$OMP PARALLEL DEFAULT(SHARED) & !$OMP PRIVATE(ias,is) & !$OMP NUM_THREADS(nthd) !-------------------------! ! muffin-tin part ! !-------------------------! !$OMP DO do ias=1,natmtot is=idxis(ias) call gencrm(npcmt(is),wfmt11(:,ias),wfmt12(:,ias),wfmt21(:,ias), & wfmt22(:,ias),crhomt(:,ias),ld,cmagmt(:,ias,1)) end do !$OMP END DO NOWAIT !---------------------------! ! interstitial part ! !---------------------------! !$OMP SINGLE call gencrm(ngtot,wfir11,wfir12,wfir21,wfir22,crhoir,ngtot,cmagir) !$OMP END SINGLE !$OMP END PARALLEL call freethd(nthd) end subroutine elk-9.6.8/src/PaxHeaders/mixadapt.f900000644000000000000000000000013214626155520014313 xustar0030 mtime=1717099344.144987247 30 atime=1717099342.043975927 30 ctime=1717099344.144987247 elk-9.6.8/src/mixadapt.f900000644002504400250440000000504114626155520017035 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: pure 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 <= 0) return ! initialise mixer if (iscl <= 0) then mu(:)=nu(:) 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) >= 0.d0) then beta(i)=beta(i)+beta0 if (beta(i) > 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)) end subroutine !EOC elk-9.6.8/src/PaxHeaders/zftrf.f900000644000000000000000000000013214626155520013637 xustar0030 mtime=1717099344.146987258 30 atime=1717099342.045975937 30 ctime=1717099344.146987258 elk-9.6.8/src/zftrf.f900000644002504400250440000001254014626155520016363 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) ! Optimised, May 2024 (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,ip,ig,ifg integer nrc,nrci,irco,irc integer l,lm,n,i real(8) p,t0,t1 complex(8) zsm,z1,z2 ! automatic arrays real(8) jl(0:lmaxo,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) >= intgv(1,1)).and.(ivp(1,ip) <= intgv(2,1)).and. & (ivp(2,ip) >= intgv(1,2)).and.(ivp(2,ip) <= intgv(2,2)).and. & (ivp(3,ip) >= intgv(1,3)).and.(ivp(3,ip) <= 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 4π iˡ Yₗₘ(G)* call genylmv(.true.,lmaxo,vgc(:,ig),ylm) ylm(:)=conjg(ylm(:)) do is=1,nspecies nrc=nrcmt(is) nrci=nrcmti(is) irco=nrci+1 ! generate spherical Bessel functions do irc=1,nrci t1=gc(ig)*rcmt(irc,is) call sbessel(lmaxi,t1,jl(:,irc)) end do do irc=irco,nrc t1=gc(ig)*rcmt(irc,is) call sbessel(lmaxo,t1,jl(:,irc)) end do do ia=1,natoms(is) ias=idxas(ia,is) ! structure factor t1=vgc(1,ig)*atposc(1,ia,is) & +vgc(2,ig)*atposc(2,ia,is) & +vgc(3,ig)*atposc(3,ia,is) z1=zfft(ifg)*cmplx(cos(t1),sin(t1),8) i=1 do irc=1,nrci do l=0,lmaxi n=2*l lm=l**2+1 z2=z1*jl(l,irc) zfmt(i:i+n,ias)=zfmt(i:i+n,ias)-z2*ylm(lm:lm+n) i=i+n+1 end do end do do irc=irco,nrc do l=0,lmaxo n=2*l lm=l**2+1 z2=z1*jl(l,irc) zfmt(i:i+n,ias)=zfmt(i:i+n,ias)-z2*ylm(lm:lm+n) i=i+n+1 end do end do end do end do end do t0=1.d0/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 4π (-i)ˡ Yₗₘ(P) call genylmv(.true.,lmaxo,vpc(:,ip),ylm) do is=1,nspecies nrc=nrcmt(is) nrci=nrcmti(is) irco=nrci+1 ! generate spherical Bessel functions do irc=1,nrci t1=p*rcmt(irc,is) call sbessel(lmaxi,t1,jl(:,irc)) end do do irc=irco,nrc t1=p*rcmt(irc,is) call sbessel(lmaxo,t1,jl(:,irc)) end do do ia=1,natoms(is) ias=idxas(ia,is) zsm=0.d0 i=1 do irc=1,nrci z1=jl(0,irc)*zfmt(i,ias)*ylm(1) i=i+1 do l=1,lmaxi n=2*l lm=l**2+1 z1=z1+jl(l,irc)*sum(zfmt(i:i+n,ias)*ylm(lm:lm+n)) i=i+n+1 end do zsm=zsm+wrcmt(irc,is)*z1 end do do irc=irco,nrc z1=jl(0,irc)*zfmt(i,ias)*ylm(1) i=i+1 do l=1,lmaxo n=2*l lm=l**2+1 z1=z1+jl(l,irc)*sum(zfmt(i:i+n,ias)*ylm(lm:lm+n)) i=i+n+1 end do zsm=zsm+wrcmt(irc,is)*z1 end do ! conjugate structure factor t1=vpc(1,ip)*atposc(1,ia,is) & +vpc(2,ip)*atposc(2,ia,is) & +vpc(3,ip)*atposc(3,ia,is) z1=t0*cmplx(cos(t1),-sin(t1),8) zfp(ip)=zfp(ip)+z1*zsm end do end do end do deallocate(zfft,zfmt) end subroutine ! EOC elk-9.6.8/src/PaxHeaders/sbessel.f900000644000000000000000000000013214626155520014144 xustar0030 mtime=1717099344.148987268 30 atime=1717099342.047975948 30 ctime=1717099344.148987268 elk-9.6.8/src/sbessel.f900000644002504400250440000000513114626155520016666 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 ! real argument $x$ and $l=0\ldots l_{\rm max}$. The recurrence relation ! $$ j_{l+1}(x)=\frac{2l+1}{x}j_l(x)-j_{l-1}(x) $$ ! is used downwards for $x 50)) then write(*,*) write(*,'("Error(sbessel): lmax out of range : ",I8)') lmax write(*,*) stop end if if ((x < 0.d0).or.(x > 1.d5)) then write(*,*) write(*,'("Error(sbessel): x out of range : ",G18.10)') x write(*,*) stop end if ! treat x << 1 if (x < 1.d-8) then jl(0)=1.d0 t1=1.d0 do l=1,lmax t1=t1*x/dble(2*l+1) jl(l)=t1 end do return end if if (lmax == 0) then jl(0)=sin(x)/x return end if xi=1.d0/x if (x < lmax) then ! for x < lmax recurse down j1=1.d0 j0=0.d0 ! starting value for l above lmax lst=lmax+lmax/8+14 do l=lst,lmax+1,-1 t1=(2*l+1)*j1*xi-j0 j0=j1 j1=t1 ! check for overflow if (abs(j1) > rsc) then ! rescale t1=t1*rsci j0=j0*rsci j1=j1*rsci end if end do do l=lmax,0,-1 t1=(2*l+1)*j1*xi-j0 j0=j1 j1=t1 ! check for overflow if (abs(j1) > rsc) then ! rescale t1=t1*rsci j0=j0*rsci j1=j1*rsci jl(l+1:lmax)=jl(l+1:lmax)*rsci end if jl(l)=j0 end do ! rescaling constant t1=sin(x)/(x*j0) jl(:)=t1*jl(:) else ! for x >= lmax recurse up jl(0)=sin(x)*xi jl(1)=(jl(0)-cos(x))*xi if (lmax == 1) return j0=jl(0) j1=jl(1) do l=2,lmax t1=(2*l-1)*j1*xi-j0 j0=j1 j1=t1 jl(l)=j1 end do end if end subroutine !EOC elk-9.6.8/src/PaxHeaders/gengclgq.f900000644000000000000000000000013214626155520014273 xustar0030 mtime=1717099344.150987279 30 atime=1717099342.050975964 30 ctime=1717099344.150987279 elk-9.6.8/src/gengclgq.f900000644002504400250440000000166514626155520017025 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. pure 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) < epslat) then gclgq(ig)=gclq(iq) else if (t2 > epslat) then gclgq(ig)=fourpi/t2**2 else gclgq(ig)=0.d0 end if end do else ! no regularisation do ig=1,ngq t1=gqc(ig) if (t1 > epslat) then gclgq(ig)=fourpi/t1**2 else gclgq(ig)=0.d0 end if end do end if end subroutine elk-9.6.8/src/PaxHeaders/genstress.f900000644000000000000000000000013014626155520014517 xustar0029 mtime=1717099344.15298729 30 atime=1717099342.052975975 29 ctime=1717099344.15298729 elk-9.6.8/src/genstress.f900000644002504400250440000000253614626155520017251 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 implicit none ! local variables integer i real(8) et0,t1 ! store original parameters avec0(:,:)=avec(:,:) tforce0=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 in the potential from 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(:,:)=avec0(:,:) ! 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 > stressmax) stressmax=t1 end do ! restore original parameters avec(:,:)=avec0(:,:) tforce=tforce0 end subroutine elk-9.6.8/src/PaxHeaders/force.f900000644000000000000000000000013214626155520013602 xustar0030 mtime=1717099344.154987301 30 atime=1717099342.054975986 30 ctime=1717099344.154987301 elk-9.6.8/src/force.f900000644002504400250440000002026714626155520016333 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 modtddft 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 inaccurate 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 occupation numbers. ! ! !REVISION HISTORY: ! Created January 2004 (JKD) ! Fixed problem with second-variational forces, May 2008 (JKD) !EOP !BOC implicit none ! local variables integer ik,idm,is,ias integer nr,nri,i,j,nthd real(8) fav(3),ca,t1,t2 real(8) ts0,ts1 ! automatic arrays real(8) forceibs(3,natmtot),grfmt(npmtmax,3) ! allocatable arrays real(8), allocatable :: rfmt(:,:) ! external functions real(8), external :: rfmtinp,rfmtint call timesec(ts0) ! coupling constant of the external A-field (-1/c) ca=-1.d0/solsc !---------------------------------! ! Hellmann-Feynman forces ! !---------------------------------! do ias=1,natmtot is=idxis(ias) nr=nrmt(is) nri=nrmti(is) call gradrfmt(nr,nri,rlmt(:,-1,is),wcrmt(:,:,is),vclmt(:,ias),npmtmax,grfmt) ! force from Coulomb potential forcehf(:,ias)=-spzn(is)*grfmt(1,:)*y00 ! force on nuclei from time-dependent E-field if (tafieldt) then do i=1,3 t1=(chgsmt(ias,i)+spzn(is))*efieldt(i) forcehf(i,ias)=forcehf(i,ias)+t1 end do end if 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 REDUCTION(+:forceibs) & !$OMP NUM_THREADS(nthd) do ik=1,nkpt ! distribute among MPI processes if (mod(ik-1,np_mpi) /= lp_mpi) cycle call forcek(ik,forceibs) end do !$OMP END PARALLEL DO call freethd(nthd) ! add IBS forces from each process and redistribute if (np_mpi > 1) then call mpi_allreduce(mpi_in_place,forceibs,3*natmtot,mpi_double_precision, & mpi_sum,mpicom,ierror) end if if (tafieldt) then t2=afieldt(1,itimes)**2+afieldt(2,itimes)**2+afieldt(3,itimes)**2 t2=t2*ca**2 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),wcrmt(:,:,is),rhomt(:,ias),npmtmax,grfmt) do i=1,3 t1=rfmtinp(nr,nri,wrmt(:,is),vsmt(:,ias),grfmt(:,i)) ! remove contribution from gauge correction to the current density if (tafieldt) then t1=t1-t2*rfmtint(nr,nri,wrmt(:,is),grfmt(:,i)) end if forceibs(i,ias)=forceibs(i,ias)+t1 end do end do ! integral of Kohn-Sham magnetic field with magnetisation gradient if (spinpol) then allocate(rfmt(npmtmax,natmtot)) 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) do ias=1,natmtot is=idxis(ias) nr=nrmt(is) nri=nrmti(is) call gradrfmt(nr,nri,rlmt(:,-1,is),wcrmt(:,:,is),magmt(:,ias,idm), & npmtmax,grfmt) do i=1,3 t1=rfmtinp(nr,nri,wrmt(:,is),rfmt(:,ias),grfmt(:,i)) forceibs(i,ias)=forceibs(i,ias)+t1 end do end do end do deallocate(rfmt) end if ! time-dependent vector potential times integral of the gradient of the current ! density over the muffin-tin if (tafieldt.and.tjr) then do j=1,3 t1=ca*afieldt(j,itimes) do ias=1,natmtot is=idxis(ias) nr=nrmt(is) nri=nrmti(is) call gradrfmt(nr,nri,rlmt(:,-1,is),wcrmt(:,:,is),jrmt(:,ias,j),npmtmax, & grfmt) do i=1,3 t2=rfmtint(nr,nri,wrmt(:,is),grfmt(:,i)) forceibs(i,ias)=forceibs(i,ias)+t1*t2 end do end do end do end if ! symmetrise IBS forces call symveca(forceibs) ! total force on each atom do ias=1,natmtot forcetot(1:3,ias)=forcehf(1:3,ias)+forceibs(1:3,ias) end do ! symmetrise total forces call symveca(forcetot) ! remove the average force, if required, to prevent translation of atomic basis if (tfav0) then fav(:)=0.d0 do ias=1,natmtot fav(:)=fav(:)+forcetot(:,ias) end do fav(:)=fav(:)/dble(natmtot) do ias=1,natmtot forcetot(:,ias)=forcetot(:,ias)-fav(:) end do end if ! zero force on atoms with negative mass do ias=1,natmtot is=idxis(ias) if (spmass(is) <= 0.d0) forcetot(1:3,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 > forcemax) forcemax=t1 end do ! restrict maximum force magnitude if required if (maxforce >= 0.d0) then if (forcemax > maxforce) then t1=maxforce/forcemax forcetot(1:3,1:natmtot)=t1*forcetot(1:3,1:natmtot) end if end if 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) end subroutine !EOC elk-9.6.8/src/PaxHeaders/genvbmatk.f900000644000000000000000000000013214626155520014462 xustar0030 mtime=1717099344.156987311 30 atime=1717099342.056975997 30 ctime=1717099344.156987311 elk-9.6.8/src/genvbmatk.f900000644002504400250440000001371014626155520017206 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 moddftu use modomp implicit none ! arguments ! the potential and field are multiplied by the radial integration weights in ! the muffin-tin and by the characteristic function in the interstitial region 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(4), intent(in) :: wfmt(npcmtmax,natmtot,nspinor,nstsv) integer, intent(in) :: ld complex(4), 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,nrco integer npc,npc2,ipco integer n,igp,nthd ! automatic arrays complex(4) wfmt1(npcmtmax,2),wfmt2(npcmtmax,2) complex(4) wfir1(ngtot,nspinor),wfir2(ngtot,nspinor),c(ngkmax) ! external functions real(4), external :: sdot complex(4), external :: cdotc ! zero the upper triangular matrix elements do jst=1,nstsv vbmat(1:jst,jst)=0.d0 end do call holdthd(nstsv,nthd) !$OMP PARALLEL DEFAULT(SHARED) & !$OMP PRIVATE(wfmt1,wfmt2,wfir1,wfir2,c) & !$OMP PRIVATE(ias,is,nrc,nrci,nrco) & !$OMP PRIVATE(npc,npc2,ipco,ist,jst) & !$OMP PRIVATE(ispn,jspn,igp,n) & !$OMP NUM_THREADS(nthd) !-------------------------! ! muffin-tin part ! !-------------------------! do ias=1,natmtot is=idxis(ias) nrc=nrcmt(is) nrci=nrcmti(is) nrco=nrc-nrci npc=npcmt(is) npc2=npc*2 ipco=npcmti(is)+1 !$OMP DO do jst=1,nstsv ! 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), & wfmt(:,ias,1,jst),wfmt(:,ias,2,jst),wfmt1,wfmt1(:,2)) else ! collinear case call vbmk2(npc,vmt(:,ias),bmt(:,ias,1),wfmt(:,ias,1,jst), & wfmt(:,ias,2,jst),wfmt1,wfmt1(:,2)) end if ! apply muffin-tin DFT+U potential matrix if required if (dftu /= 0) then if (any(tvmmt(0:lmaxdm,ias))) then ! multiply wavefunction by radial integration weights wfmt2(1:npc,1)=wfmt(1:npc,ias,1,jst) wfmt2(1:npc,2)=wfmt(1:npc,ias,2,jst) call cfcmtwr(nrc,nrci,wrcmt(:,is),wfmt2(1,1)) call cfcmtwr(nrc,nrci,wrcmt(:,is),wfmt2(1,2)) call cgemm('N','N',lmmaxi,nrci,lmmaxi,cone,vmatmti(1,1,1,1,ias), & lmmaxi,wfmt2(1,1),lmmaxi,cone,wfmt1(1,1),lmmaxi) call cgemm('N','N',lmmaxo,nrco,lmmaxo,cone,vmatmto(1,1,1,1,ias), & lmmaxo,wfmt2(ipco,1),lmmaxo,cone,wfmt1(ipco,1),lmmaxo) call cgemm('N','N',lmmaxi,nrci,lmmaxi,cone,vmatmti(1,1,2,2,ias), & lmmaxi,wfmt2(1,2),lmmaxi,cone,wfmt1(1,2),lmmaxi) call cgemm('N','N',lmmaxo,nrco,lmmaxo,cone,vmatmto(1,1,2,2,ias), & lmmaxo,wfmt2(ipco,2),lmmaxo,cone,wfmt1(ipco,2),lmmaxo) if (ncmag) then call cgemm('N','N',lmmaxi,nrci,lmmaxi,cone,vmatmti(1,1,1,2,ias), & lmmaxi,wfmt2(1,2),lmmaxi,cone,wfmt1(1,1),lmmaxi) call cgemm('N','N',lmmaxo,nrco,lmmaxo,cone,vmatmto(1,1,1,2,ias), & lmmaxo,wfmt2(ipco,2),lmmaxo,cone,wfmt1(ipco,1),lmmaxo) call cgemm('N','N',lmmaxi,nrci,lmmaxi,cone,vmatmti(1,1,2,1,ias), & lmmaxi,wfmt2(1,1),lmmaxi,cone,wfmt1(1,2),lmmaxi) call cgemm('N','N',lmmaxo,nrco,lmmaxo,cone,vmatmto(1,1,2,1,ias), & lmmaxo,wfmt2(ipco,1),lmmaxo,cone,wfmt1(ipco,2),lmmaxo) end if end if end if ! compute the inner products do ist=1,jst-1 vbmat(ist,jst)=vbmat(ist,jst) & +cdotc(npc,wfmt(1,ias,1,ist),1,wfmt1(1,1),1) & +cdotc(npc,wfmt(1,ias,2,ist),1,wfmt1(1,2),1) end do vbmat(jst,jst)=vbmat(jst,jst) & +sdot(npc2,wfmt(1,ias,1,jst),1,wfmt1(1,1),1) & +sdot(npc2,wfmt(1,ias,2,jst),1,wfmt1(1,2),1) end do !$OMP END DO end do !---------------------------! ! interstitial part ! !---------------------------! !$OMP DO do jst=1,nstsv ! Fourier transform wavefunction to real-space do ispn=1,nspinor jspn=jspnfv(ispn) wfir1(:,ispn)=0.e0 do igp=1,ngp(jspn) wfir1(igfft(igpig(igp,jspn)),ispn)=wfgp(igp,ispn,jst) end do call cfftifc(3,ngridg,1,wfir1(:,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),wfir1,wfir1(:,2),wfir2, & wfir2(:,2)) else ! collinear case call vbmk2(ngtot,vir,bir,wfir1,wfir1(:,2),wfir2,wfir2(:,2)) end if do ispn=1,nspinor jspn=jspnfv(ispn) n=ngp(jspn) ! Fourier transform to G+p-space call cfftifc(3,ngridg,-1,wfir2(:,ispn)) do igp=1,n c(igp)=wfir2(igfft(igpig(igp,jspn)),ispn) end do do ist=1,jst-1 vbmat(ist,jst)=vbmat(ist,jst)+cdotc(n,wfgp(1,ispn,ist),1,c,1) end do vbmat(jst,jst)=vbmat(jst,jst)+sdot(2*n,wfgp(1,ispn,jst),1,c,1) end do end do !$OMP END DO !$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,wf11,wf12,wf21,wf22) implicit none ! arguments integer, intent(in) :: n real(8), intent(in) :: v(n),b1(n),b2(n),b3(n) complex(4), intent(in) :: wf11(n),wf12(n) complex(4), intent(out) :: wf21(n),wf22(n) ! local variables integer i !$OMP SIMD SIMDLEN(8) do i=1,n wf21(i)=(v(i)+b3(i))*wf11(i)+cmplx(b1(i),-b2(i),8)*wf12(i) wf22(i)=(v(i)-b3(i))*wf12(i)+cmplx(b1(i),b2(i),8)*wf11(i) end do end subroutine pure subroutine vbmk2(n,v,b,wf11,wf12,wf21,wf22) implicit none ! arguments integer, intent(in) :: n real(8), intent(in) :: v(n),b(n) complex(4), intent(in) :: wf11(n),wf12(n) complex(4), intent(out) :: wf21(n),wf22(n) ! local variables integer i !$OMP SIMD SIMDLEN(8) do i=1,n wf21(i)=(v(i)+b(i))*wf11(i) wf22(i)=(v(i)-b(i))*wf12(i) end do end subroutine end subroutine elk-9.6.8/src/PaxHeaders/forcek.f900000644000000000000000000000013214626155520013755 xustar0030 mtime=1717099344.158987322 30 atime=1717099342.059976013 30 ctime=1717099344.158987322 elk-9.6.8/src/forcek.f900000644002504400250440000001210214626155520016473 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,forceibs) ! !USES: use modmain use modomp ! !INPUT/OUTPUT PARAMETERS: ! ik : reduced k-point number (in,integer) ! forceibs : IBS force (inout,real(3,natmtot)) ! !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 real(8), intent(inout) :: forceibs(3,natmtot) ! local variables integer ispn0,ispn1,ispn,jspn integer n,nm,is,ias,ist,jst integer j1,j2,j3,ig,i,j,l,nthd real(8) v1,v2,v3,sm,t1 complex(8) z1,z2 ! automatic arrays real(8) evalfv(nstfv,nspnfv) complex(8) vh(nmatmax),vo(nmatmax) complex(8) ffv(nstfv,nstfv),y(nstfv) ! allocatable arrays integer, allocatable :: ijg(:,:) real(8), allocatable :: dp(:,:) complex(8), allocatable :: apwalm(:,:,:,:),evecfv(:,:,:),evecsv(:,:) complex(8), allocatable :: h(:,:),o(:,:),dlh(:,:),dlo(:,:) ! external functions complex(8), external :: zdotc ! allocate local arrays allocate(ijg(nmatmax,nmatmax),dp(nmatmax,nmatmax)) allocate(apwalm(ngkmax,apwordmax,lmmaxapw,natmtot)) allocate(evecfv(nmatmax,nstfv,nspnfv)) allocate(h(nmatmax,nmatmax),o(nmatmax,nmatmax)) allocate(dlh(nmatmax,nmatmax),dlo(nmatmax,nmatmax)) ! 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 ig=igkig(j,jspn,ik) j1=ivg(1,ig); j2=ivg(2,ig); j3=ivg(3,ig) v1=0.5d0*vgkc(1,j,jspn,ik) v2=0.5d0*vgkc(2,j,jspn,ik) v3=0.5d0*vgkc(3,j,jspn,ik) do i=1,j ig=igkig(i,jspn,ik) ijg(i,j)=ivgig(ivg(1,ig)-j1,ivg(2,ig)-j2,ivg(3,ig)-j3) dp(i,j)=vgkc(1,i,jspn,ik)*v1+vgkc(2,i,jspn,ik)*v2+vgkc(3,i,jspn,ik)*v3 end do end do ! find the matching coefficients call match(n,vgkc(:,:,jspn,ik),gkc(:,jspn,ik),sfacgk(:,:,jspn,ik),apwalm) ! zero the local-orbital-local-orbital contribution do j=n+1,nm dlh(n+1:j,j)=0.d0 dlo(n+1:j,j)=0.d0 end do ! loop over species and atoms do ias=1,natmtot is=idxis(ias) ! Hamiltonian and overlap matrices do j=1,nm h(1:j,j)=0.d0 end do call hmlaa(.false.,is,ias,n,apwalm(:,:,:,ias),nmatmax,h) call hmlalo(is,ias,n,apwalm(:,:,:,ias),nmatmax,h) do j=1,nm o(1:j,j)=0.d0 end do call olpaa(.false.,is,n,apwalm(:,:,:,ias),nmatmax,o) call olpalo(is,ias,n,apwalm(:,:,:,ias),nmatmax,o) ! loop over Cartesian directions do l=1,3 ! APW-APW contribution do j=1,n do i=1,j ig=ijg(i,j) t1=vgc(l,ig) z1=-ffacg(ig,is)*conjg(sfacg(ig,ias)) z2=t1*(dp(i,j)*z1+h(i,j)) dlh(i,j)=cmplx(-aimag(z2),dble(z2),8) z2=t1*(z1+o(i,j)) dlo(i,j)=cmplx(-aimag(z2),dble(z2),8) end do end do ! APW-local-orbital contribution do j=n+1,nm do i=1,n t1=vgkc(l,i,jspn,ik) z1=t1*h(i,j) dlh(i,j)=cmplx(-aimag(z1),dble(z1),8) z1=t1*o(i,j) dlo(i,j)=cmplx(-aimag(z1),dble(z1),8) end do end do ! compute the force matrix elements in the first-variational basis call holdthd(nstfv,nthd) !$OMP PARALLEL DO DEFAULT(SHARED) & !$OMP PRIVATE(vh,vo,t1,ist,z1,z2) & !$OMP NUM_THREADS(nthd) do jst=1,nstfv call zhemv('U',nm,zone,dlh,nmatmax,evecfv(:,jst,jspn),1,zzero,vh,1) call zhemv('U',nm,zone,dlo,nmatmax,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 !$OMP END PARALLEL DO call freethd(nthd) ! compute the force using the second-variational coefficients if required sm=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) sm=sm+occsv(j,ik)*dble(z1) end do end do else ! spin-unpolarised case do j=1,nstsv sm=sm+occsv(j,ik)*dble(ffv(j,j)) end do end if forceibs(l,ias)=forceibs(l,ias)+wkpt(ik)*sm ! 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,apwalm,evecfv) deallocate(h,o,dlh,dlo) if (tevecsv) deallocate(evecsv) end subroutine !EOC elk-9.6.8/src/PaxHeaders/writeepsinv.f900000644000000000000000000000013214626155520015063 xustar0030 mtime=1717099344.161987338 30 atime=1717099342.061976024 30 ctime=1717099344.161987338 elk-9.6.8/src/writeepsinv.f900000644002504400250440000000157014626155520017610 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 ! initialise global variables call init0 call init1 call init2 call init3 ! read density and potentials from file call readstate ! find the new linearisation energies call linengy ! generate the APW radial functions call genapwfr ! generate the local-orbital radial functions call genlofr ! read the eigenvalues and occupation numbers from file call readevalsv call readoccsv ! generate the inverse dielectric function and write to file call epsinv if (mp_mpi) then write(*,*) write(*,'("Info(writeepsinv):")') write(*,'(" inverse RPA dielectric function, ϵ⁻¹(G,G'',q,w), written to & &EPSINV.OUT")') end if end subroutine elk-9.6.8/src/PaxHeaders/olprad.f900000644000000000000000000000013214626155520013765 xustar0030 mtime=1717099344.163987349 30 atime=1717099342.063976035 30 ctime=1717099344.163987349 elk-9.6.8/src/olprad.f900000644002504400250440000000356414626155520016517 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 use modomp ! !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,nthd integer ilo,jlo,l,io ! loop over atoms call holdthd(natmtot,nthd) !$OMP PARALLEL DO DEFAULT(SHARED) & !$OMP PRIVATE(is,nr,ilo,jlo,l,io) & !$OMP NUM_THREADS(nthd) do ias=1,natmtot is=idxis(ias) nr=nrmt(is) ! loop over local-orbitals do ilo=1,nlorb(is) l=lorbl(ilo,is) !-------------------------------------! ! APW-local-orbital integrals ! !-------------------------------------! do io=1,apword(l,is) oalo(io,ilo,ias)=sum(apwfr(1:nr,1,io,l,ias)*lofr(1:nr,1,ilo,ias) & *wrmt(1:nr,is)) end do !-----------------------------------------------! ! local-orbital-local-orbital integrals ! !-----------------------------------------------! do jlo=1,nlorb(is) if (lorbl(jlo,is) == l) then ololo(ilo,jlo,ias)=sum(lofr(1:nr,1,ilo,ias)*lofr(1:nr,1,jlo,ias) & *wrmt(1:nr,is)) end if end do end do end do !$OMP END PARALLEL DO call freethd(nthd) end subroutine !EOC elk-9.6.8/src/PaxHeaders/polark.f900000644000000000000000000000013014626155520013772 xustar0029 mtime=1717099344.16598736 30 atime=1717099342.065976045 29 ctime=1717099344.16598736 elk-9.6.8/src/polark.f900000644002504400250440000000346614626155520016527 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2020 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 polark(ik,l,expqmt,pl) use modmain implicit none ! arguments integer, intent(in) :: ik,l complex(8), intent(in) :: expqmt(npcmtmax,natmtot) real(8), intent(inout) :: pl ! local variables integer jk,nst,ist real(8) vkql(3) complex(8) z1 ! automatic arrays integer idx(nstsv),ngp(nspnfv) ! allocatable arrays integer, allocatable :: igpig(:,:) complex(8), allocatable :: wfmt(:,:,:,:),wfir(:,:,:) complex(8), allocatable :: wfmtq(:,:,:,:),wfgkq(:,:,:) complex(8), allocatable :: oq(:,:) ! external functions complex(8), external :: zmdet ! equivalent reduced k-point jk=ivkik(ivk(1,ik),ivk(2,ik),ivk(3,ik)) ! find the adjacent k-point in lattice coordinates vkql(:)=vkl(:,ik) vkql(l)=vkql(l)+1.d0/dble(ngridk(l)) ! count and index the occupied states nst=0 do ist=1,nstsv if (evalsv(ist,jk) > efermi) cycle nst=nst+1 idx(nst)=ist end do allocate(igpig(ngkmax,nspnfv)) ! generate the wavefunctions for occupied states at k allocate(wfmt(npcmtmax,natmtot,nspinor,nst),wfir(ngtot,nspinor,nst)) call genwfsvp(.false.,.false.,nst,idx,ngridg,igfft,vkl(:,ik),ngp,igpig,wfmt, & ngtot,wfir) ! generate the wavefunctions for occupied states at k+q allocate(wfmtq(npcmtmax,natmtot,nspinor,nst),wfgkq(ngkmax,nspinor,nst)) call genwfsvp(.false.,.true.,nst,idx,ngridg,igfft,vkql,ngp,igpig,wfmtq,ngkmax, & wfgkq) ! determine the overlap matrix for all occupied states allocate(oq(nst,nst)) call genolpq(nst,expqmt,ngp,igpig,wfmt,wfir,wfmtq,wfgkq,oq) ! compute the determinant of the matrix z1=zmdet(nst,oq) ! determine the phase of the determinant and add to total polarisation pl=pl+atan2(aimag(z1),dble(z1)) deallocate(igpig,wfmt,wfir,wfmtq,wfgkq,oq) end subroutine elk-9.6.8/src/PaxHeaders/zfmtinp.f900000644000000000000000000000013214626155520014173 xustar0030 mtime=1717099344.167987371 30 atime=1717099342.068976061 30 ctime=1717099344.167987371 elk-9.6.8/src/zfmtinp.f900000644002504400250440000000370014626155520016715 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: pure 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 n,ir,i ! compute the dot-products for each radial point and integrate over r zfmtinp=0.d0 if (lmaxi == 1) then do ir=1,nri i=4*(ir-1)+1 zfmtinp=zfmtinp+wr(ir) & *(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)) end do i=4*nri+1 else i=1 n=lmmaxi-1 do ir=1,nri zfmtinp=zfmtinp+wr(ir)*dot_product(zfmt1(i:i+n),zfmt2(i:i+n)) i=i+lmmaxi end do end if n=lmmaxo-1 do ir=nri+1,nr zfmtinp=zfmtinp+wr(ir)*dot_product(zfmt1(i:i+n),zfmt2(i:i+n)) i=i+lmmaxo end do end function !EOC elk-9.6.8/src/PaxHeaders/hflocal.f900000644000000000000000000000013214626155520014114 xustar0030 mtime=1717099344.169987382 30 atime=1717099342.070976072 30 ctime=1717099344.169987382 elk-9.6.8/src/hflocal.f900000644002504400250440000000334014626155520016636 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(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 np,nrc,nrci ! automatic arrays real(8) rfmt(npmtmax) ! compute the Coulomb potential call potcoul ! convert to spherical coordinates and store in output arrays if (hybrid) 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) nrc=nrcmt(is) nrci=nrcmti(is) np=npmt(is) rfmt(1:np)=vclmt(1:np,ias)+vxcmt(1:np,ias) call rfmtftoc(nrc,nrci,rfmt,vmt(:,ias)) call rbshtip(nrc,nrci,vmt(:,ias)) call rfcmtwr(nrc,nrci,wrcmt(:,is),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),bmt(:,ias,idm)) call rbshtip(nrc,nrci,bmt(:,ias,idm)) call rfcmtwr(nrc,nrci,wrcmt(:,is),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),vmt(:,ias)) call rbshtip(nrc,nrci,vmt(:,ias)) call rfcmtwr(nrc,nrci,wrcmt(:,is),vmt(:,ias)) end do vir(:)=vclir(:)*cfunir(:) end if end subroutine elk-9.6.8/src/PaxHeaders/mixbroyden.f900000644000000000000000000000013214626155520014664 xustar0030 mtime=1717099344.171987392 30 atime=1717099342.072976083 30 ctime=1717099344.171987392 elk-9.6.8/src/mixbroyden.f900000644002504400250440000000432014626155520017405 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),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),work(msd) ! external functions real(8), external :: ddot if (n < 1) then write(*,*) write(*,'("Error(mixbroyden): n < 1 : ",I8)') n write(*,*) stop end if if (msd < 2) then write(*,*) write(*,'("Error(mixbroyden): msd < 2 : ",I8)') msd write(*,*) stop end if ! initialise mixer if (iscl <= 0) then mu(:,1)=nu(:) mu(:,2)=nu(:) 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=norm2(df(:,jc)) if (t1 > 1.d-8) t1=1.d0/t1 df(:,jc)=t1*df(:,jc) u(:,jc)=alpha*df(:,jc)+t1*(mu(:,kp)-mu(:,kc)) call holdthd(2*m,nthd) !$OMP PARALLEL DEFAULT(SHARED) & !$OMP NUM_THREADS(nthd) !$OMP DO do k=1,m c(k)=ddot(n,df(1,k),1,f(1,kc),1) end do !$OMP END DO NOWAIT !$OMP DO do k=1,m a(k,jc)=ddot(n,df(1,k),1,df(1,jc),1) 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 == 0) call dgetri(m,beta,msd,ipiv,work,m,info) if (info /= 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 t1=-gamma(l) nu(:)=nu(:)+t1*u(:,l) end do mu(:,kc)=nu(:) end subroutine elk-9.6.8/src/PaxHeaders/grad2rfmt.f900000644000000000000000000000013214626155520014374 xustar0030 mtime=1717099344.173987403 30 atime=1717099342.074976094 30 ctime=1717099344.173987403 elk-9.6.8/src/grad2rfmt.f900000644002504400250440000000476614626155520017133 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: grad2rfmt ! !INTERFACE: subroutine grad2rfmt(nr,nri,ri,ri2,wcr,rfmt,g2rfmt) ! !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) ! ri : 1/r on the radial mesh (in,real(nr)) ! ri2 : 1/r^2 on the radial mesh (in,real(nr)) ! wcr : weights for spline coefficients on radial mesh (in,real(12,nr)) ! rfmt : real muffin-tin function (in,real(*)) ! g2rfmt : laplacian of the input function (out,real(*)) ! !DESCRIPTION: ! Calculates the Laplacian 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 ! $$ F_{lm}(r)=\frac{1}{r}\frac{\partial^2}{\partial r^2}\big(rf_{lm}(r)\big) ! -\frac{l(l+1)}{r^2}f_{lm}(r) $$ ! which yields ! $$ \nabla^2 f({\bf r})=\sum_{lm} F_{lm}(r)R_{lm}(\hat{\bf r}), $$ ! where $R_{lm}$ is a real spherical harmonic function. ! ! !REVISION HISTORY: ! Created July 2009 (JKD) !EOP !BOC implicit none ! arguments integer, intent(in) :: nr,nri real(8), intent(in) :: ri(nr),ri2(nr),wcr(12,nr),rfmt(*) real(8), intent(out) :: g2rfmt(*) ! local variables integer nro,iro,npi integer l,lm,i1,j0,j1 real(8) t1 ! automatic arrays real(8) fr(nr),cf(3,nr) nro=nr-nri iro=nri+1 npi=lmmaxi*nri do l=0,lmaxi t1=-dble(l*(l+1)) do lm=l**2+1,(l+1)**2 ! use a cubic spline to compute radial derivatives i1=lmmaxi*(nri-1)+lm j0=i1+lmmaxi j1=lmmaxo*(nr-iro)+j0 fr(1:nri)=rfmt(lm:i1:lmmaxi) fr(iro:nr)=rfmt(j0:j1:lmmaxo) call splinew(nr,wcr,fr,cf) ! apply Laplacian g2rfmt(lm:i1:lmmaxi)=2.d0*(ri(1:nri)*cf(1,1:nri)+cf(2,1:nri)) & +t1*ri2(1:nri)*rfmt(lm:i1:lmmaxi) g2rfmt(j0:j1:lmmaxo)=2.d0*(ri(iro:nr)*cf(1,iro:nr)+cf(2,iro:nr)) & +t1*ri2(iro:nr)*rfmt(j0:j1:lmmaxo) end do end do do l=lmaxi+1,lmaxo t1=-dble(l*(l+1)) do lm=l**2+1,(l+1)**2 j0=lmmaxi*nri+lm j1=lmmaxo*(nr-iro)+j0 fr(iro:nr)=rfmt(j0:j1:lmmaxo) call splinew(nro,wcr(:,iro),fr(iro),cf(1,iro)) g2rfmt(j0:j1:lmmaxo)=2.d0*(ri(iro:nr)*cf(1,iro:nr)+cf(2,iro:nr)) & +t1*ri2(iro:nr)*rfmt(j0:j1:lmmaxo) end do end do ! improve stability by smoothing the laplacian call rfmtsm(msmgmt,nr,nri,g2rfmt) end subroutine !EOC elk-9.6.8/src/PaxHeaders/clebgor.f900000644000000000000000000000013114626155520014120 xustar0030 mtime=1717099344.175987414 29 atime=1717099342.07797611 30 ctime=1717099344.175987414 elk-9.6.8/src/clebgor.f900000644002504400250440000000325214626155520016645 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: clebgor ! !INTERFACE: real(8) function clebgor(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 Clebsch-Gordon coefficients using the Wigner $3j$-symbols ! $$ C(J_1 J_2 J_3 | m_1 m_2 m_3)=(-1)^{J_1-J_2+m_3}\sqrt{2J_3+1} ! \begin{pmatrix} J_1 & J_2 & J_3 \\ m_1 & m_2 & -m_3 \end{pmatrix}. $$ ! Suitable for $J_i\le 50$. See {\tt wigner3j}. ! ! !REVISION HISTORY: ! Created September 2003 (JKD) !EOP !BOC implicit none ! arguments integer, intent(in) :: j1,j2,j3 integer, intent(in) :: m1,m2,m3 ! external functions real(8), external :: wigner3j if ((j1 < 0).or.(j2 < 0).or.(j3 < 0).or.(abs(m1) > j1).or.(abs(m2) > j2) & .or.(abs(m3) > j3)) then write(*,*) write(*,'("Error(clebgor): non-physical 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 == 0).and.(j2 == 0).and.(j3 == 0)) then clebgor=1.d0 return end if if ((j1 > 50).or.(j2 > 50).or.(j3 > 50)) then write(*,*) write(*,'("Error(clebgor): angular momenta out of range : ",3I8)') j1,j2,j3 write(*,*) stop end if if ((m1+m2 /= m3).or.(j1+j2 < j3).or.(j2+j3 < j1).or.(j1+j3 < j2)) then clebgor=0.d0 return end if clebgor=sqrt(dble(2*j3+1))*wigner3j(j1,j2,j3,m1,m2,-m3) if (mod(j1-j2+m3,2) /= 0) clebgor=-clebgor end function !EOC elk-9.6.8/src/PaxHeaders/rfirctof.f900000644000000000000000000000013014626155520014320 xustar0029 mtime=1717099344.17898743 30 atime=1717099342.079976121 29 ctime=1717099344.17898743 elk-9.6.8/src/rfirctof.f900000644002504400250440000000253614626155520017052 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2020 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. !BOP ! !ROUTINE: rfirctof ! !INTERFACE: subroutine rfirctof(rfirc,rfir) ! !USES: use modmain ! !INPUT/OUTPUT PARAMETERS: ! rfirc : real input function on coarse grid (in,real(ngtc)) ! rfir : real output function on fine grid (out,real(ngtot)) ! !DESCRIPTION: ! Converts a real function on a coarse grid given by sizes {\tt ngdgc} to a ! function on a fine grid given by {\tt ngridg}. This is done by first ! Fourier transforming {\tt rfirc} to $G$-space, zeroing the missing values ! and then transforming back to {\tt rfir}. ! ! !REVISION HISTORY: ! Created March 2020 (JKD) !EOP !BOC implicit none ! arguments real(8), intent(in) :: rfirc(ngtc) real(8), intent(out) :: rfir(ngtot) ! local variables integer ig,ifg ! automatic arrays complex(8) zfftc(ngtc) ! allocatable arrays complex(8), allocatable :: zfft(:) ! Fourier transform function on coarse grid to G-space zfftc(:)=rfirc(:) call zfftifc(3,ngdgc,-1,zfftc) ! Fourier transform to fine real-space grid allocate(zfft(nfgrz)) do ifg=1,nfgrz ig=igrzf(ifg) if (ig <= ngvc) then zfft(ifg)=zfftc(igfc(ig)) else zfft(ifg)=0.d0 end if end do call rzfftifc(3,ngridg,1,rfir,zfft) deallocate(zfft) end subroutine !EOC elk-9.6.8/src/PaxHeaders/effmass.f900000644000000000000000000000013214626155520014130 xustar0030 mtime=1717099344.180987441 30 atime=1717099342.082976137 30 ctime=1717099344.180987441 elk-9.6.8/src/effmass.f900000644002504400250440000001122414626155520016652 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(:,:,:),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 ! 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 == 0).and.(i2 == 0).and.(i3 == 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 /= 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 == 1) then m=k else m=l end if if (m == 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 == 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 == 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-5,rva=w) deallocate(ipiv,a,b,c) end subroutine elk-9.6.8/src/PaxHeaders/sfacmag.f900000644000000000000000000000013214626155520014105 xustar0030 mtime=1717099344.182987452 30 atime=1717099342.084976148 30 ctime=1717099344.182987452 elk-9.6.8/src/sfacmag.f900000644002504400250440000000550614626155520016635 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)) <= epslat).and. & (abs(v(2)-iv(2)) <= epslat).and. & (abs(v(3)-iv(3)) <= 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 == 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) end subroutine !EOC elk-9.6.8/src/PaxHeaders/polynm.f900000644000000000000000000000013214626155520014022 xustar0030 mtime=1717099344.184987462 30 atime=1717099342.087976164 30 ctime=1717099344.184987462 elk-9.6.8/src/polynm.f900000644002504400250440000000667714626155520016564 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: pure 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,sm ! 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 <= 0).or.(m >= 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 == 0) then sm=c(1) t1=1.d0 do i=2,np t1=t1*(x-xa(i-1)) sm=sm+c(i)*t1 end do polynm=sm 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 > 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 end function !EOC elk-9.6.8/src/PaxHeaders/epsinv.f900000644000000000000000000000013214626155520014010 xustar0030 mtime=1717099344.186987473 30 atime=1717099342.089976175 30 ctime=1717099344.186987473 elk-9.6.8/src/epsinv.f900000644002504400250440000000505014626155520016532 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 ! automatic arrays integer(omp_lock_kind) lock(nwrf) ! allocatable arrays 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 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 functions call gengqf(ngrf,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) /= lp_mpi) cycle ! compute v¹⸍² χ₀ v¹⸍² call genvchi0(.false.,ik,lock,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 > 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 δ(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(vgqc,gqc,gclgq,jlgqr) deallocate(ylmgq,sfacgq,epsi) ! synchronise MPI processes call mpi_barrier(mpicom,ierror) end subroutine elk-9.6.8/src/PaxHeaders/rfinpc.f900000644000000000000000000000013214626155520013765 xustar0030 mtime=1717099344.188987484 30 atime=1717099342.092976191 30 ctime=1717099344.188987484 elk-9.6.8/src/rfinpc.f900000644002504400250440000000171214626155520016510 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 ! arguments 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,nthd ! external functions real(8), external :: rfmtinp ! interstitial contribution rfinpc=sum(rfir1(1:ngtot)*rfir2(1:ngtot)*cfunir(1:ngtot)) 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) end function elk-9.6.8/src/PaxHeaders/writeiad.f900000644000000000000000000000013214626155520014314 xustar0030 mtime=1717099344.190987495 30 atime=1717099342.094976202 30 ctime=1717099344.190987495 elk-9.6.8/src/writeiad.f900000644002504400250440000000254714626155520017046 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: writeiad ! !INTERFACE: subroutine writeiad(fnum) ! !USES: use modmain ! !INPUT/OUTPUT PARAMETERS: ! fnum : file number for writing output (in,integer) ! !DESCRIPTION: ! Outputs the interatomic distances to file. ! ! !REVISION HISTORY: ! Created May 2005 (JKD) !EOP !BOC implicit none ! arguments integer, intent(in) :: fnum ! local variables integer is,js,ia,ja integer i1,i2,i3 real(8) d,dmin,v(3) do is=1,nspecies do ia=1,natoms(is) write(fnum,*) write(fnum,'("Distance between is = ",I4," (",A,"), ia = ",I4," and")') & is,trim(spsymb(is)),ia do js=1,nspecies do ja=1,natoms(js) dmin=1.d8 do i1=-1,1 do i2=-1,1 do i3=-1,1 v(:)=dble(i1)*avec(:,1) & +dble(i2)*avec(:,2) & +dble(i3)*avec(:,3)+atposc(:,ja,js) v(:)=v(:)-atposc(:,ia,is) d=sqrt(v(1)**2+v(2)**2+v(3)**2) dmin=min(d,dmin) end do end do end do write(fnum,'(" is = ",I4," (",A,"), ia = ",I4," : ",G18.10)') js, & trim(spsymb(js)),ja,dmin end do end do end do end do end subroutine !EOC elk-9.6.8/src/PaxHeaders/genapwfr.f900000644000000000000000000000013214626155520014315 xustar0030 mtime=1717099344.192987505 30 atime=1717099342.096976212 30 ctime=1717099344.192987505 elk-9.6.8/src/genapwfr.f900000644002504400250440000000767414626155520017055 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,iro,ir integer i0,i1,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), external :: splint do is=1,nspecies nr=nrmt(is) nri=nrmti(is) iro=nri+1 done(:)=.false. do ia=1,natoms(is) if (done(ia)) cycle ias=idxas(ia,is) ! use spherical part of potential i1=lmmaxi*(nri-1)+1 vr(1:nri)=vsmt(1:i1:lmmaxi,ias)*y00 i0=i1+lmmaxi i1=lmmaxo*(nr-iro)+i0 vr(iro:nr)=vsmt(i0:i1:lmmaxo,ias)*y00 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)) p0(1:nr,io)=t1*p0(1:nr,io) p1s(io)=t1*p1(nr) ep0(1:nr,io)=t1*ep0(1:nr,io) ! 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) p0(1:nr,io)=p0(1:nr,io)+t1*p0(1:nr,jo) p1s(io)=p1s(io)+t1*p1s(jo) ep0(1:nr,io)=ep0(1:nr,io)+t1*ep0(1:nr,jo) 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 < 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) p0(1:nr,io)=t1*p0(1:nr,io) p1s(io)=t1*p1s(io) ep0(1:nr,io)=t1*ep0(1:nr,io) ! 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) apwfr(1:nr,1:2,io,l,jas)=apwfr(1:nr,1:2,io,l,ias) 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 end subroutine !EOC elk-9.6.8/src/PaxHeaders/gengclq.f900000644000000000000000000000013214626155520014124 xustar0030 mtime=1717099344.194987516 30 atime=1717099342.099976228 30 ctime=1717099344.194987516 elk-9.6.8/src/gengclq.f900000644002504400250440000000557414626155520016661 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: gengclq ! !INTERFACE: subroutine gengclq ! !USES: use modmain use modtest ! !DESCRIPTION: ! The Fock matrix elements ! $$ V_{ij{\bf k}}\equiv\sum_{l{\bf k'}}\int ! \frac{\Psi^{\dag}_{i{\bf k}}({\bf r})\cdot\Psi_{l{\bf k}'}({\bf r}) ! \Psi^{\dag}_{l{\bf k}'}({\bf r}')\cdot\Psi_{j{\bf k}}({\bf r}')} ! {|{\bf r}-{\bf r'}|}\,d^3r\,d^3r' $$ ! contain a divergent term in the sum over ${\bf k}'$ which behaves as ! $1/q^2$, where ${\bf q}\equiv{\bf k}-{\bf k}'$ is in the first Brillouin ! zone. The resulting convergence with respect to the number of discrete ! $q$-points, $N_q$, is very slow. This routine computes the regularised ! Coulomb Green's function ! \begin{align} ! g({\bf q}_i)=\frac{4\pi}{V}\int_{V_i}\frac{1}{q^2}\,d^3q, ! \end{align} ! where the integral is over the small parallelepiped with volume ! $V=\Omega_{\rm BZ}/N_q$ and centered on the discrete point ${\bf q}_i$. ! This dramatically increases the rate of convergence of methods which involve ! a summation over the $1/q^2$ part of the Coulomb interaction. The above ! integral is evaluated numerically on increasingly finer grids and then ! extrapolated to the continuum. ! ! !REVISION HISTORY: ! Created August 2004 (JKD,SS) ! Changed from genwiq2, July 2017 (JKD) !EOP !BOC implicit none ! local variables integer, parameter :: np=5 integer, parameter :: ns0=10,nss=20 integer ns,iq,i1,i2,i3,ip real(8) d(3),sm,t1,t2 real(8) v1(3),v2(3),v3(3) real(8) xa(np),ya(np) ! external functions real(8), external :: polynm ! allocate global gclq array if (allocated(gclq)) deallocate(gclq) allocate(gclq(nqpt)) ! begin loop over q-points, note that the vectors vqc are assumed to be in the ! first Brillouin zone do iq=1,nqpt ! loop over different subdivisions ns=ns0 do ip=1,np ! subdivision vectors in lattice coordinates d(:)=1.d0/dble(ngridq(:)*2*ns) ! compute the integral of 1/q^2 sm=0.d0 do i1=-ns,ns-1 t1=dble(i1)*d(1) v1(:)=vqc(:,iq)+t1*bvec(:,1) do i2=-ns,ns-1 t1=dble(i2)*d(2) v2(:)=v1(:)+t1*bvec(:,2) do i3=-ns,ns-1 t1=dble(i3)*d(3) v3(:)=v2(:)+t1*bvec(:,3) t2=v3(1)**2+v3(2)**2+v3(3)**2 if (t2 > 1.d-14) sm=sm+1.d0/t2 end do end do end do t1=1.d0/dble(2*ns) xa(ip)=t1 ya(ip)=fourpi*sm*t1**3 ! increment number of subdivisions ns=ns+nss end do ! extrapolate the volume element to zero with a polynomial gclq(iq)=polynm(0,np,xa,ya,0.d0) end do ! zero the Green's function at q = 0 if required if (t0gclq0) gclq(1)=0.d0 ! write gclq to test file call writetest(800,"regularised Coulomb Green''s function (gclq)",nv=nqpt, & tol=1.d-8,rva=gclq) end subroutine !EOC elk-9.6.8/src/PaxHeaders/addbfsm.f900000644000000000000000000000013214626155520014104 xustar0030 mtime=1717099344.197987532 30 atime=1717099342.102976245 30 ctime=1717099344.197987532 elk-9.6.8/src/addbfsm.f900000644002504400250440000000163314626155520016631 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) == 1).or.(abs(fsmtype) == 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(1:ngtot,idm)=bsir(1:ngtot,idm)+t1*cfunir(1:ngtot) end do end if ! add the muffin-tin fields if ((abs(fsmtype) == 2).or.(abs(fsmtype) == 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 end subroutine elk-9.6.8/src/PaxHeaders/genylmv.f900000644000000000000000000000013214626155520014165 xustar0030 mtime=1717099344.198987538 30 atime=1717099342.104976255 30 ctime=1717099344.198987538 elk-9.6.8/src/genylmv.f900000644002504400250440000000710514626155520016712 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: pure subroutine genylmv(t4pil,lmax,v,ylm) ! !INPUT/OUTPUT PARAMETERS: ! t4pil : .true. if the plane wave prefactor should be included (in,logical) ! 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 eps) then t1=v(3)/r if (t1 >= 1.d0) then st=0.d0 ct=1.d0 else if (t1 <= -1.d0) then st=0.d0 ct=-1.d0 else st=sqrt(1.d0-t1**2) ct=t1 end if if ((abs(v(1)) > eps).or.(abs(v(2)) > eps)) then t1=1.d0/sqrt(v(1)**2+v(2)**2) sp=t1*v(2) cp=t1*v(1) else sp=0.d0 cp=1.d0 end if else st=0.d0 ct=1.d0 sp=0.d0 cp=1.d0 end if z1=cmplx(cp,sp,8) ylm(3)=0.48860251190291992159d0*ct ylm(4)=-0.34549414947133547927d0*st*z1 ylm(2)=-conjg(ylm(4)) do l=2,lmax lm1=(l+1)**2 lm2=l**2 lm3=(l-1)**2+1 lm4=lm2+1 ylm(lm1)=-st*sqrt(dble(2*l+1)/dble(2*l))*z1*ylm(lm2) if (mod(l,2) == 0) then ylm(lm4)=conjg(ylm(lm1)) else ylm(lm4)=-conjg(ylm(lm1)) end if lm1=lm1-1 ylm(lm1)=ct*sqrt(dble(2*l+1))*ylm(lm2) lm4=lm4+1 if (mod(l-1,2) == 0) then ylm(lm4)=conjg(ylm(lm1)) else ylm(lm4)=-conjg(ylm(lm1)) end if t1=ct*sqrt(dble((2*l-1)*(2*l+1))) t2=sqrt(dble((2*l+1))/dble(2*l-3)) do m=l-2,1,-1 lm1=lm1-1; lm2=lm2-1; lm3=lm3-1; lm4=lm4+1 t3=1.d0/sqrt(dble((l-m)*(l+m))) t4=t2*sqrt(dble((l-m-1)*(l+m-1))) ylm(lm1)=t3*(t1*ylm(lm2)-t4*ylm(lm3)) if (mod(m,2) == 0) then ylm(lm4)=conjg(ylm(lm1)) else ylm(lm4)=-conjg(ylm(lm1)) end if end do lm1=lm1-1; lm2=lm2-1; lm3=lm3-1 t3=1.d0/dble(l) t4=t2*dble(l-1) ylm(lm1)=t3*(t1*ylm(lm2)-t4*ylm(lm3)) end do ! multiply by 4π (-i)ˡ if required if (t4pil) then ylm(1)=fourpi*ylm(1) do l=1,lmax lm1=l**2+1; lm2=lm1+2*l select case(mod(l,4)) case(0) ylm(lm1:lm2)=fourpi*ylm(lm1:lm2) case(1) ylm(lm1:lm2)=fourpi*cmplx(aimag(ylm(lm1:lm2)),-dble(ylm(lm1:lm2)),8) case(2) ylm(lm1:lm2)=-fourpi*ylm(lm1:lm2) case default ylm(lm1:lm2)=fourpi*cmplx(-aimag(ylm(lm1:lm2)),dble(ylm(lm1:lm2)),8) end select end do end if end subroutine !EOC elk-9.6.8/src/PaxHeaders/olpfv.f900000644000000000000000000000013214626155520013632 xustar0030 mtime=1717099344.201987554 30 atime=1717099342.106976266 30 ctime=1717099344.201987554 elk-9.6.8/src/olpfv.f900000644002504400250440000000172314626155520016357 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 is,ias,j,nthd ! zero the upper triangular part of the matrix do j=1,nmatp o(1:j,j)=0.d0 end do do ias=1,natmtot is=idxis(ias) call olpaa(tefvr,is,ngp,apwalm(:,:,:,ias),nmatp,o) end do call olpistl(ngp,igpig,nmatp,o) call holdthd(natmtot,nthd) !$OMP PARALLEL DO DEFAULT(SHARED) & !$OMP PRIVATE(is) & !$OMP NUM_THREADS(nthd) do ias=1,natmtot is=idxis(ias) call olpalo(is,ias,ngp,apwalm(:,:,:,ias),nmatp,o) call olplolo(is,ias,ngp,nmatp,o) end do !$OMP END PARALLEL DO call freethd(nthd) end subroutine elk-9.6.8/src/PaxHeaders/hmlfv.f900000644000000000000000000000013214626155520013620 xustar0030 mtime=1717099344.203987565 30 atime=1717099342.109976282 30 ctime=1717099344.203987565 elk-9.6.8/src/hmlfv.f900000644002504400250440000000200714626155520016341 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 is,ias,j,nthd ! zero the upper triangular part of the matrix do j=1,nmatp h(1:j,j)=0.d0 end do do ias=1,natmtot is=idxis(ias) call hmlaa(tefvr,is,ias,ngp,apwalm(:,:,:,ias),nmatp,h) end do call hmlistl(ngp,igpig,vgpc,nmatp,h) call holdthd(natmtot,nthd) !$OMP PARALLEL DO DEFAULT(SHARED) & !$OMP PRIVATE(is) & !$OMP NUM_THREADS(nthd) do ias=1,natmtot is=idxis(ias) call hmlalo(is,ias,ngp,apwalm(:,:,:,ias),nmatp,h) call hmllolo(is,ias,ngp,nmatp,h) end do !$OMP END PARALLEL DO call freethd(nthd) end subroutine elk-9.6.8/src/PaxHeaders/genexpmt.f900000644000000000000000000000013214626155520014333 xustar0030 mtime=1717099344.205987575 30 atime=1717099342.111976293 30 ctime=1717099344.205987575 elk-9.6.8/src/genexpmt.f900000644002504400250440000000273614626155520017065 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,lma,lmb,i,j real(8) t1 complex(8) z1 ! automatic arrays complex(8) ylm(lmmaxo),zfmt(npcmtmax) do ig=1,ngp ylm(1:lmmaxo)=conjg(ylmgp(1:lmmaxo,ig)) do is=1,nspecies nrc=nrcmt(is) nrci=nrcmti(is) npc=npcmt(is) i=0 j=0 do irc=1,nrci do l=0,lmaxi j=j+1 t1=jlgpr(j,is,ig) lma=l**2+1; lmb=lma+2*l zfmt(i+lma:i+lmb)=t1*ylm(lma:lmb) end do i=i+lmmaxi end do do irc=nrci+1,nrc do l=0,lmaxo j=j+1 t1=jlgpr(j,is,ig) lma=l**2+1; lmb=lma+2*l zfmt(i+lma:i+lmb)=t1*ylm(lma:lmb) end do i=i+lmmaxo end do ! convert to spherical coordinates call zbshtip(nrc,nrci,zfmt) ! mutiply by phase factors and store for all atoms do ia=1,natoms(is) ias=idxas(ia,is) z1=sfacgp(ig,ias) expmt(1:npc,ias,ig)=z1*zfmt(1:npc) end do end do end do end subroutine elk-9.6.8/src/PaxHeaders/rfinp.f900000644000000000000000000000013214626155520013622 xustar0030 mtime=1717099344.207987586 30 atime=1717099342.114976309 30 ctime=1717099344.207987586 elk-9.6.8/src/rfinp.f900000644002504400250440000000364314626155520016352 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,nthd real(8) t1 ! external functions real(8), external :: rfmtinp rfinp=0.d0 call holdthd(natmtot+1,nthd) !$OMP PARALLEL DEFAULT(SHARED) & !$OMP PRIVATE(is,t1) REDUCTION(+:rfinp) & !$OMP NUM_THREADS(nthd) !$OMP DO do ias=1,natmtot is=idxis(ias) ! muffin-tin contribution rfinp=rfinp+rfmtinp(nrmt(is),nrmti(is),wrmt(:,is),rfmt1(:,ias),rfmt2(:,ias)) end do !$OMP END DO NOWAIT ! interstitial contribution !$OMP SINGLE t1=sum(rfir1(1:ngtot)*rfir2(1:ngtot)*cfunir(1:ngtot)) rfinp=rfinp+t1*omega/dble(ngtot) !$OMP END SINGLE !$OMP END PARALLEL call freethd(nthd) end function !EOC elk-9.6.8/src/PaxHeaders/sphcover.f900000644000000000000000000000013114626155520014334 xustar0030 mtime=1717099344.209987597 29 atime=1717099342.11697632 30 ctime=1717099344.209987597 elk-9.6.8/src/sphcover.f900000644002504400250440000000254614626155520017066 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 <= 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 end subroutine !EOC elk-9.6.8/src/PaxHeaders/sctovec.f900000644000000000000000000000013214626155520014152 xustar0030 mtime=1717099344.211987608 30 atime=1717099342.118976331 30 ctime=1717099344.211987608 elk-9.6.8/src/sctovec.f900000644002504400250440000000064214626155520016676 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. pure 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)) end subroutine elk-9.6.8/src/PaxHeaders/genppts.f900000644000000000000000000000013214626155520014164 xustar0030 mtime=1717099344.213987619 30 atime=1717099342.121976347 30 ctime=1717099344.213987619 elk-9.6.8/src/genppts.f900000644002504400250440000001370514626155520016714 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 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) real(8) b(3,3),t1 if ((ngridp(1) <= 0).or.(ngridp(2) <= 0).or.(ngridp(3) <= 0)) then write(*,*) write(*,'("Error(genppts): invalid ngridp : ",3I8)') ngridp write(*,*) stop end if if (npptnr /= 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 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) ! map vector components to [0,1) call r3frac(epslat,v2) if (nsym > 1) then ! determine if this point is equivalent to one already in the set do isym=1,nsym call i3mtrv(sym(:,:,isym),v2,v3) call r3frac(epslat,v3) do i=1,ip t1=abs(vpl(1,i)-v3(1))+abs(vpl(2,i)-v3(2))+abs(vpl(3,i)-v3(3)) if (t1 < 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 ipvipnr(i1,i2,i3)=jp ivp(1,jp)=i1; ivp(2,jp)=i2; ivp(3,jp)=i3 vpl(:,jp)=v2(:) wppt(jp)=0.d0 jp=jp-1 goto 10 end if end do end do end if ! add new point to front of 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 contains pure subroutine i3mtrv(a,x,y) implicit none ! arguments integer, 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(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) end subroutine end subroutine !EOC elk-9.6.8/src/PaxHeaders/eveqnzg.f900000644000000000000000000000013214626155520014163 xustar0030 mtime=1717099344.215987629 30 atime=1717099342.123976358 30 ctime=1717099344.215987629 elk-9.6.8/src/eveqnzg.f900000644002504400250440000000205214626155520016704 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2019 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 eveqnzg(n,ld,a,w) use modomp implicit none ! arguments integer, intent(in) :: n,ld complex(8), intent(inout) :: a(ld,n) complex(8), intent(out) :: w(n) ! local variables integer lwork,info integer nthd,nts ! allocatable arrays real(8), allocatable :: rwork(:) complex(8), allocatable :: vr(:,:),work(:) lwork=2*n allocate(rwork(2*n),vr(n,n),work(lwork)) ! enable MKL parallelism call holdthd(maxthdmkl,nthd) nts=mkl_set_num_threads_local(nthd) ! determine the eigenvalues and right eigenvectors call zgeev('N','V',n,a,ld,w,vr,1,vr,n,work,lwork,rwork,info) nts=mkl_set_num_threads_local(0) call freethd(nthd) if (info /= 0) then write(*,*) write(*,'("Error(eveqnzg): diagonalisation failed")') write(*,'(" ZGEEV returned INFO = ",I8)') info write(*,*) stop end if ! copy right eigenvectors to output array a(1:n,1:n)=vr(1:n,1:n) deallocate(rwork,vr,work) end subroutine elk-9.6.8/src/PaxHeaders/fderiv.f900000644000000000000000000000013014626155520013761 xustar0029 mtime=1717099344.21798764 30 atime=1717099342.126976374 29 ctime=1717099344.21798764 elk-9.6.8/src/fderiv.f900000644002504400250440000000324614626155520016512 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) sm,dx ! automatic arrays real(8) cf(3,n) if (n <= 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) sm=0.d0 g(1)=0.d0 do i=1,n-1 dx=x(i+1)-x(i) sm=sm+dx*(f(i) & +dx*(0.5d0*cf(1,i) & +dx*(0.3333333333333333333d0*cf(2,i) & +dx*0.25d0*cf(3,i)))) g(i+1)=sm 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 end subroutine !EOC elk-9.6.8/src/PaxHeaders/genpmat.f900000644000000000000000000000013214626155520014137 xustar0030 mtime=1717099344.219987651 30 atime=1717099342.128976385 30 ctime=1717099344.219987651 elk-9.6.8/src/genpmat.f900000644002504400250440000000145714626155520016670 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) /= 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) end subroutine elk-9.6.8/src/PaxHeaders/genexpmat.f900000644000000000000000000000013214626155520014474 xustar0030 mtime=1717099344.221987662 30 atime=1717099342.131976401 30 ctime=1717099344.221987662 elk-9.6.8/src/genexpmat.f900000644002504400250440000001245714626155520017227 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), external :: zfmtinp,zdotc ! check if q-vector is zero t1=abs(vecql(1))+abs(vecql(2))+abs(vecql(3)) if (t1 < 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(ngvc,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(ngvc,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 wfmtfv(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 wfmtfv(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) end subroutine elk-9.6.8/src/PaxHeaders/writeforces.f900000644000000000000000000000013214626155520015040 xustar0030 mtime=1717099344.223987673 30 atime=1717099342.133976412 30 ctime=1717099344.223987673 elk-9.6.8/src/writeforces.f900000644002504400250440000000163414626155520017566 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)') forcetot(:,ias)-forcehf(:,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 end subroutine elk-9.6.8/src/PaxHeaders/r3cross.f900000644000000000000000000000013214626155520014102 xustar0030 mtime=1717099344.225987683 30 atime=1717099342.135976422 30 ctime=1717099344.225987683 elk-9.6.8/src/r3cross.f900000644002504400250440000000134214626155520016624 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) end subroutine !EOC elk-9.6.8/src/PaxHeaders/match.f900000644000000000000000000000013214626155520013600 xustar0030 mtime=1717099344.227987694 30 atime=1717099342.138976439 30 ctime=1717099344.227987694 elk-9.6.8/src/match.f900000644002504400250440000001156414626155520016331 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 wfmtfv}. ! ! !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,ord integer l,lma,lmb,lm,io,jo integer nr,ir,igp,i,info real(8) t0,t1 complex(8) z1,z2 ! automatic arrays integer ipiv(apwordmax) real(8) djl(0:lmaxapw,apwordmax,ngp) complex(8) a(apwordmax,apwordmax),ylmgp(lmmaxapw,ngp) complex(8) b(apwordmax,ngp*(2*lmaxapw+1)) ! external functions real(8), external :: polynm ! compute the spherical harmonics of the G+p-vectors do igp=1,ngp call genylmv(.true.,lmaxapw,vgpc(:,igp),ylmgp(:,igp)) end do t0=1.d0/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 == 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 t1=t0/apwfr(nr,1,1,l,ias) lma=l**2+1; lmb=lma+2*l do igp=1,ngp z1=t1*djl(l,1,igp)*sfacgp(igp,ias) apwalm(igp,1,lma:lmb,ias)=z1*conjg(ylmgp(lma:lmb,igp)) 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 ord=apword(l,is) ! set up matrix of derivatives do jo=1,ord do io=1,ord a(io,jo)=polynm(io-1,npapw,rsp(ir,is),apwfr(ir,1,jo,l,ias),rmt(is)) end do end do lma=l**2+1; lmb=lma+2*l ! set up target vectors i=0 do igp=1,ngp z1=t0*sfacgp(igp,ias) do lm=lma,lmb i=i+1 z2=z1*conjg(ylmgp(lm,igp)) b(1:ord,i)=djl(l,1:ord,igp)*z2 end do end do ! solve the general complex linear systems call zgesv(ord,i,a,apwordmax,ipiv,b,apwordmax,info) if (info /= 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 lm=lma,lmb i=i+1 apwalm(igp,1:ord,lm,ias)=b(1:ord,i) end do end do ! end loop over l end do ! end loops over atoms and species end do end do end subroutine !EOC elk-9.6.8/src/PaxHeaders/genspchi0.f900000644000000000000000000000013214626155520014364 xustar0030 mtime=1717099344.229987705 30 atime=1717099342.141976455 30 ctime=1717099344.229987705 elk-9.6.8/src/genspchi0.f900000644002504400250440000001535314626155520017115 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,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)) ! 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 occupation numbers, $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(omp_lock_kind), intent(inout) :: lock(nwrf) real(8), intent(in) :: 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),ei,ej,eij,t1 complex(8) z1 ! automatic arrays integer idx(nstsv),idxq(nstsv) integer ngp(nspnfv),ngpq(nspnfv) ! allocatable arrays integer, allocatable :: igpig(:,:),igpqig(:,:) complex(4), allocatable :: wfmt(:,:,:,:),wfir(:,:,:) complex(4), allocatable :: wfmtq(:,:,:,:),wfirq(:,:,:) complex(4), allocatable :: crhomt(:,:),crhoir(:) complex(8), allocatable :: zrhoig(:,:),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) > emaxrf) cycle nst=nst+1 idx(nst)=ist end do nstq=0 do ist=1,nstsv if (abs(evalsv(ist,jkq)-efermi) > emaxrf) cycle nstq=nstq+1 idxq(nstq)=ist 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_sp(.false.,.false.,nst,idx,ngdgc,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_sp(.false.,.false.,nstq,idxq,ngdgc,igfc,vkql,ngpq,igpqig,wfmtq, & ngtc,wfirq) deallocate(igpqig) call holdthd(nst,nthd) !$OMP PARALLEL DEFAULT(SHARED) & !$OMP PRIVATE(crhomt,crhoir,zrhoig,zw,c) & !$OMP PRIVATE(jst,kst,lst,ei,ej,eij,t1) & !$OMP PRIVATE(iw,i,j,a,b,tz,ig,jg,z1) & !$OMP NUM_THREADS(nthd) allocate(crhomt(npcmtmax,natmtot),crhoir(ngtc)) allocate(zrhoig(ngrf,4),zw(nwrf),c(ngrf,4,ngrf,4)) !$OMP DO do ist=1,nst kst=idx(ist) ei=evalsv(kst,jk) do jst=1,nstq lst=idxq(jst) t1=wkptnr*omega*(occsv(kst,jk)-occsv(lst,jkq)) if (abs(t1) < 1.d-8) cycle ej=evalsv(lst,jkq) eij=ei-ej ! 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 == 1).and.(kst > nstfv)).or. & ((a == 2).and.(kst <= nstfv)).or. & ((b == 1).and.(lst > nstfv)).or. & ((b == 2).and.(lst <= nstfv))) then tz(i)=.true. cycle end if end if call gencrho(.true.,.false.,ngtc,wfmt(:,:,a,ist),wfir(:,a,ist), & wfmtq(:,:,b,jst),wfirq(:,b,jst),crhomt,crhoir) call zftcf(ngrf,jlgqr,ylmgq,ngrf,sfacgq,crhomt,crhoir,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(crhomt,crhoir,zrhoig,zw,c) !$OMP END PARALLEL call freethd(nthd) deallocate(wfmt,wfmtq,wfir,wfirq) end subroutine !EOC elk-9.6.8/src/PaxHeaders/potefield.f900000644000000000000000000000013214626155520014457 xustar0030 mtime=1717099344.231987716 30 atime=1717099342.143976465 30 ctime=1717099344.231987716 elk-9.6.8/src/potefield.f900000644002504400250440000000345014626155520017203 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,t2 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 <= nri) then i=i+lmmaxi else i=i+lmmaxo end if end do end do end do ! interstitial potential t2=0.5d0*vmaxefc 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) t1=efieldc(1)*v2(1)+efieldc(2)*v2(2)+efieldc(3)*v2(3) t1=v0-t1 if (abs(t1) < vmaxefc) then vclir(ir)=vclir(ir)+t1 else vclir(ir)=vclir(ir)+sign(t2,t1) end if end do end do end do end subroutine elk-9.6.8/src/PaxHeaders/rhoinit.f900000644000000000000000000000013214626155520014160 xustar0030 mtime=1717099344.233987726 30 atime=1717099342.145976476 30 ctime=1717099344.233987726 elk-9.6.8/src/rhoinit.f900000644002504400250440000000735414626155520016713 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,nthd integer nr,nri,nro,nrs,iro,ir integer nrc,nrci,irco,irc integer l,lm,i0,i1,ig,ifg real(8) x,sm,t1,t2 complex(8) z1,z2 ! automatic arrays real(8) ffg(ngvc),wr(nrspmax),jl(0:lmaxi,nrcmtmax) complex(8) zfmt(npcmtmax) ! allocatable arrays complex(8), allocatable :: zfft(:) lmax=min(lmaxi,1) ! compute the superposition of all the atomic density tails allocate(zfft(ngtot)) zfft(:)=0.d0 call holdthd(nspecies,nthd) !$OMP PARALLEL DO DEFAULT(SHARED) & !$OMP PRIVATE(ffg,wr,nr,nrs,nro,ig) & !$OMP PRIVATE(t1,t2,sm,ir,x,ia,ias,ifg) & !$OMP NUM_THREADS(nthd) 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,ngvc t1=gc(ig) ! spherical bessel function j_0(x) times the atomic density tail if (t1 > epslat) then t2=1.d0/t1 sm=0.d0 do ir=nr,nrs x=t1*rsp(ir,is) sm=sm+t2*sin(x)*rhosp(ir,is)*rsp(ir,is)*wr(ir) end do else sm=sum(rhosp(nr:nrs,is)*(rsp(nr:nrs,is)**2)*wr(nr:nrs)) end if ! apply low-pass filter t1=sm*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,ngvc 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 PARALLEL DO call freethd(nthd) ! compute the tails in each muffin-tin call holdthd(natmtot,nthd) !$OMP PARALLEL DO DEFAULT(SHARED) & !$OMP PRIVATE(jl,zfmt,is,nrc,nrci) & !$OMP PRIVATE(irco,ig,ifg,irc,x) & !$OMP PRIVATE(z1,z2,lm,l,i0,i1) & !$OMP NUM_THREADS(nthd) 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,ngvc ifg=igfft(ig) do irc=1,nrc x=gc(ig)*rcmt(irc,is) call sbessel(lmax,x,jl(:,irc)) end do z1=zfft(ifg)*sfacg(ig,ias) do l=0,lmax do lm=l**2+1,(l+1)**2 z2=z1*conjg(ylmg(lm,ig)) i1=lmmaxi*(nrci-1)+lm zfmt(lm:i1:lmmaxi)=zfmt(lm:i1:lmmaxi)+jl(l,1:nrci)*z2 i0=i1+lmmaxi i1=lmmaxo*(nrc-irco)+i0 zfmt(i0:i1:lmmaxo)=zfmt(i0:i1:lmmaxo)+jl(l,irco:nrc)*z2 end do end do end do call ztorfmt(nrc,nrci,zfmt,rhomt(:,ias)) end do !$OMP END PARALLEL DO 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) iro=nri+1 i1=lmmaxi*(nri-1)+1 rhomt(1:i1:lmmaxi,ias)=rhomt(1:i1:lmmaxi,ias)+(t1+rhosp(1:nri,is))/y00 i0=i1+lmmaxi i1=lmmaxo*(nr-iro)+i0 rhomt(i0:i1:lmmaxo,ias)=rhomt(i0:i1:lmmaxo,ias)+(t1+rhosp(iro:nr,is))/y00 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) < 1.d-10) rhoir(ir)=1.d-10 end do deallocate(zfft) ! deallocate rhosp as it is not used again deallocate(rhosp) end subroutine !EOC elk-9.6.8/src/PaxHeaders/eveqnsv.f900000644000000000000000000000013214626155520014173 xustar0030 mtime=1717099344.235987737 30 atime=1717099342.148976492 30 ctime=1717099344.235987737 elk-9.6.8/src/eveqnsv.f900000644002504400250440000002427714626155520016731 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2002-2010 J. K. Dewhurst, S. Sharma, C. Ambrosch-Draxl, ! 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 eveqnsv(ngp,igpig,vgpc,apwalm,evalfv,evecfv,evalsvp,evecsv) use modmain use moddftu use modomp implicit none ! arguments integer, intent(in) :: ngp,igpig(ngkmax) real(8), intent(in) :: vgpc(3,ngkmax) complex(8), intent(in) :: apwalm(ngkmax,apwordmax,lmmaxapw,natmtot) real(8), intent(in) :: evalfv(nstfv) complex(8), intent(in) :: evecfv(nmatmax,nstfv) real(8), intent(out) :: evalsvp(nstsv) complex(8), intent(out) :: evecsv(nstsv,nstsv) ! local variables logical todsb,socz integer ld,ist,jst,ispn,is,ias integer nrc,nrci,nrco,irco,irc integer l,lm,nm,npc,npc2,npci,ipco integer ngp2,igp,i0,i,j,k,nthd real(8) a1,a2,a3,t1 real(8) ts0,ts1 complex(8) z1 complex(4) c1 ! automatic arrays complex(8) wfmt2(npcmtmax),wfmt4(npcmtmax,3) complex(8) wfmt31(npcmtmax),wfmt32(npcmtmax),wfmt33(npcmtmax) complex(4) wfmt5(npcmtmax),wfgp1(ngkmax),wfgp2(ngkmax),wfgp3(ngkmax) ! allocatable arrays complex(4), allocatable :: wfmt0(:,:),wfgp0(:,:),wfir1(:),wfir2(:) complex(8), allocatable :: wfmt1(:,:) ! external functions real(4), external :: sdot complex(4), external :: cdotc ! no calculation of second-variational eigenvectors if (.not.tevecsv) then evalsvp(1:nstsv)=evalfv(1:nstsv) evecsv(:,:)=0.d0 do i=1,nstsv evecsv(i,i)=1.d0 end do return end if call timesec(ts0) if (tafield) then ! coupling constant of the external A-field (-1/c) t1=-1.d0/solsc a1=t1*afieldc(1); a2=t1*afieldc(2); a3=t1*afieldc(3) end if ! check if the off-diagonal spin block of the Hamiltonian is required if (spinpol.and.(ncmag.or.spinorb)) then todsb=.true. else todsb=.false. end if ! special case of spin-orbit coupling and collinear magnetism if (spinorb.and.cmagz) then socz=.true. else socz=.false. end if ld=lmmaxdm*nspinor call holdthd(nstfv,nthd) ! zero the second-variational Hamiltonian (stored in the eigenvector array) evecsv(:,:)=0.d0 !-------------------------! ! muffin-tin part ! !-------------------------! allocate(wfmt0(npcmtmax,nstfv),wfmt1(npcmtmax,nstfv)) !$OMP PARALLEL DEFAULT(SHARED) & !$OMP PRIVATE(wfmt2,wfmt31,wfmt32,wfmt33,wfmt4,wfmt5) & !$OMP PRIVATE(ias,is,nrc,nrci,nrco,irco) & !$OMP PRIVATE(npc,npc2,npci,ipco,ist,jst) & !$OMP PRIVATE(irc,t1,i0,i,j,k,l,nm,lm,z1) & !$OMP NUM_THREADS(nthd) ! begin loop over atoms do ias=1,natmtot is=idxis(ias) nrc=nrcmt(is) nrci=nrcmti(is) nrco=nrc-nrci irco=nrci+1 npc=npcmt(is) npc2=npc*2 npci=npcmti(is) ipco=npci+1 ! compute the first-variational wavefunctions !$OMP DO do ist=1,nstfv call wfmtfv(ias,ngp,apwalm(:,:,:,ias),evecfv(:,ist),wfmt1(:,ist)) ! make a single-precision copy of the wavefunction wfmt0(1:npc,ist)=wfmt1(1:npc,ist) end do !$OMP END DO ! begin loop over states !$OMP DO do jst=1,nstfv if (spinpol) then ! convert wavefunction to spherical coordinates call zbsht(nrc,nrci,wfmt1(:,jst),wfmt2) ! apply Kohn-Sham effective magnetic field wfmt32(1:npc)=bsmt(1:npc,ias,ndmag)*wfmt2(1:npc) ! convert to spherical harmonics call zfsht(nrc,nrci,wfmt32,wfmt31) ! non-collinear magnetic field if (socz) then wfmt33(1:npc)=0.d0 else if (ncmag) then wfmt32(1:npc)=cmplx(bsmt(1:npc,ias,1),-bsmt(1:npc,ias,2),8)*wfmt2(1:npc) call zfsht(nrc,nrci,wfmt32,wfmt33) end if wfmt32(1:npc)=-wfmt31(1:npc) ! apply spin-orbit coupling if required if (spinorb) then call lopzflmn(lmaxi,nrci,lmmaxi,wfmt1(1,jst),wfmt4,wfmt4(1,2), & wfmt4(1,3)) call lopzflmn(lmaxo,nrco,lmmaxo,wfmt1(ipco,jst),wfmt4(ipco,1), & wfmt4(ipco,2),wfmt4(ipco,3)) ! inner part of muffin-tin do irc=1,nrci t1=socfr(irc,ias) i0=lmmaxi*(irc-1) do lm=1,lmmaxi i=i0+lm wfmt31(i)=wfmt31(i)+t1*wfmt4(i,3) wfmt32(i)=wfmt32(i)-t1*wfmt4(i,3) wfmt33(i)=wfmt33(i)+t1*(wfmt4(i,1) & +cmplx(aimag(wfmt4(i,2)),-dble(wfmt4(i,2)),8)) end do end do ! outer part of muffin-tin do irc=irco,nrc t1=socfr(irc,ias) i0=npci+lmmaxo*(irc-irco) do lm=1,lmmaxo i=i0+lm wfmt31(i)=wfmt31(i)+t1*wfmt4(i,3) wfmt32(i)=wfmt32(i)-t1*wfmt4(i,3) wfmt33(i)=wfmt33(i)+t1*(wfmt4(i,1) & +cmplx(aimag(wfmt4(i,2)),-dble(wfmt4(i,2)),8)) end do end do end if else wfmt31(1:npc)=0.d0 end if ! apply muffin-tin DFT+U potential matrix if required if (tvmatmt) then do l=0,lmaxdm if (tvmmt(l,ias)) then nm=2*l+1 lm=l**2+1 i=npci+lm if (l <= lmaxi) then call zgemm('N','N',nm,nrci,nm,zone,vmatmt(lm,1,lm,1,ias),ld, & wfmt1(lm,jst),lmmaxi,zone,wfmt31(lm),lmmaxi) end if call zgemm('N','N',nm,nrco,nm,zone,vmatmt(lm,1,lm,1,ias),ld, & wfmt1(i,jst),lmmaxo,zone,wfmt31(i),lmmaxo) if (spinpol) then if (l <= lmaxi) then call zgemm('N','N',nm,nrci,nm,zone,vmatmt(lm,2,lm,2,ias),ld, & wfmt1(lm,jst),lmmaxi,zone,wfmt32(lm),lmmaxi) end if call zgemm('N','N',nm,nrco,nm,zone,vmatmt(lm,2,lm,2,ias),ld, & wfmt1(i,jst),lmmaxo,zone,wfmt32(i),lmmaxo) if (todsb) then if (l <= lmaxi) then call zgemm('N','N',nm,nrci,nm,zone,vmatmt(lm,1,lm,2,ias),ld, & wfmt1(lm,jst),lmmaxi,zone,wfmt33(lm),lmmaxi) end if call zgemm('N','N',nm,nrco,nm,zone,vmatmt(lm,1,lm,2,ias),ld, & wfmt1(i,jst),lmmaxo,zone,wfmt33(i),lmmaxo) end if end if end if end do end if ! apply vector potential if required if (tafield) then call gradzfmt(nrc,nrci,rlcmt(:,-1,is),wcrcmt(:,:,is),wfmt1(:,jst), & npcmtmax,wfmt4) do i=1,npc z1=a1*wfmt4(i,1)+a2*wfmt4(i,2)+a3*wfmt4(i,3) z1=cmplx(aimag(z1),-dble(z1),8) wfmt31(i)=wfmt31(i)+z1 if (spinpol) wfmt32(i)=wfmt32(i)+z1 end do end if ! add to second-variational Hamiltonian matrix ! upper diagonal block call zcfmtwr(nrc,nrci,wrcmt(:,is),wfmt31,wfmt5) do ist=1,jst-1 evecsv(ist,jst)=evecsv(ist,jst)+cdotc(npc,wfmt0(:,ist),1,wfmt5,1) end do evecsv(jst,jst)=evecsv(jst,jst)+sdot(npc2,wfmt0(:,jst),1,wfmt5,1) if (spinpol) then j=jst+nstfv ! lower diagonal block call zcfmtwr(nrc,nrci,wrcmt(:,is),wfmt32,wfmt5) do ist=1,jst-1 i=ist+nstfv evecsv(i,j)=evecsv(i,j)+cdotc(npc,wfmt0(:,ist),1,wfmt5,1) end do evecsv(j,j)=evecsv(j,j)+sdot(npc2,wfmt0(:,jst),1,wfmt5,1) ! off-diagonal block if (todsb) then call zcfmtwr(nrc,nrci,wrcmt(:,is),wfmt33,wfmt5) do ist=1,nstfv evecsv(ist,j)=evecsv(ist,j)+cdotc(npc,wfmt0(:,ist),1,wfmt5,1) end do end if end if ! end loop over states end do !$OMP END DO ! end loop over atoms end do !$OMP END PARALLEL deallocate(wfmt0,wfmt1) !---------------------------! ! interstitial part ! !---------------------------! if (spinpol.or.tafield) then if (socz) todsb=.false. ngp2=ngp*2 allocate(wfgp0(ngp,nstfv)) !$OMP PARALLEL DEFAULT(SHARED) & !$OMP PRIVATE(wfir1,wfir2,wfgp1,wfgp2,wfgp3) & !$OMP PRIVATE(ist,jst,igp,t1,c1,i,j,k) & !$OMP NUM_THREADS(nthd) allocate(wfir1(ngtot),wfir2(ngtot)) ! make single-precision copy of wavefunction !$OMP DO do ist=1,nstfv wfgp0(1:ngp,ist)=evecfv(1:ngp,ist) end do !$OMP END DO ! begin loop over states !$OMP DO do jst=1,nstfv wfir1(:)=0.e0 do igp=1,ngp wfir1(igfft(igpig(igp)))=wfgp0(igp,jst) end do ! Fourier transform wavefunction to real-space call cfftifc(3,ngridg,1,wfir1) ! multiply with magnetic field and transform to G-space if (spinpol) then wfir2(1:ngtot)=bsir(1:ngtot,ndmag)*wfir1(1:ngtot) call cfftifc(3,ngridg,-1,wfir2) do igp=1,ngp wfgp1(igp)=wfir2(igfft(igpig(igp))) end do wfgp2(1:ngp)=-wfgp1(1:ngp) if (ncmag) then wfir2(1:ngtot)=cmplx(bsir(1:ngtot,1),-bsir(1:ngtot,2),8)*wfir1(1:ngtot) call cfftifc(3,ngridg,-1,wfir2) do igp=1,ngp wfgp3(igp)=wfir2(igfft(igpig(igp))) end do end if else wfgp1(1:ngp)=0.e0 end if ! apply vector potential if required if (tafield) then wfir1(:)=0.e0 do igp=1,ngp t1=a1*vgpc(1,igp)+a2*vgpc(2,igp)+a3*vgpc(3,igp) wfir1(igfft(igpig(igp)))=t1*wfgp0(igp,jst) end do call cfftifc(3,ngridg,1,wfir1) wfir1(1:ngtot)=wfir1(1:ngtot)*cfunir(1:ngtot) call cfftifc(3,ngridg,-1,wfir1) do igp=1,ngp c1=wfir1(igfft(igpig(igp))) wfgp1(igp)=wfgp1(igp)+c1 if (spinpol) wfgp2(igp)=wfgp2(igp)+c1 end do end if ! add to second-variational Hamiltonian matrix ! upper diagonal block do ist=1,jst-1 evecsv(ist,jst)=evecsv(ist,jst)+cdotc(ngp,wfgp0(:,ist),1,wfgp1,1) end do evecsv(jst,jst)=evecsv(jst,jst)+sdot(ngp2,wfgp0(:,jst),1,wfgp1,1) if (spinpol) then j=jst+nstfv ! lower diagonal block do ist=1,jst-1 i=ist+nstfv evecsv(i,j)=evecsv(i,j)+cdotc(ngp,wfgp0(:,ist),1,wfgp2,1) end do evecsv(j,j)=evecsv(j,j)+sdot(ngp2,wfgp0(:,jst),1,wfgp2,1) ! off-diagonal block if (todsb) then do ist=1,nstfv evecsv(ist,j)=evecsv(ist,j)+cdotc(ngp,wfgp0(:,ist),1,wfgp3,1) end do end if end if ! end loop over states end do !$OMP END DO deallocate(wfir1,wfir2) !$OMP END PARALLEL deallocate(wfgp0) end if call freethd(nthd) ! add the diagonal first-variational part do ispn=1,nspinor do ist=1,nstfv i=nstfv*(ispn-1)+ist evecsv(i,i)=evecsv(i,i)+evalfv(ist) end do end do if (spcpl.or.(.not.spinpol)) then ! spins are coupled; or spin-unpolarised: full diagonalisation call eveqnzh(nstsv,nstsv,evecsv,evalsvp) else ! spins not coupled: block diagonalise H call eveqnzh(nstfv,nstsv,evecsv,evalsvp) i=nstfv+1 call eveqnzh(nstfv,nstsv,evecsv(i,i),evalsvp(i)) do j=1,nstfv evecsv(nstfv+1:nstsv,j)=0.d0 evecsv(1:nstfv,nstfv+j)=0.d0 end do end if call timesec(ts1) !$OMP ATOMIC timesv=timesv+ts1-ts0 end subroutine elk-9.6.8/src/PaxHeaders/roteuler.f900000644000000000000000000000013214626155520014345 xustar0030 mtime=1717099344.238987753 30 atime=1717099342.151976509 30 ctime=1717099344.238987753 elk-9.6.8/src/roteuler.f900000644002504400250440000000536314626155520017076 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,1)*(rot(2,2)*rot(3,3)-rot(3,2)*rot(2,3)) & +rot(2,1)*(rot(3,2)*rot(1,3)-rot(1,2)*rot(3,3)) & +rot(3,1)*(rot(1,2)*rot(2,3)-rot(2,2)*rot(1,3)) if ((det < 1.d0-eps).or.(det > 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)) > eps).or.(abs(rot(3,2)) > eps)) then ang(1)=atan2(rot(3,2),rot(3,1)) if (abs(rot(3,1)) > 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) > 0.d0) then ang(2)=0.d0 ang(3)=0.d0 else ang(2)=pi ang(3)=pi end if end if end subroutine !EOC elk-9.6.8/src/PaxHeaders/genrmesh.f900000644000000000000000000000013214626155520014314 xustar0030 mtime=1717099344.240987764 30 atime=1717099342.154976525 30 ctime=1717099344.240987764 elk-9.6.8/src/genrmesh.f900000644002504400250440000001027114626155520017037 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,ir,irc,l real(8) t1 ! 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)) t1=dble(nrmt(is)-1)*t1 nrsp(is)=nint(t1)+1 nrspmax=max(nrspmax,nrsp(is)) end do ! compute and store (R_mt)ˡ if (allocated(rmtl)) deallocate(rmtl) allocate(rmtl(0:lmaxo+3,nspecies)) 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 ! 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)) if (allocated(wcrmt)) deallocate(wcrmt) allocate(wcrmt(12,nrmtmax,nspecies)) do is=1,nspecies t1=1.d0/dble(nrmt(is)-1) ! logarithmic mesh t1=t1*log(rmt(is)/rminsp(is)) do ir=1,nrsp(is) rsp(ir,is)=rminsp(is)*exp(dble(ir-1)*t1) end do ! calculate rˡ 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 rlmt(1:nr,l,is)=rlmt(1:nr,l+1,is)*rlmt(1:nr,-1,is) end do do l=2,lmaxo+2 rlmt(1:nr,l,is)=rlmt(1:nr,l-1,is)*rlmt(1:nr,1,is) end do ! determine the weights for spline integration on the fine radial mesh call wsplint(nr,rsp(:,is),wrmt(:,is)) ! multiply by r² 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)) ! determine the weights for the spline coefficients call wspline(nr,rsp(:,is),wcrmt(:,:,is)) end do ! determine the fraction of the muffin-tin radius which defines the inner part if (fracinr < 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)) if (allocated(wcrcmt)) deallocate(wcrcmt) allocate(wcrcmt(12,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) < t1) then nrmti(is)=ir nrcmti(is)=irc end if end do ! store rˡ 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² 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)) ! determine the weights for the spline coefficients call wspline(nrc,rcmt(:,is),wcrcmt(:,:,is)) end do ! write to VARIABLES.OUT if (wrtvars) then 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 end if end subroutine !EOC elk-9.6.8/src/PaxHeaders/splint.f900000644000000000000000000000013214626155520014015 xustar0030 mtime=1717099344.242987775 30 atime=1717099342.156976536 30 ctime=1717099344.242987775 elk-9.6.8/src/splint.f900000644002504400250440000000340514626155520016541 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), external :: polynm if (n <= 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))) end function elk-9.6.8/src/PaxHeaders/wavefcr.f900000644000000000000000000000013214626155520014141 xustar0030 mtime=1717099344.244987786 30 atime=1717099342.159976552 30 ctime=1717099344.244987786 elk-9.6.8/src/wavefcr.f900000644002504400250440000000547514626155520016676 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,is,ia,ist ! pass in m-1/2 integer, intent(in) :: m integer, intent(in) :: ld complex(4), 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 /= l+1).and.(k /= l)).or.(m < -k).or.(m > 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 > lmaxo) then wfcr(:,:)=0.e0 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 == l+1) then c1=t1 c2=t2 else c1=t2 c2=-t1 end if if (abs(m) <= l) then lm1=l*(l+1)+m+1 else lm1=0 end if if (abs(m+1) <= l) then lm2=l*(l+1)+m+2 else lm2=0 end if nr=nrmt(is) nri=nrmti(is) ! zero the wavefunction if (lrstp == 1) then wfcr(1:npmt(is),:)=0.e0 else if (lrstp == lradstp) then wfcr(1:npcmt(is),:)=0.e0 else write(*,*) write(*,'("Error(wavefcr): invalid lrstp : ",I8)') lrstp write(*,*) stop end if !----------------------------------! ! inner part of muffin-tin ! !----------------------------------! if (l > 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 > 0) wfcr(i1,1)=t0*c1 if (lm2 > 0) wfcr(i2,2)=t0*c2 i1=i1+lmmaxi i2=i2+lmmaxi else t1=t0*c1 t2=t0*c2 if (lm1 > 0) then do lm=1,lmmaxi wfcr(i+lm,1)=t1*zbshti(lm,lm1) end do end if if (lm2 > 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 == 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 > 0) wfcr(i1,1)=t0*c1 if (lm2 > 0) wfcr(i2,2)=t0*c2 i1=i1+lmmaxo i2=i2+lmmaxo else t1=t0*c1 t2=t0*c2 if (lm1 > 0) then do lm=1,lmmaxo wfcr(i+lm,1)=t1*zbshto(lm,lm1) end do end if if (lm2 > 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 end subroutine elk-9.6.8/src/PaxHeaders/lopzflm.f900000644000000000000000000000013214626155520014167 xustar0030 mtime=1717099344.246987796 30 atime=1717099342.161976563 30 ctime=1717099344.246987796 elk-9.6.8/src/lopzflm.f900000644002504400250440000000357114626155520016717 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 == -l) then zlflm(lm,1)=0.d0 zlflm(lm,2)=0.d0 end if if (m < 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 > -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 /= 0) then zlflm(lm,3)=dble(m)*zflm(lm) else zlflm(lm,3)=0.d0 end if end do end do end subroutine !EOC elk-9.6.8/src/PaxHeaders/brzint.f900000644000000000000000000000013214626155520014014 xustar0030 mtime=1717099344.248987807 30 atime=1717099342.164976579 30 ctime=1717099344.248987807 elk-9.6.8/src/brzint.f900000644002504400250440000001153714626155520016545 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) ! !USES: use modomp ! !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) ! Added parallelism, March 2020 (JKD) !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 nk,i1,i2,i3,j1,j2,j3,k1,k2,k3,i,iw,nthd integer i000,i001,i010,i011,i100,i101,i110,i111 real(8) wd,dw,dwi,w1,t1,t2 ! automatic arrays real(8) f0(n),f1(n),e0(n),e1(n) real(8) f00(n),f01(n),f10(n),f11(n) real(8) e00(n),e01(n),e10(n),e11(n) if ((ngridk(1) < 1).or.(ngridk(2) < 1).or.(ngridk(3) < 1)) then write(*,*) write(*,'("Error(brzint): ngridk < 1 : ",3I8)') ngridk write(*,*) stop end if if ((nsk(1) < 1).or.(nsk(2) < 1).or.(nsk(3) < 1)) then write(*,*) write(*,'("Error(brzint): nsk < 1 : ",3I8)') nsk write(*,*) stop end if ! total number of k-points nk=ngridk(1)*ngridk(2)*ngridk(3) ! length of interval wd=wint(2)-wint(1) ! energy step size dw=wd/dble(nw) dwi=1.d0/dw w1=wint(1)*dwi g(:)=0.d0 call holdthd(nk,nthd) !$OMP PARALLEL DEFAULT(SHARED) & !$OMP PRIVATE(f0,f1,e0,e1) & !$OMP PRIVATE(f00,f01,f10,f11) & !$OMP PRIVATE(e00,e01,e10,e11) & !$OMP PRIVATE(k1,k2,k3,i1,i2,i3) & !$OMP PRIVATE(i000,i001,i010,i011) & !$OMP PRIVATE(i100,i101,i110,i111) & !$OMP PRIVATE(t1,t2,i,iw) & !$OMP REDUCTION(+:g) & !$OMP NUM_THREADS(nthd) !$OMP DO COLLAPSE(3) do j1=0,ngridk(1)-1 do j2=0,ngridk(2)-1 do j3=0,ngridk(3)-1 k1=mod(j1+1,ngridk(1)) k2=mod(j2+1,ngridk(2)) 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 t1=t1*dwi t2=t2*dwi e00(:)=e(:,i000)*t1+e(:,i100)*t2-w1 e01(:)=e(:,i001)*t1+e(:,i101)*t2-w1 e10(:)=e(:,i010)*t1+e(:,i110)*t2-w1 e11(:)=e(:,i011)*t1+e(:,i111)*t2-w1 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 iw=nint(e0(i)*t1+e1(i)*t2)+1 if ((iw >= 1).and.(iw <= nw)) g(iw)=g(iw)+f0(i)*t1+f1(i)*t2 end do end do end do end do end do end do end do !$OMP END DO !$OMP END PARALLEL call freethd(nthd) ! normalise function t1=dw*dble(nk)*dble(nsk(1)*nsk(2)*nsk(3)) t1=1.d0/t1 g(:)=t1*g(:) ! smooth output function if required if (nsm > 0) call fsmooth(nsm,nw,g) end subroutine !EOC elk-9.6.8/src/PaxHeaders/rotdmat.f900000644000000000000000000000013214626155520014156 xustar0030 mtime=1717099344.250987818 30 atime=1717099342.166976589 30 ctime=1717099344.250987818 elk-9.6.8/src/rotdmat.f900000644002504400250440000000466614626155520016714 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,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), 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 > 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 == 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*U† and 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) end subroutine elk-9.6.8/src/PaxHeaders/genylmg.f900000644000000000000000000000013214626155520014146 xustar0030 mtime=1717099344.253987834 30 atime=1717099342.169976606 30 ctime=1717099344.253987834 elk-9.6.8/src/genylmg.f900000644002504400250440000000137414626155520016675 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, $4\pi(-i)^l 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(.true.,lmaxo,vgc(:,ig),ylmg(:,ig)) end do end subroutine !EOC elk-9.6.8/src/PaxHeaders/gentaucr.f900000644000000000000000000000013214626155520014314 xustar0030 mtime=1717099344.255987845 30 atime=1717099342.172976622 30 ctime=1717099344.255987845 elk-9.6.8/src/gentaucr.f900000644002504400250440000000345214626155520017042 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 complex(4), allocatable :: wfcr(:,:) complex(8), allocatable :: zfmt(:),gzfmt(:,:) taucr(:,:,:)=0.d0 call holdthd(natmtot,nthd) !$OMP PARALLEL DEFAULT(SHARED) & !$OMP PRIVATE(wfcr,zfmt,gzfmt) & !$OMP PRIVATE(is,ia,nr,nri,np) & !$OMP PRIVATE(ist,m,ispn,jspn,i) & !$OMP NUM_THREADS(nthd) allocate(wfcr(npmtmax,2),zfmt(npmtmax),gzfmt(npmtmax,3)) !$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 of the wavefunction zfmt(1:np)=wfcr(1:np,ispn) call gradzfmt(nr,nri,rlmt(:,-1,is),wcrmt(:,:,is),zfmt,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 ! convert core tau to spherical harmonics do ispn=1,nspinor call rfshtip(nr,nri,taucr(:,ias,ispn)) end do end do !$OMP END DO deallocate(wfcr,zfmt,gzfmt) !$OMP END PARALLEL call freethd(nthd) end subroutine elk-9.6.8/src/PaxHeaders/readinput.f900000644000000000000000000000013214626155520014477 xustar0030 mtime=1717099344.258987861 30 atime=1717099342.175976638 30 ctime=1717099344.258987861 elk-9.6.8/src/readinput.f900000644002504400250440000014526414626155520017235 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 modpw use modtddft use modulr use modvars use modgw use modbog use modw90 use modmpi use modomp use modramdisk ! !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 real(8) sc,sc1,sc2,sc3 real(8) scx,scy,scz real(8) scu,scu1,scu2,scu3 real(8) solscf,zn real(8) axang(4),rot(3,3) real(8) v(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 davec(:,:)=0.d0 sc=1.d0 sc1=1.d0 sc2=1.d0 sc3=1.d0 scx=1.d0 scy=1.d0 scz=1.d0 epslat=1.d-6 primcell=.false. tshift=.true. ngridk(:)=1 dngridk(:)=0 vkloff(:)=0.d0 autokpt=.false. radkpt=40.d0 reducek=1 ngridq(:)=-1 reduceq=1 rgkmax=7.d0 drgkmax=0.d0 gmaxvr=12.d0 dgmaxvr=0.d0 lmaxapw=8 dlmaxapw=0 lmaxo=6 dlmaxo=0 lmaxi=1 fracinr=0.01d0 trhonorm=.true. xctype(1)=3 xctype(2:3)=0 xctsp(1)=3 xctsp(2:3)=0 ktype(1)=52 ktype(2:3)=0 stype=3 swidth=0.001d0 autoswidth=.false. mstar=10.d0 epsocc=1.d-8 epschg=1.d-3 nempty0=4.d0 dnempty0=0.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=2.d-3 molecule=.false. nspecies=0 natoms(:)=0 atposl(:,:,:)=0.d0 datposl(:,:,:)=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 ip01d=1 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.2d0 deltast=0.005d0 latvopt=0 maxlatvstp=30 tau0latv=0.2d0 lradstp=4 chgexs=0.d0 dchgexs=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 dbfieldc0(:)=0.d0 efieldc(:)=0.d0 dmaxefc=1.d6 afieldc(:)=0.d0 fsmtype=0 momfix(:)=0.d0 dmomfix(:)=0.d0 mommtfix(:,:,:)=1.d6 taufsm=0.01d0 rmtdelta=0.05d0 isgkmax=-1 symtype=1 deltaph=0.01d0 nphwrt=1 if (allocated(vqlwrt)) deallocate(vqlwrt) allocate(vqlwrt(3,nphwrt)) vqlwrt(:,:)=0.d0 notelns=0 tforce=.false. maxitoep=400 tau0oep=0.1d0 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 lamdu(:)=0.d0 udufix(:)=0.d0 dudufix(:)=0.d0 tmwrite=.false. rdmxctype=2 rdmmaxscl=2 maxitn=200 maxitc=0 taurdmn=0.5d0 taurdmc=0.25d0 rdmalpha=0.656d0 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.1d6; wsfac(2)=1.1d6 vhmat(:,:)=0.d0 vhmat(1,1)=1.d0 vhmat(2,2)=1.d0 vhmat(3,3)=1.d0 reduceh=.true. hybrid0=.false. hybridc=1.d0 ecvcut=-3.5d0 esccut=-0.4d0 gmaxrf=3.d0 emaxrf=1.d6 ntemp=40 trimvg=.true. 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 hmaxvr=20.d0 hkmax=12.d0 lorbcnd=.false. lorbordc=3 nrmtscf=1.d0 dnrmtscf=0.d0 lmaxdos=3 epsdev=0.0025d0 npmae0=-1 wrtvars=.false. ftmtype=0 ntmfix=0 tauftm=0.1d0 cmagz=.false. axang(:)=0.d0 dncgga=1.d-8 tstime=1000.d0 dtimes=0.1d0 npulse=0 nramp=0 nstep=0 ntswrite(1)=500 ntswrite(2)=1 nxoapwlo=0 nxlo=0 tdrho1d=.false. tdrho2d=.false. tdrho3d=.false. tdmag1d=.false. tdmag2d=.false. tdmag3d=.false. tdjr1d=.false. tdjr2d=.false. tdjr3d=.false. tddos=.false. tdlsj=.false. tdjtk=.false. rndevt0=0.d0 sxcscf=1.d0 dsxcscf=0.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. wmaxgw=-10.d0 twdiag=.false. tsediag=.false. actype=10 npole=3 nspade=100 tfav0=.true. mrmtav=0 rmtall=-1.d0 maxthd=0 maxthd1=0 maxthdmkl=0 maxlvl=4 tdphi=0.d0 thetamld=45.d0*pi/180.d0 ntsbackup=0 ! Wannier90 variables seedname='wannier' num_wann=0 num_bands=0 num_iter=500 dis_num_iter=500 trial_step=1.d-3 nxlwin=0 wrtunk=.false. tbdip=.false. tjr=.false. tauefm=0.01d0 epsefm=1.d-6 ehfb=1.d0 t0gclq0=.false. tafindt=.false. afindpm(:)=0.d0 afindpm(2)=1.d0 nkspolar=4 ntsforce=100 wphcut=1.d-6 ephscf(1)=8.d0 ephscf(2)=0.02d0 anomalous=.false. tephde=.false. bdiag=.false. ecutb=0.001d0 ediag=.false. pwxpsn=2 ramdisk=.true. wrtdsk=.true. epsdmat=1.d-8 tm3old=.false. batch=.false. tafspt=.false. trdatdv=.false. atdfc=0.d0 maxforce=-1.d0 msmgmt=4 epsdres=1.d-9 ntsorth=1000 deltabf=0.5d0 jtconst0=.false. trmt0=.true. ksgwrho=.false. !--------------------------! ! read from elk.in ! !--------------------------! open(50,file='elk.in',status='OLD',form='FORMATTED',iostat=ios) if (ios /= 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),'!') == 1).or.(scan(trim(block),'#') == 1)) goto 10 select case(trim(block)) case('tasks') do i=1,maxtasks read(50,'(A)',err=20) str if (trim(str) == '') then if (i == 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 /= 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,'(A)',err=20) str if (trim(str) == '') goto 10 read(str,*,iostat=ios) zn,symb if (ios /= 0) then write(*,*) write(*,'("Error(readinput): error reading fractional species")') write(*,'("(blank line required after fspecies block)")') write(*,*) stop end if if (zn > 0.d0) then write(*,*) write(*,'("Error(readinput): fractional nuclear Z > 0 : ",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,'(A)',err=20) str read(str,*,err=20) avec(:,1) read(str,*,iostat=ios) avec(:,1),davec(:,1) read(50,'(A)',err=20) str read(str,*,err=20) avec(:,2) read(str,*,iostat=ios) avec(:,2),davec(:,2) read(50,'(A)',err=20) str read(str,*,err=20) avec(:,3) read(str,*,iostat=ios) avec(:,3),davec(:,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('scalex') read(50,*,err=20) scx case('scaley') read(50,*,err=20) scy case('scalez') read(50,*,err=20) scz case('epslat') read(50,*,err=20) epslat if (epslat <= 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 <= 0.d0) then write(*,*) write(*,'("Error(readinput): radkpt <= 0 : ",G18.10)') radkpt write(*,*) stop end if case('ngridk') read(50,'(A)',err=20) str read(str,*,err=20) ngridk(:) read(str,*,iostat=ios) ngridk(:),dngridk(:) if (any(ngridk(:) <= 0)) then write(*,*) write(*,'("Error(readinput): invalid ngridk : ",3I8)') ngridk write(*,*) stop end if autokpt=.false. case('vkloff') read(50,*,err=20) vkloff(:) if (any(vkloff(:) < 0.d0).or.any(vkloff(:) >= 1.d0)) then write(*,*) write(*,'("Error(readinput): vkloff components should be in [0,1) : ",& &3G18.10)') vkloff write(*,*) stop end if case('reducek') read(50,*,err=20) reducek case('ngridq') read(50,*,err=20) ngridq(:) if (any(ngridq(:) <= 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,'(A)',err=20) str read(str,*,err=20) rgkmax read(str,*,iostat=ios) rgkmax,drgkmax if (rgkmax <= 0.d0) then write(*,*) write(*,'("Error(readinput): rgkmax <= 0 : ",G18.10)') rgkmax write(*,*) stop end if case('gmaxvr') read(50,'(A)',err=20) str read(str,*,err=20) gmaxvr read(str,*,iostat=ios) gmaxvr,dgmaxvr case('lmaxapw') read(50,'(A)',err=20) str read(str,*,err=20) lmaxapw read(str,*,iostat=ios) lmaxapw,dlmaxapw if (lmaxapw < 0) then write(*,*) write(*,'("Error(readinput): lmaxapw < 0 : ",I8)') lmaxapw write(*,*) stop end if if (lmaxapw >= 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,'(A)',err=20) str read(str,*,err=20) lmaxo read(str,*,iostat=ios) lmaxo,dlmaxo if (lmaxo < 3) then write(*,*) write(*,'("Error(readinput): lmaxo < 3 : ",I8)') lmaxo write(*,*) stop end if case('lmaxi','lmaxinr') read(50,*,err=20) lmaxi if (lmaxi < 1) then write(*,*) write(*,'("Error(readinput): lmaxi < 1 : ",I8)') lmaxi write(*,*) stop end if case('lmaxmat') read(50,*,err=20) 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 < 0.d0) then write(*,*) write(*,'("Error(readinput): socscf < 0 : ",G18.10)') socscf write(*,*) stop end if case('xctype') read(50,'(A)',err=20) str str=trim(str)//' 0 0' read(str,*,err=20) xctype case('xctsp') read(50,'(A)',err=20) str str=trim(str)//' 0 0' read(str,*,err=20) xctsp case('ktype') read(50,'(A)',err=20) str str=trim(str)//' 0 0' read(str,*,err=20) ktype if (ktype(3) /= 0) then write(*,*) write(*,'("Error(readinput): ktype(3) should be zero : ",I8)') ktype(3) write(*,*) stop end if case('stype') read(50,*,err=20) stype case('swidth') read(50,*,err=20) swidth if (swidth < 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 <= 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 <= 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 <= 0.d0) then write(*,*) write(*,'("Error(readinput): epschg <= 0 : ",G18.10)') epschg write(*,*) stop end if case('nempty','nempty0') read(50,'(A)',err=20) str read(str,*,err=20) nempty0 read(str,*,iostat=ios) nempty0,dnempty0 if (nempty0 <= 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) == 'amixpm') then read(50,*,err=20) amixpm(:) else if (trim(block) == 'beta0') then read(50,*,err=20) amixpm(1) else read(50,*,err=20) amixpm(2) end if if (amixpm(1) < 0.d0) then write(*,*) write(*,'("Error(readinput): beta0 [amixpm(1)] < 0 : ",G18.10)') amixpm(1) write(*,*) stop end if if ((amixpm(2) < 0.d0).or.(amixpm(2) > 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 < 2) then write(*,*) write(*,'("Error(readinput): mixsdb < 2 : ",I8)') mixsdb write(*,*) stop end if case('broydpm') read(50,*,err=20) broydpm(:) if ((broydpm(1) < 0.d0).or.(broydpm(1) > 1.d0).or. & (broydpm(2) < 0.d0).or.(broydpm(2) > 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 < 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 <= 0) then write(*,*) write(*,'("Error(readinput): nspecies <= 0 : ",I8)') nspecies write(*,*) stop end if if (nspecies > 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) <= 0) then write(*,*) write(*,'("Error(readinput): natoms <= 0 : ",I8)') natoms(is) write(*,'(" for species ",I4)') is write(*,*) stop end if if (natoms(is) > 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,'(A)',err=20) str read(str,*,err=20) atposl(:,ia,is) read(str,*,iostat=ios) atposl(:,ia,is),bfcmt0(:,ia,is),datposl(:,ia,is) end do end do case('plot1d') read(50,*,err=20) nvp1d,npp1d if (nvp1d < 1) then write(*,*) write(*,'("Error(readinput): nvp1d < 1 : ",I8)') nvp1d write(*,*) stop end if if (npp1d < 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('ip01d') read(50,*,err=20) ip01d if (ip01d < 1) then write(*,*) write(*,'("Error(readinput): ip01d < 1 : ",I8)') ip01d write(*,*) stop end if 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) < 1).or.(np2d(2) < 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) < 1).or.(np3d(2) < 1).or.(np3d(3) < 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 < 2) then write(*,*) write(*,'("Error(readinput): nwplot < 2 : ",I8)') nwplot write(*,*) stop end if if (ngrkf < 1) then write(*,*) write(*,'("Error(readinput): ngrkf < 1 : ",I8)') ngrkf write(*,*) stop end if if (nswplot < 0) then write(*,*) write(*,'("Error(readinput): nswplot < 0 : ",I8)') nswplot write(*,*) stop end if read(50,*,err=20) wplot(:) if (wplot(1) > 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 <= 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 <= 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 <= 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(*,'("Info(readinput): variable ''nstfsp'' is no longer used")') case('lradstp') read(50,*,err=20) lradstp if (lradstp <= 0) then write(*,*) write(*,'("Error(readinput): lradstp <= 0 : ",I8)') lradstp write(*,*) stop end if case('chgexs') read(50,'(A)',err=20) str read(str,*,err=20) chgexs read(str,*,iostat=ios) chgexs,dchgexs case('nprad') read(50,*,err=20) write(*,'("Info(readinput): variable ''nprad'' is no longer used")') case('scissor') read(50,*,err=20) scissor case('optcomp') do i=1,27 read(50,'(A)',err=20) str if (trim(str) == '') then if (i == 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 /= 0) then write(*,*) write(*,'("Error(readinput): error reading optical component list")') write(*,'("(blank line required after optcomp block)")') write(*,*) stop end if if (any(optcomp(:,i) < 1).or.any(optcomp(:,i) > 3)) then write(*,*) write(*,'("Error(readinput): invalid optcomp : ",3I8)') optcomp(:,i) 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(*,'("Info(readinput): variable ''deband'' is no longer used")') case('epsband') read(50,*,err=20) epsband if (epsband <= 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 <= 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) < 1.d-8) then write(*,*) write(*,'("Error(readinput): invalid deapwlo : ",G18.10)') deapwlo write(*,*) stop end if case('bfieldc') read(50,'(A)',err=20) str read(str,*,err=20) bfieldc0(:) read(str,*,iostat=ios) bfieldc0(:),dbfieldc0(:) case('efieldc') read(50,*,err=20) efieldc(:) case('dmaxefc') read(50,*,err=20) dmaxefc if (dmaxefc < 0) then write(*,*) write(*,'("Error(readinput): dmaxefc < 0 : ",G18.10)') dmaxefc write(*,*) stop end if case('afieldc') read(50,*,err=20) afieldc(:) case('fsmtype','fixspin') read(50,*,err=20) fsmtype case('momfix') read(50,'(A)',err=20) str read(str,*,err=20) momfix(:) read(str,*,iostat=ios) momfix(:),dmomfix(:) case('mommtfix') do ias=1,maxspecies*maxatoms read(50,'(A)',err=20) str if (trim(str) == '') goto 10 read(str,*,iostat=ios) is,ia,mommtfix(:,ia,is) if (ios /= 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 < 0.d0) then write(*,*) write(*,'("Error(readinput): taufsm < 0 : ",G18.10)') taufsm write(*,*) stop end if case('autormt') read(50,*,err=20) write(*,'("Info(readinput): variable ''autormt'' is no longer used")') case('rmtdelta') read(50,*,err=20) rmtdelta if (rmtdelta < 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 < 0).or.(symtype > 2)) then write(*,*) write(*,'("Error(readinput): symtype not defined : ",I8)') symtype write(*,*) stop end if case('deltaph') read(50,*,err=20) deltaph if (deltaph <= 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 <= 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,'(A)') str if (trim(str) == '') goto 10 notes=[notes(1:notelns),str] notelns=notelns+1 end do case('tforce') read(50,*,err=20) tforce case('tfibs') read(50,*,err=20) write(*,'("Info(readinput): variable ''tfibs'' is no longer used")') case('maxitoep') read(50,*,err=20) maxitoep if (maxitoep < 1) then write(*,*) write(*,'("Error(readinput): maxitoep < 1 : ",I8)') maxitoep write(*,*) stop end if case('tauoep') read(50,*,err=20) write(*,'("Info(readinput): variable ''tauoep'' is no longer used")') case('tau0oep') read(50,*,err=20) tau0oep if (tau0oep < 0.d0) then write(*,*) write(*,'("Error(readinput): tau0oep < 0 : ",G18.10)') tau0oep write(*,*) stop end if case('kstlist') do i=1,maxkst read(50,'(A)',err=20) str if (trim(str) == '') then if (i == 1) then write(*,*) write(*,'("Error(readinput): empty k-point and state list")') write(*,*) stop end if nkstlist=i-1 goto 10 end if str=trim(str)//' 1' read(str,*,iostat=ios) kstlist(:,i) if (ios /= 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 if (deltaem <= 0.d0) then write(*,*) write(*,'("Error(readinput): deltaem <= 0 : ",G18.10)') deltaem write(*,*) stop end if case('ndspem') read(50,*,err=20) ndspem if ((ndspem < 1).or.(ndspem > 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,'(A)',err=20) str if (trim(str) == '') 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,lamdu(i) case(5) read(str,*,iostat=ios) is,l,udufix(i),dudufix(i) read(str,*,iostat=ios) is,l,udufix(i) case default write(*,*) write(*,'("Error(readinput): invalid inpdftu : ",I8)') inpdftu write(*,*) stop end select if (ios /= 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 <= 0).or.(is >= maxspecies)) then write(*,*) write(*,'("Error(readinput): invalid species number in dft+u block : ", & &I8)') is write(*,*) stop end if if (l < 0) then write(*,*) write(*,'("Error(readinput): l < 0 in dft+u block : ",I8)') l write(*,*) stop end if if (l > 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 == isldu(1,j)).and.(l == isldu(2,j))) then write(*,*) write(*,'("Error(readinput): repeated entry in DFT+U block")') write(*,*) stop end if end do isldu(1,i)=is isldu(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) write(*,'("Info(readinput): variable ''readadu'' is no longer used")') case('rdmxctype') read(50,*,err=20) rdmxctype case('rdmmaxscl') read(50,*,err=20) rdmmaxscl if (rdmmaxscl < 0) then write(*,*) write(*,'("Error(readinput): rdmmaxscl < 0 : ",I8)') rdmmaxscl write(*,*) end if case('maxitn') read(50,*,err=20) maxitn case('maxitc') read(50,*,err=20) maxitc case('taurdmn') read(50,*,err=20) taurdmn if (taurdmn < 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 < 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 <= 0.d0).or.(rdmalpha >= 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 < 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 < 0.49d0).or.(reducebf > 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 < 1) then write(*,*) write(*,'("Error(readinput): minitefv < 1 : ",I8)') minitefv write(*,*) stop end if case('maxitefv','maxseqit') read(50,*,err=20) maxitefv if (maxitefv < 1) then write(*,*) write(*,'("Error(readinput): maxitefv < 1 : ",I8)') maxitefv write(*,*) stop end if case('befvit','bseqit') read(50,*,err=20) befvit if (befvit <= 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 < 0.d0) then write(*,*) write(*,'("Error(readinput): epsefvit < 0 : ",G18.10)') epsefvit write(*,*) stop end if case('nseqit') read(50,*,err=20) write(*,'("Info(readinput): variable ''nseqit'' is no longer used")') case('tauseq') read(50,*,err=20) 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(*,'("Info(readinput): variable ''frozencr'' is no longer used")') case('spincore') read(50,*,err=20) spincore case('solscf') read(50,*,err=20) solscf if (solscf < 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) hybrid0 case('hybridc','hybmix') read(50,*,err=20) hybridc if ((hybridc < 0.d0).or.(hybridc > 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 < 0) then write(*,*) write(*,'("Error(readinput): nvbse < 0 : ",I8)') nvbse0 write(*,*) stop end if case('ncbse') read(50,*,err=20) ncbse0 if (ncbse0 < 0) then write(*,*) write(*,'("Error(readinput): ncbse < 0 : ",I8)') ncbse0 write(*,*) stop end if case('istxbse') do i=1,maxxbse read(50,'(A)',err=20) str if (trim(str) == '') then if (i == 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 /= 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,'(A)',err=20) str if (trim(str) == '') then if (i == 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 /= 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 < 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 < 0.d0) then write(*,*) write(*,'("Error(readinput): emaxrf < 0 : ",G18.10)') emaxrf write(*,*) stop end if case('fxctype') read(50,'(A)',err=20) str str=trim(str)//' 0 0' read(str,*,err=20) fxctype case('fxclrc') read(50,'(A)',err=20) str str=trim(str)//' 0.0' read(str,*,err=20) fxclrc(:) case('ntemp') read(50,*,err=20) ntemp if (ntemp < 1) then write(*,*) write(*,'("Error(readinput): ntemp < 1 : ",I8)') ntemp write(*,*) stop end if case('trimvg') read(50,*,err=20) trimvg case('rndstate','rndseed') read(50,*,err=20) rndstate(0) rndstate(0)=abs(rndstate(0)) case('rndatposc') read(50,*,err=20) rndatposc case('rndbfcmt') read(50,*,err=20) rndbfcmt case('rndavec') read(50,*,err=20) rndavec case('c_tb09') read(50,*,err=20) write(*,'("Info(readinput): variable ''c_tb09'' is no longer used")') case('lowq','highq','vhighq','uhighq') read(50,*,err=20) lv if (lv) then if (trim(block) == '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 epsstress=3.d-3 autolinengy=.true. gmaxrf=2.5d0 lradstp=6 else if (trim(block) == 'highq') then ! parameter set for high-quality calculation rgkmax=max(rgkmax,8.d0) gmaxvr=max(gmaxvr,16.d0) 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,5.d-4) epsstress=min(epsstress,1.d-3) autolinengy=.true. gmaxrf=max(gmaxrf,4.d0) else if (trim(block) == 'vhighq') then ! parameter set for very high-quality calculation rgkmax=max(rgkmax,9.d0) gmaxvr=max(gmaxvr,18.d0) lmaxapw=max(lmaxapw,12) 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,2.d-4) epsstress=min(epsstress,5.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) lmaxapw=max(lmaxapw,14) 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) epsstress=min(epsstress,2.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(*,'(" 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(*,'(" epsstress : ",G18.10)') epsstress write(*,'(" autolinengy : ",L1)') autolinengy write(*,'(" gmaxrf : ",G18.10)') gmaxrf if (trim(block) == 'lowq') then write(*,'(" lradstp : ",I4)') lradstp end if end if end if case('hmaxvr') read(50,*,err=20) hmaxvr if (hmaxvr < 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 <= 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 < 2) then write(*,*) write(*,'("Error(readinput): lorbordc < 2 : ",I8)') lorbordc write(*,*) stop end if if (lorbordc > 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,'(A)',err=20) str read(str,*,err=20) nrmtscf read(str,*,iostat=ios) nrmtscf,dnrmtscf if (nrmtscf < 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 < 0) then write(*,*) write(*,'("Error(readinput): lmaxdos < 0 : ",I8)') lmaxdos write(*,*) stop end if case('epsdev') read(50,*,err=20) epsdev if (epsdev <= 0.d0) then write(*,*) write(*,'("Error(readinput): epsdev <= 0 : ",G18.10)') epsdev write(*,*) stop end if case('msmooth') read(50,*,err=20) write(*,'("Info(readinput): variable ''msmooth'' is no longer used")') write(*,'(" setting trimvg to .true. instead")') trimvg=.true. case('npmae') read(50,*,err=20) npmae0 case('wrtvars') read(50,*,err=20) wrtvars case('ftmtype') read(50,*,err=20) ftmtype case('tmomfix') write(*,*) write(*,'("Error(readinput): variable ''tmomfix'' is no longer used")') write(*,'(" use tm3fix instead")') write(*,*) stop case('tm3fix') read(50,*,err=20) ntmfix if (ntmfix <= 0) then write(*,*) write(*,'("Error(readinput): ntmfix <= 0 : ",I8)') ntmfix write(*,*) stop end if if (allocated(itmfix)) deallocate(itmfix) allocate(itmfix(7,ntmfix)) if (allocated(wkprfix)) deallocate(wkprfix) allocate(wkprfix(ntmfix)) do i=1,ntmfix read(50,*,err=20) is,ia,l if ((is <= 0).or.(ia <= 0).or.(l < 0)) then write(*,*) write(*,'("Error(readinput): invalid is, ia or l in tm3fix block : ",& &4I8)') is,ia,l write(*,*) stop end if itmfix(1,i)=is itmfix(2,i)=ia itmfix(3,i)=l ! read k, p, r, t for the 3-index tensor read(50,*,err=20) itmfix(4:7,i) ! read 3-index tensor component with conventional normalisation read(50,*,err=20) wkprfix(i) end do case('tauftm') read(50,*,err=20) tauftm if (tauftm < 0.d0) then write(*,*) write(*,'("Error(readinput): tauftm < 0 : ",G18.10)') tauftm write(*,*) stop end if case('ftmstep') read(50,*,err=20) write(*,'("Info(readinput): variable ''ftmstep'' is no longer used")') case('cmagz','forcecmag') read(50,*,err=20) cmagz case('rotavec') read(50,*,err=20) axang(:) case('tstime') read(50,*,err=20) tstime if (tstime < 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 <= 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 < 1) then write(*,*) write(*,'("Error(readinput): npulse < 1 : ",I8)') npulse write(*,*) stop end if if (allocated(pulse)) deallocate(pulse) allocate(pulse(12,npulse)) do i=1,npulse read(50,'(A)',err=20) str str=trim(str)//' 1.0 0.0 0.0 0.0' read(str,*,err=20) pulse(:,i) end do case('ramp') read(50,*,err=20) nramp if (nramp < 1) then write(*,*) write(*,'("Error(readinput): nramp < 1 : ",I8)') nramp write(*,*) stop end if if (allocated(ramp)) deallocate(ramp) allocate(ramp(12,nramp)) do i=1,nramp read(50,'(A)',err=20) str str=trim(str)//' 1.0 0.0 0.0 0.0' read(str,*,err=20) ramp(:,i) end do case('step') read(50,*,err=20) nstep if (nstep < 1) then write(*,*) write(*,'("Error(readinput): nstep < 1 : ",I8)') nstep write(*,*) stop end if if (allocated(step)) deallocate(step) allocate(step(9,nstep)) do i=1,nstep read(50,'(A)',err=20) str str=trim(str)//' 1.0 0.0 0.0 0.0' read(str,*,err=20) step(:,i) end do case('ncgga') read(50,*,err=20) write(*,'("Info(readinput): variable ''ncgga'' is no longer used")') case('dncgga') read(50,*,err=20) dncgga if (dncgga < 0.d0) then write(*,*) write(*,'("Error(readinput): dncgga < 0 : ",G18.10)') dncgga write(*,*) stop end if case('ntswrite') read(50,'(A)',err=20) str str=trim(str)//' 1' read(str,*,err=20) ntswrite(:) case('nxoapwlo','nxapwlo') read(50,*,err=20) nxoapwlo if (nxoapwlo < 0) then write(*,*) write(*,'("Error(readinput): nxoapwlo < 0 : ",I8)') nxoapwlo write(*,*) stop end if case('nxlo') read(50,*,err=20) nxlo if (nxlo < 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('tdmag1d') read(50,*,err=20) tdmag1d case('tdmag2d') read(50,*,err=20) tdmag2d case('tdmag3d') read(50,*,err=20) tdmag3d case('tdjr1d','tdcd1d') read(50,*,err=20) tdjr1d case('tdjr2d','tdcd2d') read(50,*,err=20) tdjr2d case('tdjr3d','tdcd3d') read(50,*,err=20) tdjr3d case('tddos') read(50,*,err=20) tddos case('tdlsj') read(50,*,err=20) tdlsj case('tdjtk') read(50,*,err=20) tdjtk case('epseph') read(50,*,err=20) write(*,'("Info(readinput): variable ''epseph'' is no longer used")') case('rndevt0') read(50,*,err=20) rndevt0 case('sxcscf','ssxc','rstsf') read(50,'(A)',err=20) str read(str,*,err=20) sxcscf read(str,*,iostat=ios) sxcscf,dsxcscf case('tempk') read(50,*,err=20) tempk if (tempk <= 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 < 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) write(*,'("Info(readinput): variable ''evtype'' is no longer used")') 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 <= 0) then write(*,*) write(*,'("Error(readinput): npole <= 0 : ",I8)') npole write(*,*) stop end if case('nspade') read(50,*,err=20) nspade if (nspade <= 0) then write(*,*) write(*,'("Error(readinput): nspade <= 0 : ",I8)') nspade write(*,*) stop end if case('tfav0') read(50,*,err=20) tfav0 case('mrmtav') read(50,*,err=20) mrmtav 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 < 1) then write(*,*) write(*,'("Error(readinput): maxlvl < 1 : ",I8)') maxlvl write(*,*) stop end if case('stable') read(50,*,err=20) lv if (lv) then trimvg=.true. autolinengy=.true. mrmtav=1 lmaxapw=max(lmaxapw,10) gmaxvr=max(gmaxvr,24.d0) msmgmt=max(msmgmt,8) if (mp_mpi) then write(*,*) write(*,'("Info(readinput): parameters set by stable option")') write(*,'(" trimvg : ",L1)') trimvg write(*,'(" autolinengy : ",L1)') autolinengy write(*,'(" mrmtav : ",I4)') mrmtav write(*,'(" lmaxapw : ",I4)') lmaxapw write(*,'(" gmaxvr : ",G18.10)') gmaxvr write(*,'(" msmgmt : ",I4)') msmgmt end if end if case('metagga') read(50,*,err=20) lv if (lv) then lmaxi=max(lmaxi,2) gmaxvr=max(gmaxvr,16.d0) nrmtscf=max(nrmtscf,3.d0) msmgmt=max(msmgmt,8) epspot=1.d6 epsengy=min(epsengy,1.d-6) if (mp_mpi) then write(*,*) write(*,'("Info(readinput): parameters set by metagga option")') write(*,'(" lmaxi : ",I4)') lmaxi write(*,'(" gmaxvr : ",G18.10)') gmaxvr write(*,'(" nrmtscf : ",G18.10)') nrmtscf write(*,'(" msmgmt : ",I4)') msmgmt write(*,'(" epspot : ",G18.10)') epspot write(*,'(" epsengy : ",G18.10)') epsengy end if end if case('t0tdlr') read(50,*,err=20) write(*,'("Info(readinput): variable ''t0tdlr'' is no longer used")') 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,'(A)',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('dis_num_iter') read(50,*,err=20) dis_num_iter case('trial_step') read(50,*,err=20) trial_step case('xlwin','wannierExtra') if (allocated(xlwin)) deallocate(xlwin) allocate(xlwin(0)) nxlwin=0 do read(50,'(A)',err=20) str if (trim(str) == '') goto 10 xlwin=[xlwin(1:nxlwin),str] nxlwin=nxlwin+1 end do case('wrtunk') read(50,*,err=20) wrtunk case('tbdip') read(50,*,err=20) tbdip case('tjr','tcden') read(50,*,err=20) tjr case('tauefm') read(50,*,err=20) tauefm case('epsefm') read(50,*,err=20) epsefm case('ehfb') read(50,*,err=20) ehfb case('t0gclq0') read(50,*,err=20) t0gclq0 case('tafindt') read(50,*,err=20) tafindt case('afindscf') read(50,*,err=20) write(*,'("Info(readinput): variable ''afindscf'' is no longer used")') case('afindpm') read(50,*,err=20) afindpm(:) if (afindpm(2) == 0.d0) then write(*,*) write(*,'("Error(readinput): afindpm(2) = 0")') write(*,*) stop end if case('nkspolar') read(50,*,err=20) nkspolar if (nkspolar < 1) then write(*,*) write(*,'("Error(readinput): nkspolar < 1 : ",I8)') nkspolar write(*,*) stop end if case('ntsforce') read(50,*,err=20) ntsforce if (ntsforce < 1) then write(*,*) write(*,'("Error(readinput): ntsforce < 1 : ",I8)') ntsforce write(*,*) stop end if case('wphcut') read(50,*,err=20) wphcut if (wphcut <= 0.d0) then write(*,*) write(*,'("Error(readinput): wphcut <= 0 : ",G18.10)') wphcut write(*,*) stop end if case('ephscf') read(50,*,err=20) ephscf(:) case('anomalous') read(50,*,err=20) anomalous case('tephde') read(50,*,err=20) tephde case('bdiag') read(50,*,err=20) bdiag case('ecutb') read(50,*,err=20) ecutb if (ecutb <= 0.d0) then write(*,*) write(*,'("Error(readinput): ecutb <= 0 : ",G18.10)') ecutb write(*,*) stop end if case('ediag') read(50,*,err=20) ediag case('pwxpsn') read(50,*,err=20) pwxpsn if (pwxpsn < 1) then write(*,*) write(*,'("Error(readinput): pwxpsn < 1 : ",I8)') pwxpsn write(*,*) stop end if case('ramdisk') read(50,*,err=20) ramdisk case('wrtdsk') read(50,*,err=20) wrtdsk case('epsdmat') read(50,*,err=20) epsdmat case('tm3old') read(50,*,err=20) tm3old case('batch') read(50,*,err=20) batch case('tafspt') read(50,*,err=20) tafspt case('trdatdv') read(50,*,err=20) trdatdv case('atdfc') read(50,*,err=20) atdfc if (atdfc < 0.d0) then write(*,*) write(*,'("Error(readinput): atdfc < 0 : ",G18.10)') atdfc write(*,*) stop end if case('maxforce') read(50,*,err=20) maxforce case('msmgmt','msmg2mt') read(50,*,err=20) msmgmt case('epsdres') read(50,*,err=20) epsdres case('ntsorth') read(50,*,err=20) ntsorth case('deltabf') read(50,*,err=20) deltabf if (deltabf <= 0.d0) then write(*,*) write(*,'("Error(readinput): deltabf <= 0 : ",G18.10)') deltabf write(*,*) stop end if case('jtconst0') read(50,*,err=20) jtconst0 case('trmt0') read(50,*,err=20) trmt0 case('ksgwrho') read(50,*,err=20) ksgwrho 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(:,:)=sc*avec(:,:) avec(:,1)=sc1*avec(:,1) avec(:,2)=sc2*avec(:,2) avec(:,3)=sc3*avec(:,3) avec(1,:)=scx*avec(1,:) avec(2,:)=scy*avec(2,:) avec(3,:)=scz*avec(3,:) t1=axang(4) if (t1 /= 0.d0) then t1=t1*pi/180.d0 call axangrot(axang(:),t1,rot) do i=1,3 v(:)=avec(:,i) call r3mv(rot,v,avec(:,i)) end do end if ! randomise lattice vectors if required if (rndavec > 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),v) atposl(:,ia,is)=v(:) end do end do end if ! randomise atomic positions if required if (rndatposc > 0.d0) then call r3minv(avec,ainv) do is=1,nspecies do ia=1,natoms(is) call r3mv(avec,atposl(:,ia,is),v) do i=1,3 t1=rndatposc*(randomu()-0.5d0) v(i)=v(i)+t1 end do call r3mv(ainv,v,atposl(:,ia,is)) end do end do end if ! randomise the muffin-tin magnetic fields if required if (rndbfcmt > 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) == -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 end subroutine !EOC elk-9.6.8/src/PaxHeaders/numlist.f900000644000000000000000000000013214626155520014177 xustar0030 mtime=1717099344.261987877 30 atime=1717099342.178976654 30 ctime=1717099344.261987877 elk-9.6.8/src/numlist.f900000644002504400250440000000156414626155520016727 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 == 0) then i1=256 else i1=i0+m-2 end if l(:)=0 read(str(i0:i1),*,iostat=ios) l if (i > 0) then do j=list(i)+1,l(1)-1 if (i == n) goto 10 i=i+1 list(i)=j end do end if do j=1,n if (l(j) == 0) exit if (i == n) goto 10 i=i+1 list(i)=l(j) end do if (m == 0) exit i0=i0+m end do 10 continue n=i end subroutine elk-9.6.8/src/PaxHeaders/hermite.f900000644000000000000000000000013114626155520014140 xustar0030 mtime=1717099344.263987888 29 atime=1717099342.18197667 30 ctime=1717099344.263987888 elk-9.6.8/src/hermite.f900000644002504400250440000000266114626155520016670 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: hermite ! !INTERFACE: real(8) function hermite(n,x) ! !INPUT/OUTPUT PARAMETERS: ! n : order of Hermite polynomial (in,integer) ! x : real argument (in,real) ! !DESCRIPTION: ! Returns the $n$th Hermite polynomial. The recurrence relation ! $$ H_i(x)=2xH_{i-1}(x)-2nH_{i-2}(x), $$ ! with $H_0=1$ and $H_1=2x$, is used. This procedure is numerically stable ! and accurate to near machine precision for $n\le 20$. ! ! !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) h1,h2,ht ! fast return if possible if (n == 0) then hermite=1.d0 return else if (n == 1) then hermite=2.d0*x return else if (n == 2) then hermite=4.d0*x**2-2.d0 return end if if (n < 0) then write(*,*) write(*,'("Error(hermite): n < 0 : ",I8)') n write(*,*) stop end if if (n > 20) then write(*,*) write(*,'("Error(hermite): n out of range : ",I8)') n write(*,*) stop end if if (abs(x) > 1.d15) then write(*,*) write(*,'("Error(hermite): x out of range : ",G18.10)') x write(*,*) stop end if h1=2.d0*x h2=1.d0 do i=2,n ht=2.d0*(x*h1-dble(i-1)*h2) h2=h1 h1=ht end do hermite=h1 end function !EOC elk-9.6.8/src/PaxHeaders/genfspecies.f900000644000000000000000000000013214626155520014777 xustar0030 mtime=1717099344.265987899 30 atime=1717099342.183976681 30 ctime=1717099344.265987899 elk-9.6.8/src/genfspecies.f900000644002504400250440000000644214626155520017527 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(64) name ! allocatable arrays real(8), allocatable :: r(:),rho(:),vr(:),rwf(:,:,:) ! external functions real(8), external :: massnucl name='Fractional species' ! set up the initial occupation numbers 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 > epsocc) nmax=in t1=t1-t2 if (ist == maxstsp) then if (t1 > 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) < eval(1)) eval(ist)=1.d6 end do ! recompute the effective infinity do ir=nr,1,-1 if (rho(ir) > 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) > 2.d-2) then rm=r(ir) exit end if end do if (rm < 1.d0) rm=1.d0 if (rm > 3.2d0) rm=3.2d0 ! sort the eigenvalues call sortidx(maxstsp,eval,idx) ! recompute the occupation numbers 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) < 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(*,'("Info(genfspecies): wrote fractional species file ",A,".in")') & trim(symb) end if end subroutine elk-9.6.8/src/PaxHeaders/atpstep.f900000644000000000000000000000013214626155520014164 xustar0030 mtime=1717099344.268987915 30 atime=1717099342.186976697 30 ctime=1717099344.268987915 elk-9.6.8/src/atpstep.f900000644002504400250440000000352314626155520016711 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(1:3,ias),forcetotp(1:3,ias)) ! if the force is in the same direction then increase step size parameter if (t1 > 0.d0) then tauatp(ias)=tauatp(ias)+tau0atp else tauatp(ias)=tau0atp end if ! make atomic position step atposc(1:3,ia,is)=atposc(1:3,ia,is)+tauatp(ias)*(forcetot(1:3,ias) & +forcetotp(1:3,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 end subroutine !EOC elk-9.6.8/src/PaxHeaders/dmatls.f900000644000000000000000000000013214626155520013770 xustar0030 mtime=1717099344.270987926 30 atime=1717099342.189976713 30 ctime=1717099344.270987926 elk-9.6.8/src/dmatls.f900000644002504400250440000000162114626155520016512 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 end subroutine elk-9.6.8/src/PaxHeaders/writeengy.f900000644000000000000000000000013114626155520014520 xustar0030 mtime=1717099344.272987936 29 atime=1717099342.19297673 30 ctime=1717099344.272987936 elk-9.6.8/src/writeengy.f900000644002504400250440000000305014626155520017241 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 /= 0) then write(fnum,'(" DFT+U",T30,": ",G22.12)') engydu end if if (stype == 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) end subroutine elk-9.6.8/src/PaxHeaders/writechg.f900000644000000000000000000000013214626155520014320 xustar0030 mtime=1717099344.274987947 30 atime=1717099342.195976746 30 ctime=1717099344.274987947 elk-9.6.8/src/writechg.f900000644002504400250440000000225114626155520017042 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 /= 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) end subroutine elk-9.6.8/src/PaxHeaders/rbsht.f900000644000000000000000000000013214626155520013626 xustar0030 mtime=1717099344.276987958 30 atime=1717099342.197976756 30 ctime=1717099344.276987958 elk-9.6.8/src/rbsht.f900000644002504400250440000000127714626155520016357 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 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 i=lmmaxi*nri+1 call dgemm('N','N',lmmaxo,nr-nri,lmmaxo,1.d0,rbshto,lmmaxo,rfmt1(i),lmmaxo, & 0.d0,rfmt2(i),lmmaxo) end subroutine elk-9.6.8/src/PaxHeaders/rfsht.f900000644000000000000000000000013214626155520013632 xustar0030 mtime=1717099344.278987969 30 atime=1717099342.200976773 30 ctime=1717099344.278987969 elk-9.6.8/src/rfsht.f900000644002504400250440000000127714626155520016363 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 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 i=lmmaxi*nri+1 call dgemm('N','N',lmmaxo,nr-nri,lmmaxo,1.d0,rfshto,lmmaxo,rfmt1(i),lmmaxo, & 0.d0,rfmt2(i),lmmaxo) end subroutine elk-9.6.8/src/PaxHeaders/genlofr.f900000644000000000000000000000013014626155520014136 xustar0029 mtime=1717099344.28098798 30 atime=1717099342.203976789 29 ctime=1717099344.28098798 elk-9.6.8/src/genlofr.f900000644002504400250440000001113314626155520016661 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,iro,ir,i integer i0,i1,nn,l,info integer ilo,jlo,io,jo 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), external :: splint,polynm do is=1,nspecies nr=nrmt(is) nri=nrmti(is) iro=nri+1 done(:)=.false. do ia=1,natoms(is) if (done(ia)) cycle ias=idxas(ia,is) ! use spherical part of potential i1=lmmaxi*(nri-1)+1 vr(1:nri)=vsmt(1:i1:lmmaxi,ias)*y00 i0=i1+lmmaxi i1=lmmaxo*(nr-iro)+i0 vr(iro:nr)=vsmt(i0:i1:lmmaxo,ias)*y00 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)) p0(1:nr,jo)=t1*p0(1:nr,jo) ep0(1:nr,jo)=t1*ep0(1:nr,jo) ! 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 /= 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) p0s(1:nr,ilo)=p0s(1:nr,ilo)+t1*p0(1:nr,io) ep0s(1:nr,ilo)=ep0s(1:nr,ilo)+t1*ep0(1:nr,io) 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)) p0s(1:nr,ilo)=t1*p0s(1:nr,ilo) ep0s(1:nr,ilo)=t1*ep0s(1:nr,ilo) ! subtract linear combination of previous local-orbitals with same l do jlo=1,ilo-1 if (lorbl(jlo,is) == l) then fr(1:nr)=p0s(1:nr,ilo)*p0s(1:nr,jlo) t1=-splint(nr,rlmt(:,1,is),fr) p0s(1:nr,ilo)=p0s(1:nr,ilo)+t1*p0s(1:nr,jlo) ep0s(1:nr,ilo)=ep0s(1:nr,ilo)+t1*ep0s(1:nr,jlo) 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 < 1.d-25) goto 10 t1=1.d0/sqrt(t1) p0s(1:nr,ilo)=t1*p0s(1:nr,ilo) ep0s(1:nr,ilo)=t1*ep0s(1:nr,ilo) ! 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) lofr(1:nr,1:2,ilo,jas)=lofr(1:nr,1:2,ilo,ias) 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-9.6.8/src/PaxHeaders/rotrfmt.f900000644000000000000000000000013014626155520014177 xustar0029 mtime=1717099344.28298799 30 atime=1717099342.206976805 29 ctime=1717099344.28298799 elk-9.6.8/src/rotrfmt.f900000644002504400250440000001442614626155520016732 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 i ! inner part of muffin-tin call rotrflm(rot,lmaxi,nri,lmmaxi,rfmt1,rfmt2) ! outer part of muffin-tin i=lmmaxi*nri+1 call rotrflm(rot,lmaxo,nr-nri,lmmaxo,rfmt1(i),rfmt2(i)) return contains !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 < 0) then write(*,*) write(*,'("Error(rotrflm): lmax < 0 : ",I8)') lmax write(*,*) stop end if if (n == 0) return if (n < 0) then write(*,*) write(*,'("Error(rotrflm): n < 0 : ",I8)') n write(*,*) stop end if ! find the determinant det=rot(1,1)*(rot(2,2)*rot(3,3)-rot(3,2)*rot(2,3)) & +rot(2,1)*(rot(3,2)*rot(1,3)-rot(1,2)*rot(3,3)) & +rot(3,1)*(rot(1,2)*rot(2,3)-rot(2,2)*rot(1,3)) ! make the rotation proper p=1 if (det < 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 end subroutine !EOC !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) ! 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) == 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) == 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 == -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 end subroutine !EOC end subroutine elk-9.6.8/src/PaxHeaders/genpmatk.f900000644000000000000000000000013214626155520014312 xustar0030 mtime=1717099344.284988001 30 atime=1717099342.208976816 30 ctime=1717099344.284988001 elk-9.6.8/src/genpmatk.f900000644002504400250440000001334214626155520017037 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 ! automatic arrays real(8) rfmt(npcmtmax) complex(8) gwfmt(npcmtmax,3,nspinor),gvmt(npcmtmax,3) complex(8) zfmt1(npcmtmax,nspinor),zfmt2(npcmtmax,3,nspinor) complex(8) gwfir(ngtc,3),z(ngkmax) ! external functions complex(8), external :: 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 ! !---------------------------------! 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) call rtozfmt(nrc,nrci,rfmt,zfmt1) call gradzfmt(nrc,nrci,rlcmt(:,-1,is),wcrcmt(:,:,is),zfmt1,npcmtmax,gvmt) ! convert to spherical coordinates do i=1,3 call zbshtip(nrc,nrci,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),wcrcmt(:,:,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 σ x (grad V(r)) φ(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 do i=1,3 do ispn=1,nspinor ! apply the radial integral weights call zfmtwr(nrc,nrci,wrcmt(:,is),gwfmt(:,i,ispn)) ! compute the overlaps do ist=1,jst pmat(ist,jst,i)=pmat(ist,jst,i)+zdotc(npc,wfmt(:,ias,ispn,ist),1, & gwfmt(:,i,ispn),1) end do end do end do end do end do end do !-----------------------------------! ! interstitial contribution ! !-----------------------------------! do jst=1,nstsv do ispn=1,nspinor jspn=jspnfv(ispn) ! compute the gradient gwfir(:,:)=0.d0 do igp=1,ngp(jspn) ifg=igfc(igpig(igp,jspn)) z1=wfgp(igp,ispn,jst) gwfir(ifg,1:3)=vgpc(1:3,igp,jspn)*cmplx(-aimag(z1),dble(z1),8) end do do i=1,3 ! Fourier transform to real-space call zfftifc(3,ngdgc,1,gwfir(:,i)) ! multiply by coarse characteristic function gwfir(:,i)=gwfir(:,i)*cfrc(:) ! Fourier transform back to G-space call zfftifc(3,ngdgc,-1,gwfir(:,i)) end do ! find the overlaps do i=1,3 do igp=1,ngp(jspn) ifg=igfc(igpig(igp,jspn)) z(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,z,1) end do end do end do end do ! multiply by -i and set lower triangular part do i=1,3 do jst=1,nstsv do ist=1,jst-1 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 pmat(jst,jst,i)=aimag(pmat(jst,jst,i)) end do end do end subroutine !EOC elk-9.6.8/src/PaxHeaders/rvfcross.f900000644000000000000000000000013214626155520014353 xustar0030 mtime=1717099344.286988012 30 atime=1717099342.211976832 30 ctime=1717099344.286988012 elk-9.6.8/src/rvfcross.f900000644002504400250440000000420614626155520017077 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 end subroutine !EOC elk-9.6.8/src/PaxHeaders/writeinfo.f900000644000000000000000000000013214626155520014512 xustar0030 mtime=1717099344.288988023 30 atime=1717099342.214976848 30 ctime=1717099344.288988023 elk-9.6.8/src/writeinfo.f900000644002504400250440000003474714626155520017253 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 modgw 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 is,ia,k,l,i real(8) t1 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 > 1) then write(fnum,*) write(fnum,'("Using MPI, number of processes : ",I8)') np_mpi end if if (notelns > 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(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 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 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 (tbdip) then write(fnum,'(" magnetic dipole field included")') if (tjr) then write(fnum,'(" spin and current contribution")') else write(fnum,'(" only spin contribution")') 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 /= 0) then write(fnum,'(" fixed spin moment (FSM) calculation, type : ",I4)') fsmtype if (fsmtype < 0) then write(fnum,'(" only moment direction is fixed")') end if end if if ((abs(fsmtype) == 1).or.(abs(fsmtype) == 3)) then write(fnum,'(" fixing total moment to (Cartesian) :")') write(fnum,'(" ",3G18.10)') momfix end if if ((abs(fsmtype) == 2).or.(abs(fsmtype) == 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 enabled")') write(fnum,'(" scaling factor : ",G18.10)') sxcscf end if if (ftmtype /= 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 t1=norm2(efieldc(:)) write(fnum,'(" magnitude : ",G18.10)') t1 write(fnum,'(" volts/nanometer : ",G18.10)') t1*ef_si/1.d9 write(fnum,'(" maximum distance from center over which E-field is & &applied : ",G18.10)') dmaxefc write(fnum,'(" potential at maximum distance : ",G18.10)') vmaxefc 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 == 0) then write(fnum,'("k-point set is not reduced")') else if (reducek == 1) then write(fnum,'("k-point set is reduced with full crystal symmetry group")') else if (reducek == 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 <= 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|² : ",G18.10)') 0.5d0*gkmax**2 write(fnum,'("Maximum |G| for potential and density : ",G18.10)') gmaxvr if (trimvg) then write(fnum,'(" potential will be trimmed for |G| > 2 gkmax")') end if 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ₛ : ",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 == 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) == 100) then write(fnum,'("Using Libxc version ",I2.2,".",I2.2,".",I2.2)') libxcv(:) end if if (xctype(1) < 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) write(fnum,'(" gradient requirement : ",I4)') xcgrad end if if (xcgrad == 0) then write(fnum,'(" local density approximation (LDA)")') else if ((xcgrad == 1).or.(xcgrad == 2)) then write(fnum,'(" generalised gradient approximation (GGA)")') else if (any(xcgrad == [3,4,5])) then write(fnum,'(" meta-GGA")') if (xcgrad /= 3) then write(fnum,'(" partially deorbitalised functional")') write(fnum,'(" using Kohn-Sham orbital kinetic energy density τ(r)")') write(fnum,'(" kinetic energy functional used for δτ(r'')/δρ(r) : ",3I6)') & ktype(:) write(fnum,'(" ",A)') trim(kdescr) write(fnum,'(" gradient requirement : ",I4)') kgrad else write(fnum,'(" fully deorbitalised functional")') end if end if if (ksgwrho) then write(fnum,*) write(fnum,'("Kohn-Sham density determined via the GW Green''s function")') end if if (dftu /= 0) then write(fnum,*) write(fnum,'("DFT+U calculation")') if (dftu == 1) then write(fnum,'(" fully localised limit (FLL)")') write(fnum,'(" see Phys. Rev. B 52, R5467 (1995)")') else if (dftu == 2) then write(fnum,'(" around mean field (AMF)")') write(fnum,'(" see Phys. Rev. B 49, 14211 (1994)")') else write(*,*) write(*,'("Error(writeinfo): dftu not defined : ",I8)') dftu write(*,*) stop end if do i=1,ndftu is=isldu(1,i) l=isldu(2,i) if (inpdftu == 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 == 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 == 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 == 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.⁻¹) : ",F12.8)') & lamdu(i) else if(inpdftu == 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 == 300) then write(fnum,*) write(fnum,'("RDMFT calculation")') write(fnum,'(" see Phys. Rev. B 78, 201103 (2008)")') write(fnum,'(" RDMFT exchange-correlation type : ",I4)') rdmxctype if (rdmxctype == 1) then write(fnum,'(" Hartree-Fock functional")') else if (rdmxctype == 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) end subroutine !EOC elk-9.6.8/src/PaxHeaders/mossbauer.f900000644000000000000000000000013114626155520014503 xustar0030 mtime=1717099344.290988033 29 atime=1717099342.21897687 30 ctime=1717099344.290988033 elk-9.6.8/src/mossbauer.f900000644002504400250440000001076614626155520017240 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 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). ! ! !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 idm,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 ! find the new linearisation energies call linengy ! generate the APW and local-orbital radial functions and integrals call genapwlofr ! read the eigenvalues and occupation numbers from file call readevalsv call readoccsv ! calculate the density call rhomag ! calculate the dipole magnetic field if required if (tbdip) call bdipole ! 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 ! 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 (tjr) 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 dipole field")') write(50,'(" but may not match exactly with the directly & &calculated value.")') end if close(50) write(*,*) write(*,'("Info(mossbauer):")') write(*,'(" Mossbauer parameters written to MOSSBAUER.OUT")') end if deallocate(fr) end subroutine !EOC elk-9.6.8/src/PaxHeaders/initoep.f900000644000000000000000000000013114626155520014152 xustar0030 mtime=1717099344.292988044 29 atime=1717099342.22097688 30 ctime=1717099344.292988044 elk-9.6.8/src/initoep.f900000644002504400250440000000204514626155520016676 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 is,ist,nc ! find maximum core states over all species ncrmax=0 do is=1,nspecies nc=0 do ist=1,nstsp(is) if (spcore(ist,is)) nc=nc+2*ksp(ist,is) end do ncrmax=max(ncrmax,nc) 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 ! allocate the OEP residual functions allocate(dvxmt(npcmtmax,natmtot),dvxir(ngtot)) if (spinpol) then allocate(dbxmt(npcmtmax,natmtot,ndmag),dbxir(ngtot,ndmag)) end if ! set initial step size for iterative method tauoep=tau0oep end subroutine elk-9.6.8/src/PaxHeaders/i3minv.f900000644000000000000000000000013214626155520013711 xustar0030 mtime=1717099344.294988055 30 atime=1717099342.223976897 30 ctime=1717099344.294988055 elk-9.6.8/src/i3minv.f900000644002504400250440000000242114626155520016432 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 /= 1).and.(m /= -1)) then write(*,*) write(*,'("Error(i3minv): cannot invert matrix")') write(*,'(" Determinant : ",I8)') m write(*,*) stop end if b(1,1)=m*(a(2,2)*a(3,3)-a(2,3)*a(3,2)) b(2,1)=m*(a(2,3)*a(3,1)-a(2,1)*a(3,3)) b(3,1)=m*(a(2,1)*a(3,2)-a(2,2)*a(3,1)) b(1,2)=m*(a(1,3)*a(3,2)-a(1,2)*a(3,3)) b(2,2)=m*(a(1,1)*a(3,3)-a(1,3)*a(3,1)) b(3,2)=m*(a(1,2)*a(3,1)-a(1,1)*a(3,2)) b(1,3)=m*(a(1,2)*a(2,3)-a(1,3)*a(2,2)) b(2,3)=m*(a(1,3)*a(2,1)-a(1,1)*a(2,3)) b(3,3)=m*(a(1,1)*a(2,2)-a(1,2)*a(2,1)) end subroutine !EOC elk-9.6.8/src/PaxHeaders/r3mv.f900000644000000000000000000000013214626155520013373 xustar0030 mtime=1717099344.296988066 30 atime=1717099342.226976913 30 ctime=1717099344.296988066 elk-9.6.8/src/r3mv.f900000644002504400250440000000140614626155520016116 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) end subroutine !EOC elk-9.6.8/src/PaxHeaders/genidxlo.f900000644000000000000000000000013214626155520014315 xustar0030 mtime=1717099344.298988077 30 atime=1717099342.228976923 30 ctime=1717099344.298988077 elk-9.6.8/src/genidxlo.f900000644002504400250440000000164114626155520017041 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=l*(l+1)+m+1 idxlo(lm,ilo,ias)=i end do end do end do nlotot=i end subroutine !EOC elk-9.6.8/src/PaxHeaders/nuclei.f900000644000000000000000000000013114626155520013762 xustar0030 mtime=1717099344.300988087 29 atime=1717099342.23197694 30 ctime=1717099344.300988087 elk-9.6.8/src/nuclei.f900000644002504400250440000000120614626155520016504 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 ! external functions real(8), 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) > rnucl(is)) then nrnucl(is)=ir exit end if end do end do end subroutine elk-9.6.8/src/PaxHeaders/writeefg.f900000644000000000000000000000013214626155520014320 xustar0030 mtime=1717099344.302988098 30 atime=1717099342.234976956 30 ctime=1717099344.302988098 elk-9.6.8/src/writeefg.f900000644002504400250440000000623114626155520017044 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 use modtest ! !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 < 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),wcrmt(:,:,is),rfmt,npmtmax,grfmt1) do i=1,3 ! compute the gradient of the gradient call gradrfmt(nr,nri,rlmt(:,-1,is),wcrmt(:,:,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) ! write EFG of last atom to test file call writetest(115,'electric field gradient',nv=9,tol=1.d-3,rva=efg) end subroutine !EOC elk-9.6.8/src/PaxHeaders/writeevsp.f900000644000000000000000000000013214626155520014534 xustar0030 mtime=1717099344.304988109 30 atime=1717099342.236976967 30 ctime=1717099344.304988109 elk-9.6.8/src/writeevsp.f900000644002504400250440000000177114626155520017264 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")') end subroutine elk-9.6.8/src/PaxHeaders/gencore.f900000644000000000000000000000013014626155520014124 xustar0029 mtime=1717099344.30698812 30 atime=1717099342.239976983 29 ctime=1717099344.30698812 elk-9.6.8/src/gencore.f900000644002504400250440000001105214626155520016647 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,nthd real(8) v(ndmag),t1 ! automatic arrays logical done(natmtot) real(8) vr(nrspmax),br(nrmtmax),fr(nrmtmax) real(8) eval(nstspmax) ! external functions real(8), external :: rfmtint done(:)=.false. ! loop over species and atoms call holdthd(natmtot,nthd) !$OMP PARALLEL DO DEFAULT(SHARED) & !$OMP PRIVATE(vr,br,fr,eval) & !$OMP PRIVATE(is,ia,ja,jas) & !$OMP PRIVATE(nr,nri,nrs,idm) & !$OMP PRIVATE(v,t1,ispn,ist) & !$OMP NUM_THREADS(nthd) do ias=1,natmtot is=idxis(ias) ia=idxia(ias) ! flag all equivalent atoms as done !$OMP CRITICAL do ja=1,natoms(is) jas=idxas(ja,is) if ((ia /= ja).and.(eqatoms(ia,ja,is))) done(jas)=.true. end do !$OMP END CRITICAL if (done(ias)) cycle nr=nrmt(is) nri=nrmti(is) nrs=nrsp(is) ! Kohn-Sham magnetic field for spin-polarised core if (spincore) then ! compute the averaged direction of the exchange-correlation magnetic field do idm=1,ndmag v(idm)=rfmtint(nr,nri,wrmt(:,is),bxcmt(:,ias,idm)) 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 > 1.d-10) v(:)=v(:)/t1 ! determine the component of the field along the averaged direction br(1:nr)=0.d0 do idm=1,ndmag ! extract the spherical (l=m=0) component of B_xc call rfmtlm(1,nr,nri,bxcmt(:,ias,idm),fr) t1=v(idm)*y00 br(1:nr)=br(1:nr)+t1*fr(1:nr) end do 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 == 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) vr(nr+1:nrs)=vrsp(nr+1:nrs,is)+t1 rhocr(1:nr,ias,ispn)=0.d0 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 == 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 rhocr(1:nr,ias,ispn)=rhocr(1:nr,ias,ispn) & +t1*(rwfcr(1:nr,1,ist,ias)**2+rwfcr(1:nr,2,ist,ias)**2) end if end do rhocr(1:nr,ias,ispn)=rhocr(1:nr,ias,ispn)*rlmt(1:nr,-2,is)*y00 ! end loop over spin channels end do ! flag atom as done and copy to equivalent atoms done(ias)=.true. do ja=1,natoms(is) jas=idxas(ja,is) if (eqatoms(ia,ja,is)) then 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,:) end if end do ! end loop over species and atoms end do !$OMP END PARALLEL DO call freethd(nthd) end subroutine !EOC elk-9.6.8/src/PaxHeaders/r3mtv.f900000644000000000000000000000013014626155520013555 xustar0029 mtime=1717099344.30898813 30 atime=1717099342.242976999 29 ctime=1717099344.30898813 elk-9.6.8/src/r3mtv.f900000644002504400250440000000143114626155520016300 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) end subroutine !EOC elk-9.6.8/src/PaxHeaders/r3minv.f900000644000000000000000000000013214626155520013722 xustar0030 mtime=1717099344.310988141 30 atime=1717099342.245977015 30 ctime=1717099344.310988141 elk-9.6.8/src/r3minv.f900000644002504400250440000000235314626155520016447 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) < 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)) end subroutine !EOC elk-9.6.8/src/PaxHeaders/r3frac.f900000644000000000000000000000013214626155520013664 xustar0030 mtime=1717099344.312988152 30 atime=1717099342.248977031 30 ctime=1717099344.312988152 elk-9.6.8/src/r3frac.f900000644002504400250440000000221614626155520016407 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) ! local variables real(8) t1 t1=1.d0-eps v(1)=v(1)-int(v(1)) if (v(1) < 0.d0) v(1)=v(1)+1.d0 if ((v(1) < eps).or.(v(1) > t1)) v(1)=0.d0 v(2)=v(2)-int(v(2)) if (v(2) < 0.d0) v(2)=v(2)+1.d0 if ((v(2) < eps).or.(v(2) > t1)) v(2)=0.d0 v(3)=v(3)-int(v(3)) if (v(3) < 0.d0) v(3)=v(3)+1.d0 if ((v(3) < eps).or.(v(3) > t1)) v(3)=0.d0 end subroutine !EOC elk-9.6.8/src/PaxHeaders/genapwlofr.f900000644000000000000000000000013214626155520014650 xustar0030 mtime=1717099344.314988163 30 atime=1717099342.250977042 30 ctime=1717099344.314988163 elk-9.6.8/src/genapwlofr.f900000644002504400250440000000134414626155520017374 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 DEFAULT(SHARED) & !$OMP NUM_THREADS(nthd) !$OMP SECTIONS !$OMP SECTION ! generate the APW radial functions call genapwfr !$OMP SECTION ! generate the local-orbital radial functions call genlofr !$OMP END SECTIONS !$OMP SECTIONS !$OMP SECTION ! compute the overlap radial integrals call olprad !$OMP SECTION ! compute the Hamiltonian radial integrals call hmlrad !$OMP END SECTIONS !$OMP END PARALLEL call freethd(nthd) end subroutine elk-9.6.8/src/PaxHeaders/gridsize.f900000644000000000000000000000013214626155520014324 xustar0030 mtime=1717099344.316988174 30 atime=1717099342.253977058 30 ctime=1717099344.316988174 elk-9.6.8/src/gridsize.f900000644002504400250440000000342314626155520017050 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 ! $G= 0).and.((l-m2-k) >= 0).and.((m2-m1+k) >= 0)) then j=2*(l-k)+m1-m2 if (j == 0) then t2=1.d0 else t2=cb**j end if j=2*k+m2-m1 if (j /= 0) t2=t2*sb**j t2=t2/(factn(k)*factn(l+m1-k)*factn(l-m2-k)*factn(m2-m1+k)) if (mod(k,2) /= 0) t2=-t2 sm=sm+t2 end if end do dy(lm1,lm2)=sqrt(t1*factn(l+m2)*factn(l-m2))*sm end do end do end do end subroutine !EOC elk-9.6.8/src/PaxHeaders/ssfext.f900000644000000000000000000000013214626155520014020 xustar0030 mtime=1717099344.326988227 30 atime=1717099342.267977134 30 ctime=1717099344.326988227 elk-9.6.8/src/ssfext.f900000644002504400250440000000122414626155520016541 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, external :: gcd do i=1,3 if (ivq(i,iq) /= 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) end subroutine elk-9.6.8/src/PaxHeaders/writestate.f900000644000000000000000000000013114626155520014676 xustar0030 mtime=1717099344.328988238 29 atime=1717099342.27097715 30 ctime=1717099344.328988238 elk-9.6.8/src/writestate.f900000644002504400250440000000665114626155520017431 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(100,file='STATE'//trim(filext),form='UNFORMATTED',action='WRITE') write(100) version write(100) spinpol write(100) nspecies write(100) lmmaxo write(100) nrmtmax write(100) nrcmtmax do is=1,nspecies write(100) natoms(is) write(100) nrmt(is) write(100) rsp(1:nrmt(is),is) write(100) nrcmt(is) write(100) rcmt(1:nrcmt(is),is) end do write(100) ngridg write(100) ngvec write(100) ndmag write(100) nspinor write(100) fsmtype write(100) ftmtype write(100) dftu write(100) lmmaxdm write(100) xcgrad write(100) efermi ! 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(100) 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(100) 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(100) 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(100) 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(100) 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(100) 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(100) rvfcmt,bsir ! write fixed spin moment magnetic fields if (fsmtype /= 0) then write(100) bfsmc write(100) bfsmcmt end if end if ! write the meta-GGA exchange-correlation potential if (any(xcgrad == [3,4,5])) then do ias=1,natmtot is=idxis(ias) call rfmtpack(.false.,nrmt(is),nrmti(is),wxcmt(:,ias),rfmt(:,:,ias)) end do write(100) rfmt,wxcir end if ! write the potential matrix in each muffin-tin if ((dftu /= 0).or.(ftmtype /= 0)) then write(100) vmatmt end if ! write the fixed tensor moment potential matrix if (ftmtype /= 0) then write(100) vmftm end if close(100) deallocate(rfmt) if (spinpol) deallocate(rvfmt,rvfcmt) end subroutine !EOC elk-9.6.8/src/PaxHeaders/sdelta_sq.f900000644000000000000000000000013214626155520014463 xustar0030 mtime=1717099344.330988249 30 atime=1717099342.272977161 30 ctime=1717099344.330988249 elk-9.6.8/src/sdelta_sq.f900000644002504400250440000000136714626155520017214 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: elemental 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) <= 0.5d0) then sdelta_sq=1.d0 else sdelta_sq=0.d0 end if end function !EOC elk-9.6.8/src/PaxHeaders/potxcir.f900000644000000000000000000000013014626155520014172 xustar0029 mtime=1717099344.33298826 30 atime=1717099342.275977177 29 ctime=1717099344.33298826 elk-9.6.8/src/potxcir.f900000644002504400250440000002202514626155520016717 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 :: dtdr(:),dtdru(:),dtdrd(:) 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 == 1) then allocate(grho(n),gup(n),gdn(n)) allocate(g2up(n),g2dn(n)) allocate(g3rho(n),g3up(n),g3dn(n)) else if (xcgrad == 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 (any(xcgrad == [3,4,5])) 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(dtdru(n),dtdrd(n)) allocate(wxup(n),wxdn(n),wcup(n),wcdn(n)) end if else allocate(vx(n),vc(n)) if (xcgrad == 1) then allocate(grho(n),g2rho(n),g3rho(n)) else if (xcgrad == 2) then allocate(g2rho(n),gvrho(n,3),grho2(n)) allocate(dxdgr2(n),dcdgr2(n)) else if (any(xcgrad == [3,4,5])) then allocate(g2rho(n),gvrho(n,3),grho2(n)) allocate(dxdgr2(n),dcdgr2(n)) allocate(dxdg2r(n),dcdg2r(n)) allocate(dtdr(n),wx(n),wc(n)) end if end if if (spinpol) then !------------------------! ! spin-polarised ! !------------------------! if (ncmag) then ! non-collinear if (xcgrad == 0) then ! LSDA do i=1,n t0=rhoir_(i) t1=sqrt(magir_(i,1)**2+magir_(i,2)**2+magir_(i,3)**2)*sxcscf 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)*sxcscf 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)*sxcscf rhoup(i)=0.5d0*(t0+t1) rhodn(i)=0.5d0*(t0-t1) end do end if if (xcgrad <= 0) then call xcifc(xctype_,n,tempa=swidth,rhoup=rhoup,rhodn=rhodn,ex=exir_, & ec=ecir_,vxup=vxup,vxdn=vxdn,vcup=vcup,vcdn=vcdn) else if (xcgrad == 1) then call ggair_sp_1(rhoup,rhodn,grho,gup,gdn,g2up,g2dn,g3rho,g3up,g3dn) call xcifc(xctype_,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 == 2) then call ggair_sp_2a(rhoup,rhodn,g2up,g2dn,gvup,gvdn,gup2,gdn2,gupdn) call xcifc(xctype_,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 (any(xcgrad == [3,4,5])) then call ggair_sp_2a(rhoup,rhodn,g2up,g2dn,gvup,gvdn,gup2,gdn2,gupdn) ! enforce the von Weizsacker lower bound call k_vwlb(n,rhoup,gup2,tauir_(:,1)) call k_vwlb(n,rhodn,gdn2,tauir_(:,2)) call xcifc(xctype_,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) ! determine δτ(r')/δρ(r) using an approximate kinetic energy functional if (xcgrad /= 3) then call xcifc(ktype,n,rhoup=rhoup,rhodn=rhodn,g2up=g2up,g2dn=g2dn,gup2=gup2,& gdn2=gdn2,tauup=tauir_(:,1),taudn=tauir_(:,2),dtdru=dtdru,dtdrd=dtdrd, & dtdgu2=dxdgu2,dtdgd2=dxdgd2,dtdg2u=dxdg2u,dtdg2d=dxdg2d,wxup=dcdgu2, & wxdn=dcdgd2) call ggair_4(gvup,vxup,vcup,wxup,wcup,dtdru,dxdgu2) call ggair_4(gvdn,vxdn,vcdn,wxdn,wcdn,dtdrd,dxdgd2) if (kgrad == 3) then call ggair_3(vxup,vcup,wxup,wcup,dxdg2u) call ggair_3(vxdn,vcdn,wxdn,wcdn,dxdg2d) end if wxcir_(:)=0.5d0*(wxup(:)+wxdn(:)+wcup(:)+wcdn(:)) end if 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(1:n)=t1*vxup(1:n) vxdn(1:n)=t1*vxdn(1:n) 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) > 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)*sxcscf else !--------------------------! ! spin-unpolarised ! !--------------------------! if (xcgrad <= 0) then call xcifc(xctype_,n,tempa=swidth,rho=rhoir_,ex=exir_,ec=ecir_,vx=vx,vc=vc) else if (xcgrad == 1) then call ggair_1(rhoir_,grho,g2rho,g3rho) call xcifc(xctype_,n,rho=rhoir_,grho=grho,g2rho=g2rho,g3rho=g3rho,ex=exir_,& ec=ecir_,vx=vx,vc=vc) else if (xcgrad == 2) then call ggair_2a(rhoir_,g2rho,gvrho,grho2) call xcifc(xctype_,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 (any(xcgrad == [3,4,5])) then call ggair_2a(rhoir_,g2rho,gvrho,grho2) ! enforce the von Weizsacker lower bound call k_vwlb(n,rhoir_,grho2,tauir_) call xcifc(xctype_,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) ! determine δτ(r')/δρ(r) using an approximate kinetic energy functional if (xcgrad /= 3) then call xcifc(ktype,n,rho=rhoir_,g2rho=g2rho,grho2=grho2,tau=tauir_, & dtdr=dtdr,dtdgr2=dxdgr2,dtdg2r=dxdg2r,wx=dcdgr2) call ggair_4(gvrho,vx,vc,wx,wc,dtdr,dxdgr2) if (kgrad == 3) then call ggair_3(vx,vc,wx,wc,dxdg2r) end if end if 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 == 1) then deallocate(grho,gup,gdn,g2up,g2dn,g3rho,g3up,g3dn) else if (xcgrad == 2) then deallocate(g2up,g2dn) deallocate(gvup,gvdn) deallocate(gup2,gdn2,gupdn) deallocate(dxdgu2,dxdgd2,dxdgud) deallocate(dcdgu2,dcdgd2,dcdgud) else if (any(xcgrad == [3,4,5])) then deallocate(g2up,g2dn) deallocate(gvup,gvdn) deallocate(gup2,gdn2,gupdn) deallocate(dxdgu2,dxdgd2,dxdgud) deallocate(dcdgu2,dcdgd2,dcdgud) deallocate(dxdg2u,dxdg2d) deallocate(dcdg2u,dcdg2d) deallocate(dtdru,dtdrd) deallocate(wxup,wxdn,wcup,wcdn) end if else deallocate(vx,vc) if (xcgrad == 1) then deallocate(grho,g2rho,g3rho) else if (xcgrad == 2) then deallocate(g2rho,gvrho,grho2) deallocate(dxdgr2,dcdgr2) else if (any(xcgrad == [3,4,5])) then deallocate(g2rho,gvrho,grho2) deallocate(dxdgr2,dcdgr2,dxdg2r,dcdg2r) deallocate(dtdr,wx,wc) end if end if end subroutine elk-9.6.8/src/PaxHeaders/potxc.f900000644000000000000000000000013014626155520013637 xustar0029 mtime=1717099344.33498827 30 atime=1717099342.278977193 29 ctime=1717099344.33498827 elk-9.6.8/src/potxc.f900000644002504400250440000000455014626155520016367 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: potxc ! !INTERFACE: subroutine potxc(tsh,xctype_,rhomt_,rhoir_,magmt_,magir_,taumt_,tauir_,exmt_, & exir_,ecmt_,ecir_,vxcmt_,vxcir_,bxcmt_,bxcir_,wxcmt_,wxcir_) ! !USES: use modmain use modomp ! !DESCRIPTION: ! Computes the exchange-correlation potential and energy density. In the ! muffin-tin, the density is transformed from spherical harmonic coefficients ! $\rho_{lm}$ to spherical coordinates $(\theta,\phi)$ with a backward ! spherical harmonic transformation (SHT). Once calculated, the ! exchange-correlation potential and energy density are transformed with a ! forward SHT. ! ! !REVISION HISTORY: ! Created April 2003 (JKD) !EOP !BOC implicit none ! arguments logical, intent(in) :: tsh integer, intent(in) :: xctype_(3) real(8), intent(in) :: rhomt_(npmtmax,natmtot),rhoir_(ngtot) real(8), intent(in) :: magmt_(npmtmax,natmtot,ndmag),magir_(ngtot,ndmag) real(8), intent(in) :: taumt_(npmtmax,natmtot,nspinor),tauir_(ngtot,nspinor) real(8), intent(out) :: exmt_(npmtmax,natmtot),exir_(ngtot) real(8), intent(out) :: ecmt_(npmtmax,natmtot),ecir_(ngtot) real(8), intent(out) :: vxcmt_(npmtmax,natmtot),vxcir_(ngtot) real(8), intent(out) :: bxcmt_(npmtmax,natmtot,ndmag),bxcir_(ngtot,ndmag) real(8), intent(out) :: wxcmt_(npmtmax,natmtot),wxcir_(ngtot) ! local variables integer ias,nthd call holdthd(natmtot+1,nthd) !$OMP PARALLEL DEFAULT(SHARED) & !$OMP NUM_THREADS(nthd) ! muffin-tin exchange-correlation potential, field and energy density !$OMP DO do ias=1,natmtot call potxcmt(tsh,ias,xctype_,rhomt_,magmt_,taumt_,exmt_,ecmt_,vxcmt_,bxcmt_, & wxcmt_) end do !$OMP END DO NOWAIT ! interstitial exchange-correlation potential, field and energy density !$OMP SINGLE call potxcir(xctype_,rhoir_,magir_,tauir_,exir_,ecir_,vxcir_,bxcir_,wxcir_) !$OMP END SINGLE ! symmetrise the exchange-correlation potential and magnetic field if (tsh) then !$OMP SECTIONS !$OMP SECTION call symrf(nrmt,nrmti,npmt,ngridg,ngtot,ngvec,igfft,npmtmax,vxcmt_,vxcir_) !$OMP SECTION if (spinpol) call symrvf(.true.,ncmag,nrmt,nrmti,npmt,ngridg,ngtot,ngvec, & igfft,npmtmax,bxcmt_,ngtot,bxcir_) !$OMP END SECTIONS end if !$OMP END PARALLEL call freethd(nthd) end subroutine !EOC elk-9.6.8/src/PaxHeaders/rcfmtinp.f900000644000000000000000000000013214626155520014326 xustar0030 mtime=1717099344.336988281 30 atime=1717099342.281977209 30 ctime=1717099344.336988281 elk-9.6.8/src/rcfmtinp.f900000644002504400250440000000202014626155520017042 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. pure complex(8) function rcfmtinp(nr,nri,wr,rfmt,cfmt) use modmain implicit none ! arguments integer, intent(in) :: nr,nri real(8), intent(in) :: wr(nr) real(8), intent(in) :: rfmt(*) complex(4), intent(in) :: cfmt(*) ! local variables integer n,ir,i complex(8) z1,z2 ! compute the dot-products for each radial point and integrate over r z1=0.d0 i=1 if (lmaxi == 1) then do ir=1,nri z1=z1+wr(ir) & *(rfmt(i)*cfmt(i) & +rfmt(i+1)*cfmt(i+1) & +rfmt(i+2)*cfmt(i+2) & +rfmt(i+3)*cfmt(i+3)) i=i+4 end do z1=pi*z1 else n=lmmaxi-1 do ir=1,nri z1=z1+wr(ir)*dot_product(rfmt(i:i+n),cfmt(i:i+n)) i=i+lmmaxi end do z1=(fourpi/dble(lmmaxi))*z1 end if z2=0.d0 n=lmmaxo-1 do ir=nri+1,nr z2=z2+wr(ir)*dot_product(rfmt(i:i+n),cfmt(i:i+n)) i=i+lmmaxo end do rcfmtinp=z1+(fourpi/dble(lmmaxo))*z2 end function elk-9.6.8/src/PaxHeaders/rhoplot.f900000644000000000000000000000013114626155520014172 xustar0030 mtime=1717099344.338988292 29 atime=1717099342.28397722 30 ctime=1717099344.338988292 elk-9.6.8/src/rhoplot.f900000644002504400250440000000254614626155520016724 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',action='WRITE') open(51,file='RHOLINES.OUT',form='FORMATTED',action='WRITE') 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',action='WRITE') 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',action='WRITE') call plot3d(50,1,rhomt,rhoir) close(50) write(*,*) write(*,'("Info(rhoplot): 3D density plot written to RHO3D.OUT")') end select end subroutine !EOC elk-9.6.8/src/PaxHeaders/occupy.f900000644000000000000000000000013214626155520014006 xustar0030 mtime=1717099344.340988303 30 atime=1717099342.286977236 30 ctime=1717099344.340988303 elk-9.6.8/src/occupy.f900000644002504400250440000000612214626155520016531 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,de real(8) ei0,ei1,ed0,ed1 real(8) chg,w,x,t0 ! external functions real(8), external :: sdelta,stheta ! determine the smearing width automatically if required if ((autoswidth).and.(iscl > 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 < e0) e0=e if (e > e1) e1=e end do end do if (e0 < 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 t0=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 w=wkpt(ik) do ist=1,nstsv e=evalsv(ist,ik) if (e < e0min) then occsv(ist,ik)=0.d0 else x=(efermi-e)*t0 occsv(ist,ik)=occmax*stheta(stype,x) chg=chg+w*occsv(ist,ik) end if end do end do if (chg < chgval) then e0=efermi else e1=efermi end if if ((e1-e0) < 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 w=wkpt(ik) do ist=1,nstsv x=(evalsv(ist,ik)-efermi)*t0 fermidos=fermidos+w*sdelta(stype,x) end do if (abs(occsv(nstsv,ik)) > 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*t0 ! write Fermi density of states to test file call writetest(500,'DOS at Fermi energy',tol=5.d-3,rv=fermidos) ! estimate the indirect and direct band gaps (FC) ei0=-1.d8; ei1=1.d8 de=1.d8 ikgap(1:3)=1 do ik=1,nkpt ed0=-1.d8; ed1=1.d8 do ist=1,nstsv e=evalsv(ist,ik) if (e <= efermi) then if (e > ed0) ed0=e if (e > ei0) then ! transfer is a workaround for a bug in Intel Fortran versions 17 and 18 ikgap(1)=transfer(ik,ik) ei0=e end if else if (e < ed1) ed1=e if (e < ei1) then ikgap(2)=ik ei1=e end if end if end do e=ed1-ed0 if (e < de) then ikgap(3)=ik de=e end if end do bandgap(1)=ei1-ei0 bandgap(2)=de ! write band gap to test file call writetest(510,'estimated indirect band gap',tol=2.d-2,rv=bandgap(1)) end subroutine !EOC elk-9.6.8/src/PaxHeaders/symveca.f900000644000000000000000000000013214626155520014153 xustar0030 mtime=1717099344.342988314 30 atime=1717099342.289977252 30 ctime=1717099344.342988314 elk-9.6.8/src/symveca.f900000644002504400250440000000224114626155520016674 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(:,:) end subroutine !EOC elk-9.6.8/src/PaxHeaders/jprplot.f900000644000000000000000000000013214626155520014176 xustar0030 mtime=1717099344.344988324 30 atime=1717099342.292977268 30 ctime=1717099344.344988324 elk-9.6.8/src/jprplot.f900000644002504400250440000000315314626155520016722 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 jprplot use modmain use modmpi implicit none ! initialise universal variables call init0 call init1 ! read density and potentials from file call readstate ! generate the core wavefunctions and densities call gencore ! find the new linearisation energies call linengy ! generate the APW radial functions call genapwfr ! generate the local-orbital radial functions call genlofr ! get the occupation numbers from file call readoccsv ! compute the paramagnetic current density call genjpr ! plot the current density (master process only) if (mp_mpi) then write(*,*) write(*,'("Info(jprplot):")') select case(task) case(371) open(50,file='JPR1D.OUT',form='FORMATTED') open(51,file='JPRLINES.OUT',form='FORMATTED') call plot1d(50,51,3,jrmt,jrir) close(50) write(*,'(" 1D paramagnetic current density written to JPR1D.OUT")') write(*,'(" vertex location lines written to JPRLINES.OUT")') case(372) open(50,file='JPR2D.OUT',form='FORMATTED') call plot2d(.true.,50,3,jrmt,jrir) close(50) write(*,'(" 2D paramagnetic current density written to JPR2D.OUT")') write(*,'(" Note that the 3D vector field has been locally projected")') write(*,'(" onto the 2D plotting plane axes")') case(373) open(50,file='JPR3D.OUT',form='FORMATTED') call plot3d(50,3,jrmt,jrir) close(50) write(*,'(" 3D paramagnetic current density written to JPR3D.OUT")') end select end if end subroutine elk-9.6.8/src/PaxHeaders/genvmatk.f900000644000000000000000000000013214626155520014320 xustar0030 mtime=1717099344.346988335 30 atime=1717099342.294977279 30 ctime=1717099344.346988335 elk-9.6.8/src/genvmatk.f900000644002504400250440000000667114626155520017054 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 moddftu use modomp implicit none ! arguments ! the potential is multiplied by the radial integration weights in the ! muffin-tin and by the characteristic function in the interstitial region real(8), intent(in) :: vmt(npcmtmax,natmtot),vir(ngtot) integer, intent(in) :: ngp(nspnfv),igpig(ngkmax,nspnfv) complex(4), intent(in) :: wfmt(npcmtmax,natmtot,nspinor,nstsv) integer, intent(in) :: ld complex(4), 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,nrco integer npc,npc2,ipco integer n,igp,nthd ! automatic arrays complex(4) wfmt1(npcmtmax),wfmt2(npcmtmax) complex(4) wfir(ngtot),c(ngkmax) ! external functions real(4), external :: sdot complex(4), external :: cdotc ! zero the upper triangular matrix elements do jst=1,nstsv vmat(1:jst,jst)=0.d0 end do call holdthd(nstsv,nthd) !$OMP PARALLEL DEFAULT(SHARED) & !$OMP PRIVATE(wfmt1,wfmt2,wfir,c) & !$OMP PRIVATE(ispn,jspn,ias,is) & !$OMP PRIVATE(nrc,nrci,nrco,npc,npc2) & !$OMP PRIVATE(ipco,ist,jst,n,igp) & !$OMP NUM_THREADS(nthd) !-------------------------! ! muffin-tin part ! !-------------------------! do ispn=1,nspinor do ias=1,natmtot is=idxis(ias) nrc=nrcmt(is) nrci=nrcmti(is) nrco=nrc-nrci npc=npcmt(is) npc2=npc*2 ipco=npcmti(is)+1 !$OMP DO do jst=1,nstsv wfmt1(1:npc)=vmt(1:npc,ias)*wfmt(1:npc,ias,ispn,jst) ! apply muffin-tin DFT+U potential matrix if required (note that this should be ! used only in the spin-unpolarised case) if (dftu /= 0) then if (any(tvmmt(0:lmaxdm,ias))) then call cgemm('N','N',lmmaxi,nrci,lmmaxi,cone,vmatmti(1,1,1,1,ias), & lmmaxi,wfmt(1,ias,ispn,jst),lmmaxi,czero,wfmt2,lmmaxi) call cgemm('N','N',lmmaxo,nrco,lmmaxo,cone,vmatmto(1,1,1,1,ias), & lmmaxo,wfmt(ipco,ias,ispn,jst),lmmaxo,czero,wfmt2(ipco),lmmaxo) call cfcmtwr(nrc,nrci,wrcmt(:,is),wfmt2) wfmt1(1:npc)=wfmt1(1:npc)+wfmt2(1:npc) end if end if ! compute the inner products do ist=1,jst-1 vmat(ist,jst)=vmat(ist,jst)+cdotc(npc,wfmt(1,ias,ispn,ist),1,wfmt1,1) end do vmat(jst,jst)=vmat(jst,jst)+sdot(npc2,wfmt(1,ias,ispn,jst),1,wfmt1,1) end do !$OMP END DO end do end do !---------------------------! ! interstitial part ! !---------------------------! !$OMP DO do jst=1,nstsv do ispn=1,nspinor jspn=jspnfv(ispn) n=ngp(jspn) ! Fourier transform wavefunction to real-space wfir(:)=0.e0 do igp=1,n wfir(igfft(igpig(igp,jspn)))=wfgp(igp,ispn,jst) end do call cfftifc(3,ngridg,1,wfir) ! apply potential to wavefunction wfir(1:ngtot)=vir(1:ngtot)*wfir(1:ngtot) ! Fourier transform to G+p-space call cfftifc(3,ngridg,-1,wfir) do igp=1,n c(igp)=wfir(igfft(igpig(igp,jspn))) end do ! compute the inner products do ist=1,jst-1 vmat(ist,jst)=vmat(ist,jst)+cdotc(n,wfgp(1,ispn,ist),1,c,1) end do vmat(jst,jst)=vmat(jst,jst)+sdot(n*2,wfgp(1,ispn,jst),1,c,1) end do end do !$OMP END DO !$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 end subroutine elk-9.6.8/src/PaxHeaders/geomopt.f900000644000000000000000000000013214626155520014156 xustar0030 mtime=1717099344.348988346 30 atime=1717099342.297977295 30 ctime=1717099344.348988346 elk-9.6.8/src/geomopt.f900000644002504400250440000001435614626155520016711 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 moddelf use modvars implicit none ! local variables integer istp,jstp,is,i real(8) ds ! initialise global variables (and the muffin-tin radii) call init0 call init1 ! trim the Fourier components of the Kohn-Sham potential trimvg0=trimvg trimvg=.true. ! store orginal volume omega0=omega ! atomic forces are required tforce=.true. if (task == 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 ! open formatted files for writing if (mp_mpi) then open(71,file='TOTENERGY_OPT.OUT',form='FORMATTED') open(72,file='FORCEMAX.OUT',form='FORMATTED') open(73,file='GEOMETRY_OPT.OUT',form='FORMATTED') open(74,file='IADIST_OPT.OUT',form='FORMATTED') open(75,file='FORCES_OPT.OUT',form='FORMATTED') if (spinpol) then open(78,file='MOMENTM_OPT.OUT',form='FORMATTED') end if if (latvopt /= 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 ! synchronise MPI processes call mpi_barrier(mpicom,ierror) do istp=1,maxlatvstp do jstp=1,maxatpstp if (atpopt == 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 <= epsforce) then if (mp_mpi) then write(75,*) write(75,'("Force convergence target achieved")') end if exit end if if (mp_mpi.and.(jstp == 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 == 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 == 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 ! broadcast ds from master process to all other processes call mpi_bcast(ds,1,mpi_double_precision,0,mpicom,ierror) if ((istp >= 3).and.(ds <= 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 == maxlatvstp)) then write(*,*) write(*,'("Warning(geomopt): lattice optimisation failed to converge in ",& &I6," steps")') maxlatvstp end if stressp(1:nstrain)=stress(1:nstrain) ! delete the eigenvector files call delfiles(evec=.true.) ! 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 /= 0) then close(86); close(87); close(88) end if end if ! ground-state should be run again after lattice optimisation if (latvopt /= 0) call gndstate ! write optimised variables if (wrtvars) then call writevars('avec (geomopt)',nv=9,rva=avec) call writevars('omega (geomopt)',rv=omega) do is=1,nspecies call writevars('atposl (geomopt)',n1=is,nv=3*natoms(is),rva=atposl(:,:,is)) end do do is=1,nspecies call writevars('atposc (geomopt)',n1=is,nv=3*natoms(is),rva=atposc(:,:,is)) end do call writevars('engytot (geomopt)',rv=engytot) end if ! restore original parameters trimvg=trimvg0 end subroutine elk-9.6.8/src/PaxHeaders/eveqnss.f900000644000000000000000000000013214626155520014170 xustar0030 mtime=1717099344.350988357 30 atime=1717099342.300977311 30 ctime=1717099344.350988357 elk-9.6.8/src/eveqnss.f900000644002504400250440000001465414626155520016724 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 integer is,ias,i,j,k integer nrc,nrci,nrco integer l,lm,nm,npc,npci integer igp,ld,nthd real(8) ts0,ts1 complex(8) zq ! automatic arrays complex(8) wfmt2(npcmtmax,nspnfv),wfmt4(npcmtmax) complex(8) wfmt31(npcmtmax),wfmt32(npcmtmax),wfmt33(npcmtmax) complex(8) wfgp1(ngkmax),wfgp2(ngkmax),wfgp3(ngkmax) ! allocatable arrays complex(8), allocatable :: wfmt1(:,:,:),wfir1(:,:),wfir2(:) ! external functions complex(8), external :: zdotc if (.not.spinpol) then write(*,*) write(*,'("Error(eveqnss): spin-unpolarised calculation")') write(*,*) stop end if call timesec(ts0) ld=lmmaxdm*nspinor call holdthd(nstfv,nthd) ! zero the second-variational Hamiltonian (stored in the eigenvector array) evecsv(:,:)=0.d0 !-------------------------! ! muffin-tin part ! !-------------------------! allocate(wfmt1(npcmtmax,nstfv,nspnfv)) !$OMP PARALLEL DEFAULT(SHARED) & !$OMP PRIVATE(wfmt2,wfmt31,wfmt32,wfmt33,wfmt4) & !$OMP PRIVATE(ias,is,nrc,nrci,nrco) & !$OMP PRIVATE(npc,npci,zq,ispn) & !$OMP PRIVATE(ist,jst,l,nm,lm,i,j,k) & !$OMP NUM_THREADS(nthd) do ias=1,natmtot is=idxis(ias) nrc=nrcmt(is) nrci=nrcmti(is) nrco=nrc-nrci npc=npcmt(is) npci=npcmti(is) ! de-phasing factor (FC, FB & LN) if (ssdph) zq=zqss(ias) ! compute the first-variational wavefunctions do ispn=1,nspnfv if (ssdph.and.(ispn == 2)) zq=conjg(zq) !$OMP DO do ist=1,nstfv call wfmtfv(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 wfmt4(1:npc)=bsmt(1:npc,ias,3)*wfmt2(1:npc,1) call zfsht(nrc,nrci,wfmt4,wfmt31) wfmt4(1:npc)=-bsmt(1:npc,ias,3)*wfmt2(1:npc,2) call zfsht(nrc,nrci,wfmt4,wfmt32) wfmt4(1:npc)=cmplx(bsmt(1:npc,ias,1),-bsmt(1:npc,ias,2),8)*wfmt2(1:npc,2) call zfsht(nrc,nrci,wfmt4,wfmt33) ! apply muffin-tin DFT+U potential matrix if required if (tvmatmt) then do l=0,lmaxdm if (tvmmt(l,ias)) then nm=2*l+1 lm=l**2+1 i=npci+lm if (l <= lmaxi) then call zgemm('N','N',nm,nrci,nm,zone,vmatmt(lm,1,lm,1,ias),ld, & wfmt1(lm,jst,1),lmmaxi,zone,wfmt31(lm),lmmaxi) end if call zgemm('N','N',nm,nrco,nm,zone,vmatmt(lm,1,lm,1,ias),ld, & wfmt1(i,jst,1),lmmaxo,zone,wfmt31(i),lmmaxo) if (l <= lmaxi) then call zgemm('N','N',nm,nrci,nm,zone,vmatmt(lm,2,lm,2,ias),ld, & wfmt1(lm,jst,2),lmmaxi,zone,wfmt32(lm),lmmaxi) end if call zgemm('N','N',nm,nrco,nm,zone,vmatmt(lm,2,lm,2,ias),ld, & wfmt1(i,jst,2),lmmaxo,zone,wfmt32(i),lmmaxo) if (l <= lmaxi) then call zgemm('N','N',nm,nrci,nm,zone,vmatmt(lm,1,lm,2,ias),ld, & wfmt1(lm,jst,2),lmmaxi,zone,wfmt33(lm),lmmaxi) end if call zgemm('N','N',nm,nrco,nm,zone,vmatmt(lm,1,lm,2,ias),ld, & wfmt1(i,jst,2),lmmaxo,zone,wfmt33(i),lmmaxo) end if end do end if ! add to second-variational Hamiltonian matrix ! upper diagonal block call zfmtwr(nrc,nrci,wrcmt(:,is),wfmt31) do ist=1,jst evecsv(ist,jst)=evecsv(ist,jst)+zdotc(npc,wfmt1(:,ist,1),1,wfmt31,1) end do j=jst+nstfv ! lower diagonal block call zfmtwr(nrc,nrci,wrcmt(:,is),wfmt32) do ist=1,jst i=ist+nstfv evecsv(i,j)=evecsv(i,j)+zdotc(npc,wfmt1(:,ist,2),1,wfmt32,1) end do ! off-diagonal block call zfmtwr(nrc,nrci,wrcmt(:,is),wfmt33) do ist=1,nstfv evecsv(ist,j)=evecsv(ist,j)+zdotc(npc,wfmt1(:,ist,1),1,wfmt33,1) end do end do !$OMP END DO ! end loop over atoms end do !$OMP END PARALLEL deallocate(wfmt1) !---------------------------! ! interstitial part ! !---------------------------! !$OMP PARALLEL DEFAULT(SHARED) & !$OMP PRIVATE(wfir1,wfir2,wfgp1,wfgp2,wfgp3) & !$OMP PRIVATE(ispn,igp,ist,i,j) & !$OMP NUM_THREADS(nthd) allocate(wfir1(ngtot,nspnfv),wfir2(ngtot)) ! 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(1:ngtot)=bsir(1:ngtot,3)*wfir1(1:ngtot,1) call zfftifc(3,ngridg,-1,wfir2) do igp=1,ngp(1) wfgp1(igp)=wfir2(igfft(igpig(igp,1))) end do wfir2(1:ngtot)=-bsir(1:ngtot,3)*wfir1(1:ngtot,2) call zfftifc(3,ngridg,-1,wfir2) do igp=1,ngp(2) wfgp2(igp)=wfir2(igfft(igpig(igp,2))) end do wfir2(1:ngtot)=cmplx(bsir(1:ngtot,1),-bsir(1:ngtot,2),8)*wfir1(1:ngtot,2) call zfftifc(3,ngridg,-1,wfir2) do igp=1,ngp(1) wfgp3(igp)=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,wfgp1,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,wfgp2,1) end do ! off-diagonal block do ist=1,nstfv evecsv(ist,j)=evecsv(ist,j)+zdotc(ngp(1),evecfv(:,ist,1),1,wfgp3,1) end do end do !$OMP END DO deallocate(wfir1,wfir2) !$OMP END PARALLEL call freethd(nthd) ! add the diagonal first-variational part do ispn=1,nspinor do ist=1,nstfv i=nstfv*(ispn-1)+ist evecsv(i,i)=evecsv(i,i)+evalfv(ist,ispn) end do end do ! diagonalise the second-variational Hamiltonian call eveqnzh(nstsv,nstsv,evecsv,evalsvp) call timesec(ts1) !$OMP ATOMIC timesv=timesv+ts1-ts0 end subroutine elk-9.6.8/src/PaxHeaders/hartfock.f900000644000000000000000000000013214626155520014305 xustar0030 mtime=1717099344.352988368 30 atime=1717099342.303977328 30 ctime=1717099344.352988368 elk-9.6.8/src/hartfock.f900000644002504400250440000001566014626155520017037 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 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 ! 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 ! 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.) ! 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 HF_INFO.OUT file open(60,file='HF_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 HF_INFO.OUT call writeinfo(60) end if ! 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(*,'("Info(hartfock): self-consistent loop number : ",I4)') iscl end if if (iscl >= 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(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) /= 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 >= 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 < 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 call checkstop if (tstop) tlast=.true. ! 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 > 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 HF_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 HF_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) end subroutine elk-9.6.8/src/PaxHeaders/potplot.f900000644000000000000000000000013214626155520014205 xustar0030 mtime=1717099344.354988378 30 atime=1717099342.306977344 30 ctime=1717099344.354988378 elk-9.6.8/src/potplot.f900000644002504400250440000000411614626155520016731 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',action='WRITE') open(51,file='VLINES.OUT',form='FORMATTED',action='WRITE') call plot1d(50,51,1,vclmt,vclir) close(50) close(51) open(50,file='VXC1D.OUT',form='FORMATTED',action='WRITE') open(51,file='VLINES.OUT',form='FORMATTED',action='WRITE') 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',action='WRITE') call plot2d(.false.,50,1,vclmt,vclir) close(50) open(50,file='VXC2D.OUT',form='FORMATTED',action='WRITE') 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',action='WRITE') call plot3d(50,1,vclmt,vclir) close(50) open(50,file='VXC3D.OUT',form='FORMATTED',action='WRITE') 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 end subroutine !EOC elk-9.6.8/src/PaxHeaders/genwfpw.f900000644000000000000000000000013114626155520014160 xustar0030 mtime=1717099344.356988389 29 atime=1717099342.30997736 30 ctime=1717099344.356988389 elk-9.6.8/src/genwfpw.f900000644002504400250440000001347514626155520016715 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,igp,ihp integer nrc,nrci,irco,irc integer l,lm,n,i real(8) v1,v2,v3,t0,t1 complex(8) zsm,z1,z2,z3 ! automatic arrays real(8) jl(0:lmaxo,nrcmtmax) complex(8) ylm(lmmaxo) ! allocatable arrays complex(8), allocatable :: apwalm(:,:,:,:,:),evecfv(:,:,:),evecsv(:,:) complex(8), allocatable :: wfmt(:,:,:,:),wfgp(:,:,:) allocate(apwalm(ngkmax,apwordmax,lmmaxapw,natmtot,nspnfv)) allocate(evecfv(nmatmax,nstfv,nspnfv),evecsv(nstsv,nstsv)) allocate(wfmt(npcmtmax,natmtot,nspinor,nstsv)) allocate(wfgp(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 ! calculate the second-variational wavefunctions for all states call genwfsv(.true.,.true.,nstsv,[0],ngridg,igfft,ngp,igpig,apwalm,evecfv, & evecsv,wfmt,ngkmax,wfgp) 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) v1=vhpc(1,ihp,jspn); v2=vhpc(2,ihp,jspn); v3=vhpc(3,ihp,jspn) do igp=i,ngp(jspn) t1=abs(v1-vgpc(1,igp,jspn)) & +abs(v2-vgpc(2,igp,jspn)) & +abs(v3-vgpc(3,igp,jspn)) if (t1 < epslat) then wfpw(ihp,ispn0:ispn1,:)=wfgp(igp,ispn0:ispn1,:) if (igp == i) i=i+1 exit end if end do end do end do !-------------------------! ! muffin-tin part ! !-------------------------! t0=1.d0/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 4π iˡ Yₗₘ(G+p)* call genylmv(.true.,lmaxo,vgpc(:,igp,jspn),ylm) ylm(:)=conjg(ylm(:)) do is=1,nspecies nrc=nrcmt(is) nrci=nrcmti(is) irco=nrci+1 ! generate spherical Bessel functions do irc=1,nrci t1=gpc(igp,jspn)*rcmt(irc,is) call sbessel(lmaxi,t1,jl(:,irc)) end do do irc=irco,nrc t1=gpc(igp,jspn)*rcmt(irc,is) call sbessel(lmaxo,t1,jl(:,irc)) 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*wfgp(igp,ispn,ist) i=1 do irc=1,nrci do l=0,lmaxi n=2*l lm=l**2+1 z3=jl(l,irc)*z2 wfmt(i:i+n,ias,ispn,ist)=wfmt(i:i+n,ias,ispn,ist) & -z3*ylm(lm:lm+n) i=i+n+1 end do end do do irc=irco,nrc do l=0,lmaxo n=2*l lm=l**2+1 z3=jl(l,irc)*z2 wfmt(i:i+n,ias,ispn,ist)=wfmt(i:i+n,ias,ispn,ist) & -z3*ylm(lm:lm+n) i=i+n+1 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 4π (-i)ˡ Yₗₘ(H+p) call genylmv(.true.,lmaxo,vhpc(:,ihp,jspn),ylm) do is=1,nspecies nrc=nrcmt(is) nrci=nrcmti(is) irco=nrci+1 ! generate spherical Bessel functions do irc=1,nrci t1=hpc(ihp,jspn)*rcmt(irc,is) call sbessel(lmaxi,t1,jl(:,irc)) end do do irc=irco,nrc t1=hpc(ihp,jspn)*rcmt(irc,is) call sbessel(lmaxo,t1,jl(:,irc)) end do do ia=1,natoms(is) ias=idxas(ia,is) ! conjugate structure factor z1=t0*conjg(sfachp(ihp,ias,jspn)) ! loop over states do ist=1,nstsv do ispn=ispn0,ispn1 zsm=0.d0 i=1 do irc=1,nrci z2=jl(0,irc)*wfmt(i,ias,ispn,ist)*ylm(1) i=i+1 do l=1,lmaxi n=2*l lm=l**2+1 z2=z2+jl(l,irc)*sum(wfmt(i:i+n,ias,ispn,ist)*ylm(lm:lm+n)) i=i+n+1 end do zsm=zsm+wrcmt(irc,is)*z2 end do do irc=irco,nrc z2=jl(0,irc)*wfmt(i,ias,ispn,ist)*ylm(1) i=i+1 do l=1,lmaxo n=2*l lm=l**2+1 z2=z2+jl(l,irc)*sum(wfmt(i:i+n,ias,ispn,ist)*ylm(lm:lm+n)) i=i+n+1 end do zsm=zsm+wrcmt(irc,is)*z2 end do ! add to the H+p wavefunction wfpw(ihp,ispn,ist)=wfpw(ihp,ispn,ist)+z1*zsm end do end do end do end do end do end do deallocate(wfmt,wfgp) end subroutine elk-9.6.8/src/PaxHeaders/hmlxbse.f900000644000000000000000000000012614626155520014151 xustar0028 mtime=1717099344.3589884 30 atime=1717099342.311977371 28 ctime=1717099344.3589884 elk-9.6.8/src/hmlxbse.f900000644002504400250440000000125414626155520016672 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 DO DEFAULT(SHARED) & !$OMP NUM_THREADS(nthd) do ik2=1,nkptnr ! distribute among MPI processes if (mod(ik2-1,np_mpi) /= 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 PARALLEL DO call freethd(nthd) end subroutine elk-9.6.8/src/PaxHeaders/hmlxbsek.f900000644000000000000000000000013214626155520014321 xustar0030 mtime=1717099344.360988411 30 atime=1717099342.314977387 30 ctime=1717099344.360988411 elk-9.6.8/src/hmlxbsek.f900000644002504400250440000000650514626155520017051 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 ngp(nspnfv) ! allocatable arrays integer, allocatable :: igpig(:,:) complex(4), allocatable :: wfmt1(:,:,:,:),wfir1(:,:,:) complex(4), allocatable :: wfmt2(:,:,:,:),wfir2(:,:,:) complex(4), allocatable :: crhomt(:,:),crhoir(:) complex(4), allocatable :: cvclmt(:,:,:),cvclir(:,:) ! external functions complex(8), external :: zcfinp ! 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(crhomt(npcmtmax,natmtot),crhoir(ngtc)) allocate(cvclmt(npcmtmax,natmtot,nvcbse),cvclir(ngtc,nvcbse)) ! calculate the wavefunctions for all states of k-point ik2 call genwfsvp_sp(.false.,.false.,nstsv,[0],ngdgc,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 gencrho(.true.,.true.,ngtc,wfmt2(:,:,:,ist2),wfir2(:,:,ist2), & wfmt2(:,:,:,jst2),wfir2(:,:,jst2),crhomt,crhoir) ! compute the Coulomb potential call gencvclmt(nrcmt,nrcmti,nrcmtmax,rlcmt,wprcmt,npcmtmax,crhomt, & cvclmt(:,:,l)) call cpotcoul(nrcmt,nrcmti,npcmt,nrcmtmax,rlcmt,ngdgc,igfc,ngvc,gc,gclg, & ngvec,jlgrmt,ylmg,sfacg,crhoir,npcmtmax,cvclmt(:,:,l),cvclir(:,l)) cvclir(:,l)=cvclir(:,l)*cfrc(:) end do end do t0=occmax*wkptnr ! start loop over ik1 do ik1=1,nkptnr if (ik1 == ik2) then wfmt1(:,:,:,:)=wfmt2(:,:,:,:) wfir1(:,:,:)=wfir2(:,:,:) else call genwfsvp_sp(.false.,.false.,nstsv,[0],ngdgc,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 gencrho(.true.,.true.,ngtc,wfmt1(:,:,:,ist1),wfir1(:,:,ist1), & wfmt1(:,:,:,jst1),wfir1(:,:,jst1),crhomt,crhoir) 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*zcfinp(crhomt,crhoir,cvclmt(:,:,l),cvclir(:,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 cfmtconj(nrcmt(is),nrcmti(is),npcmt(is),cvclmt(:,ias,l)) end do cvclir(:,l)=conjg(cvclir(:,l)) z1=t0*zcfinp(crhomt,crhoir,cvclmt(:,:,l),cvclir(:,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(crhomt,crhoir,cvclmt,cvclir) end subroutine elk-9.6.8/src/PaxHeaders/hmldbse.f900000644000000000000000000000013214626155520014122 xustar0030 mtime=1717099344.362988421 30 atime=1717099342.317977403 30 ctime=1717099344.362988421 elk-9.6.8/src/hmldbse.f900000644002504400250440000000125414626155520016646 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 DO DEFAULT(SHARED) & !$OMP NUM_THREADS(nthd) do ik2=1,nkptnr ! distribute among MPI processes if (mod(ik2-1,np_mpi) /= 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 PARALLEL DO call freethd(nthd) end subroutine elk-9.6.8/src/PaxHeaders/hmldbsek.f900000644000000000000000000000013214626155520014275 xustar0030 mtime=1717099344.364988432 30 atime=1717099342.320977419 30 ctime=1717099344.364988432 elk-9.6.8/src/hmldbsek.f900000644002504400250440000001436514626155520017030 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 ngp(nspnfv) ! allocatable arrays integer, allocatable :: igpig(:,:) real(8), allocatable :: vgqc(:,:),gqc(:),gclgq(:),jlgqr(:,:,:) complex(8), allocatable :: ylmgq(:,:),sfacgq(:,:) complex(4), allocatable :: wfmt1(:,:,:,:),wfir1(:,:,:) complex(4), allocatable :: wfmt2(:,:,:,:),wfir2(:,:,:) complex(4), allocatable :: crhomt(:,:),crhoir(:) 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 ! generate the wavefunctions for all states of k-point ik2 call genwfsvp_sp(.false.,.false.,nstsv,[0],ngdgc,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_sp(.false.,.false.,nstsv,[0],ngdgc,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=ivqiq(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 functions call gengqf(ngrf,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(crhomt,crhoir,ist1,ist2,i2) & !$OMP NUM_THREADS(nthd) allocate(crhomt(npcmtmax,natmtot),crhoir(ngtc)) !$OMP DO do i1=1,nvbse ist1=istbse(i1,ik1) do i2=1,nvbse ist2=istbse(i2,ik2) call gencrho(.true.,.true.,ngtc,wfmt2(:,:,:,ist2),wfir2(:,:,ist2), & wfmt1(:,:,:,ist1),wfir1(:,:,ist1),crhomt,crhoir) call zftcf(ngrf,jlgqr,ylmgq,ngrf,sfacgq,crhomt,crhoir,zvv(:,i1,i2)) end do end do !$OMP END DO deallocate(crhomt,crhoir) !$OMP END PARALLEL call freethd(nthd) ! compute the matrix elements call holdthd(ncbse,nthd) !$OMP PARALLEL DEFAULT(SHARED) & !$OMP PRIVATE(crhomt,crhoir,jst1,jst2,j2) & !$OMP NUM_THREADS(nthd) allocate(crhomt(npcmtmax,natmtot),crhoir(ngtc)) !$OMP DO do j1=1,ncbse jst1=jstbse(j1,ik1) do j2=1,ncbse jst2=jstbse(j2,ik2) call gencrho(.true.,.true.,ngtc,wfmt2(:,:,:,jst2),wfir2(:,:,jst2), & wfmt1(:,:,:,jst1),wfir1(:,:,jst1),crhomt,crhoir) call zftcf(ngrf,jlgqr,ylmgq,ngrf,sfacgq,crhomt,crhoir,zcc(:,j1,j2)) end do end do !$OMP END DO deallocate(crhomt,crhoir) !$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(crhomt,crhoir,ist1,jst2,j2) & !$OMP NUM_THREADS(nthd) allocate(crhomt(npcmtmax,natmtot),crhoir(ngtc)) !$OMP DO do i1=1,nvbse ist1=istbse(i1,ik1) do j2=1,ncbse jst2=jstbse(j2,ik2) call gencrho(.true.,.true.,ngtc,wfmt2(:,:,:,jst2),wfir2(:,:,jst2), & wfmt1(:,:,:,ist1),wfir1(:,:,ist1),crhomt,crhoir) call zftcf(ngrf,jlgqr,ylmgq,ngrf,sfacgq,crhomt,crhoir,zvc(:,i1,j2)) end do end do !$OMP END DO deallocate(crhomt,crhoir) !$OMP END PARALLEL call freethd(nthd) ! compute the matrix elements call holdthd(ncbse,nthd) !$OMP PARALLEL DEFAULT(SHARED) & !$OMP PRIVATE(crhomt,crhoir,jst1,ist2,i2) & !$OMP NUM_THREADS(nthd) allocate(crhomt(npcmtmax,natmtot),crhoir(ngtc)) !$OMP DO do j1=1,ncbse jst1=jstbse(j1,ik1) do i2=1,nvbse ist2=istbse(i2,ik2) call gencrho(.true.,.true.,ngtc,wfmt2(:,:,:,ist2),wfir2(:,:,ist2), & wfmt1(:,:,:,jst1),wfir1(:,:,jst1),crhomt,crhoir) call zftcf(ngrf,jlgqr,ylmgq,ngrf,sfacgq,crhomt,crhoir,zcv(:,j1,i2)) end do end do !$OMP END DO deallocate(crhomt,crhoir) !$OMP END PARALLEL call freethd(nthd) end if ! get RPA inverse dielectric function from file ! this is the symmetric version: ϵ⁻¹ = 1 - v¹⸍² χ₀ v¹⸍² 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) end subroutine elk-9.6.8/src/PaxHeaders/gradwfcr2.f900000644000000000000000000000013214626155520014365 xustar0030 mtime=1717099344.366988443 30 atime=1717099342.323977435 30 ctime=1717099344.366988443 elk-9.6.8/src/gradwfcr2.f900000644002504400250440000000255014626155520017111 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,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) == lsp(ist,is)+1)) then l=lsp(ist,is) do lm=l**2+1,(l+1)**2 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),wcrmt(:,:,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) end subroutine elk-9.6.8/src/PaxHeaders/oepresk.f900000644000000000000000000000013214626155520014154 xustar0030 mtime=1717099344.368988454 30 atime=1717099342.325977446 30 ctime=1717099344.368988454 elk-9.6.8/src/oepresk.f900000644002504400250440000001364314626155520016705 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) use modmain use modomp implicit none ! arguments integer, intent(in) :: ik complex(8), intent(in) :: vclcv(ncrmax,natmtot,nstsv,nkpt) complex(8), intent(in) :: vclvv(nstsv,nstsv,nkpt) ! local variables integer ist,jst,idm integer is,ia,ias,ic,m integer nrc,nrci,npc,nthd real(8) de complex(8) z1,z2 ! automatic arrays complex(4) wfcr(npcmtmax,2),cfmt1(npcmtmax),cvfmt1(npcmtmax,ndmag) ! allocatable arrays complex(8), allocatable :: apwalm(:,:,:,:),evecfv(:,:),evecsv(:,:) complex(4), allocatable :: wfmt(:,:,:,:),wfir(:,:,:) complex(4), allocatable :: cfmt2(:,:),cfir2(:) complex(4), allocatable :: cvfmt2(:,:,:),cvfir2(:,:) ! external functions complex(8), external :: rcfinp,rcfmtinp ! 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) ! calculate the wavefunctions for all states allocate(wfmt(npcmtmax,natmtot,nspinor,nstsv),wfir(ngtot,nspinor,nstsv)) call genwfsv_sp(.false.,.false.,nstsv,[0],ngridg,igfft,ngk(1,ik),igkig(:,1,ik),& apwalm,evecfv,evecsv,wfmt,ngtot,wfir) deallocate(apwalm,evecfv,evecsv) call holdthd(nstsv,nthd) !$OMP PARALLEL DEFAULT(SHARED) & !$OMP PRIVATE(cfmt1,cvfmt1,cfmt2,cfir2,cvfmt2,cvfir2) & !$OMP PRIVATE(is,ia,ias,nrc,nrci,npc) & !$OMP PRIVATE(ic,ist,jst,m,z1,z2,idm,de) & !$OMP NUM_THREADS(nthd) !-----------------------------------------------------------! ! core-conduction overlap density and magnetisation ! !-----------------------------------------------------------! 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 (.not.spcore(ist,is)) cycle do m=-ksp(ist,is),ksp(ist,is)-1 ic=ic+1 ! pass in m-1/2 to wavefcr !$OMP SINGLE call wavefcr(.false.,lradstp,is,ia,ist,m,npcmtmax,wfcr) !$OMP END SINGLE !$OMP DO do jst=1,nstsv if (evalsv(jst,ik) < efermi) cycle if (spinpol) then ! compute the complex density and magnetisation call gencrm(npc,wfcr,wfcr(:,2),wfmt(:,ias,1,jst),wfmt(:,ias,2,jst),& cfmt1,npcmtmax,cvfmt1) else ! compute the complex density cfmt1(1:npc)=conjg(wfcr(1:npc,1))*wfmt(1:npc,ias,1,jst) end if z1=conjg(vclcv(ic,ias,jst,ik)) z2=rcfmtinp(nrc,nrci,wrcmt(:,is),vxmt(:,ias),cfmt1) z1=z1-conjg(z2) do idm=1,ndmag z2=rcfmtinp(nrc,nrci,wrcmt(:,is),bxmt(:,ias,idm),cvfmt1(:,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 rcadd(npc,z1,cfmt1,dvxmt(:,ias)) do idm=1,ndmag call rcadd(npc,z1,cvfmt1(:,idm),dbxmt(:,ias,idm)) end do !$OMP END CRITICAL(oepresk_) ! end loop over jst end do !$OMP END DO end do ! end loop over ist end do ! end loops over atoms and species end do end do !--------------------------------------------------------------! ! valence-conduction overlap density and magnetisation ! !--------------------------------------------------------------! allocate(cfmt2(npcmtmax,natmtot),cfir2(ngtot)) if (spinpol) then allocate(cvfmt2(npcmtmax,natmtot,ndmag),cvfir2(ngtot,ndmag)) end if !$OMP DO do ist=1,nstsv if (evalsv(ist,ik) > efermi) cycle do jst=1,nstsv if (evalsv(jst,ik) < efermi) cycle if (spinpol) then ! compute the complex density and magnetisation call gencfrm(wfmt(:,:,1,ist),wfmt(:,:,2,ist),wfir(:,1,ist),wfir(:,2,ist),& wfmt(:,:,1,jst),wfmt(:,:,2,jst),wfir(:,1,jst),wfir(:,2,jst),cfmt2,cfir2,& cvfmt2,cvfir2) else ! compute the complex density call gencrho(.false.,.true.,ngtot,wfmt(:,:,:,ist),wfir(:,:,ist), & wfmt(:,:,:,jst),wfir(:,:,jst),cfmt2,cfir2) end if z1=conjg(vclvv(ist,jst,ik)) z2=rcfinp(vxmt,vxir,cfmt2,cfir2) z1=z1-conjg(z2) do idm=1,ndmag z2=rcfinp(bxmt(:,:,idm),bxir(:,idm),cvfmt2(:,:,idm),cvfir2(:,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 rcfadd(z1,cfmt2,cfir2,dvxmt,dvxir) do idm=1,ndmag call rcfadd(z1,cvfmt2(:,:,idm),cvfir2(:,idm),dbxmt(:,:,idm),dbxir(:,idm)) end do !$OMP END CRITICAL(oepresk_) ! end loop over jst end do ! end loop over ist end do !$OMP END DO deallocate(cfmt2,cfir2) if (spinpol) deallocate(cvfmt2,cvfir2) !$OMP END PARALLEL call freethd(nthd) deallocate(wfmt,wfir) contains pure subroutine rcfadd(z,cfmt,cfir,rfmt,rfir) implicit none ! arguments complex(8), intent(in) :: z complex(4), intent(in) :: cfmt(npcmtmax,natmtot),cfir(ngtot) real(8), intent(inout) :: rfmt(npcmtmax,natmtot),rfir(ngtot) ! local variables integer is,ias do ias=1,natmtot is=idxis(ias) call rcadd(npcmt(is),z,cfmt(:,ias),rfmt(:,ias)) end do call rcadd(ngtot,z,cfir,rfir) end subroutine pure subroutine rcadd(n,z,cv,rv) implicit none ! arguments integer, intent(in) :: n complex(8), intent(in) :: z complex(4), intent(in) :: cv(n) real(8), intent(out) :: rv(n) ! local variables integer i real(8) a,b a=dble(z) b=-aimag(z) if (abs(a) > 1.d-12) then if (abs(b) > 1.d-12) then do i=1,n rv(i)=rv(i)+a*real(cv(i))+b*aimag(cv(i)) end do else rv(:)=rv(:)+a*real(cv(:)) end if else if (abs(b) > 1.d-12) rv(:)=rv(:)+b*aimag(cv(:)) end if end subroutine end subroutine elk-9.6.8/src/PaxHeaders/addlorbcnd.f900000644000000000000000000000013214626155520014600 xustar0030 mtime=1717099344.370988465 30 atime=1717099342.328977462 30 ctime=1717099344.370988465 elk-9.6.8/src/addlorbcnd.f900000644002504400250440000000154014626155520017322 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 ! add conduction local-orbitals to each species do is=1,nspecies nlo=nlorb(is) do l=0,lmaxo nlo=nlo+1 if (nlo > 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 end subroutine elk-9.6.8/src/PaxHeaders/energy.f900000644000000000000000000000013214626155520013775 xustar0030 mtime=1717099344.372988475 30 atime=1717099342.331977478 30 ctime=1717099344.372988475 elk-9.6.8/src/energy.f900000644002504400250440000002062114626155520016520 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 occupation numbers 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,idm,jdm integer is,ia,ias,n2,idu real(8) cb,sm,w,f complex(8) z1 ! allocatable arrays real(8), allocatable :: rfmt(:,:) complex(8), allocatable :: evecsv(:,:),kmat(:,:),c(:,:) ! external functions real(8), external :: rfinp complex(8), external :: 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) < 0).or.(task == 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 == 5).and.(.not.hybrid)) then ! zero correlation energy for pure Hartree-Fock engyc=0.d0 else ! correlation energy from the density engyc=rfinp(rhomt,rhoir,ecmt,ecir) end if !----------------------! ! DFT+U energy ! !----------------------! engydu=0.d0 if (dftu /= 0) then do idu=1,ndftu is=isldu(1,idu) do ia=1,natoms(is) engydu=engydu+engyadu(ia,idu) 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 evalsum=evalsum+wkpt(ik)*sum(occsv(1:nstsv,ik)*evalsv(1:nstsv,ik)) end do !------------------------! ! kinetic energy ! !------------------------! ! core electron kinetic energy call energykncr ! total electron kinetic energy if (task == 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 w=wkpt(ik) 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+w*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 sm=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) sm=sm+rfinp(magmt(:,:,idm),magir(:,idm),rfmt,bsir(:,idm)) end do ! remove fixed tensor moment potential matrix contribution if (ftmtype /= 0) then n2=(lmmaxdm*nspinor)**2 do ias=1,natmtot z1=zdotc(n2,dmatmt(:,:,:,:,ias),1,vmftm(:,:,:,:,ias),1) sm=sm+dble(z1) end do end if engykn=evalsum-engyvcl-engyvxc-sm deallocate(rfmt) end if ! add vector potential constant term (1/2c²)A²Q if required if (tafield) then sm=sum(afieldc(:)**2) engykn=engykn+(0.5d0/solsc**2)*sm*chgval end if !-------------------------------! ! entropic contribution ! !-------------------------------! entrpy=0.d0 engyts=0.d0 ! non-zero only for the Fermi-Dirac smearing function if (stype == 3) then sm=0.d0 do ik=1,nkpt w=wkpt(ik) do ist=1,nstsv f=occsv(ist,ik)/occmax if ((f > 0.d0).and.(f < 1.d0)) then sm=sm+w*(f*log(f)+(1.d0-f)*log(1.d0-f)) end if end do end do ! entropy entrpy=-occmax*kboltz*sm ! 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 /= 0) engytot=engytot+engydu ! write total energy to test file call writetest(0,'total energy',tol=1.d-5,rv=engytot) end subroutine !EOC elk-9.6.8/src/PaxHeaders/wfplot.f900000644000000000000000000000013214626155520014017 xustar0030 mtime=1717099344.374988486 30 atime=1717099342.334977495 30 ctime=1717099344.374988486 elk-9.6.8/src/wfplot.f900000644002504400250440000000560214626155520016544 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), external :: sdelta ! initialise universal variables call init0 call init1 ! read the density and potentials from file call readstate ! find the new linearisation energies call linengy ! generate the APW radial functions call genapwfr ! generate the local-orbital radial functions call genlofr ! set the occupation numbers if ((task == 61).or.(task == 62).or.(task == 63)) then ! plot of wavefunction modulus squared ik=kstlist(1,1) ist=kstlist(2,1) if ((ik < 1).or.(ik > nkpt)) then write(*,*) write(*,'("Error(wfplot): k-point out of range : ",I8)') ik write(*,*) stop end if if ((ist < 1).or.(ist > 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 occupation numbers 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 ! compute the valence charge density with the new occupation numbers call rhomagv ! 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 /= 162) then write(*,'(" for k-point ",I8," and state ",I6)') kstlist(1,1),kstlist(2,1) end if end if end subroutine elk-9.6.8/src/PaxHeaders/oepvcl.f900000644000000000000000000000013214626155520013774 xustar0030 mtime=1717099344.376988497 30 atime=1717099342.337977511 30 ctime=1717099344.376988497 elk-9.6.8/src/oepvcl.f900000644002504400250440000000216514626155520016522 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 DO DEFAULT(SHARED) & !$OMP NUM_THREADS(nthd) do ik=1,nkpt ! distribute among MPI processes if (mod(ik-1,np_mpi) /= 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 PARALLEL DO 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 end subroutine elk-9.6.8/src/PaxHeaders/oepvclk.f900000644000000000000000000000013214626155520014147 xustar0030 mtime=1717099344.379988513 30 atime=1717099342.339977522 30 ctime=1717099344.379988513 elk-9.6.8/src/oepvclk.f900000644002504400250440000002332514626155520016676 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,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(4), allocatable :: wfmt1(:,:,:,:),wfir1(:,:,:) complex(4), allocatable :: wfmt2(:,:,:,:),wfir2(:,:,:) complex(4), allocatable :: wfcr1(:,:),wfcr2(:,:) complex(4), allocatable :: crhomt1(:,:,:),crhomt2(:,:),crhoir1(:,:) complex(4), allocatable :: cvclmt(:,:),cvclir(:) ! external functions complex(8), external :: zcfinp,zcfmtinp ! 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(wfcr1(npcmtmax,2),wfcr2(npcmtmax,2)) allocate(crhomt1(npcmtmax,natmtot,nstsv),crhoir1(ngtc,nstsv)) allocate(crhomt2(npcmtmax,nstcr)) allocate(cvclmt(npcmtmax,natmtot),cvclir(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) ! calculate the wavefunctions for all states of the input k-point call genwfsv_sp(.false.,.false.,nstsv,[0],ngdgc,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 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(:) if (any(mod(iv(:),ngridk(:)) /= 0)) cycle iv(:)=iv(:)/ngridk(:) iq=ivqiq(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(.true.,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) > efermi) cycle nst=nst+1 idx(nst)=ist3 end do ! calculate the wavefunctions for occupied states call genwfsv_sp(.false.,.false.,nst,idx,ngdgc,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 gencrho(.true.,.true.,ngtc,wfmt2(:,:,:,ist3),wfir2(:,:,ist3), & wfmt1(:,:,:,ist1),wfir1(:,:,ist1),crhomt1(:,:,ist1),crhoir1(:,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 crho2(npc,wfmt2(:,ias,1,ist3),wfmt2(:,ias,2,ist3),wfcr1, & wfcr1(:,2),crhomt2(:,jc)) else call crho1(npc,wfmt2(:,ias,1,ist3),wfcr1,crhomt2(:,jc)) end if ! convert to spherical harmonics call cfshtip(nrc,nrci,crhomt2(:,jc)) end do end if end do end do end do do ist2=1,nstsv if (evalsv(ist2,ikp) > efermi) then ! calculate the Coulomb potential call gencvclmt(nrcmt,nrcmti,nrcmtmax,rlcmt,wprcmt,npcmtmax, & crhomt1(:,:,ist2),cvclmt) call cpotcoul(nrcmt,nrcmti,npcmt,nrcmtmax,rlcmt,ngdgc,igfc,ngvc,gqc, & gclgq,ngvc,jlgqrmt,ylmgq,sfacgq,crhoir1(:,ist2),npcmtmax,cvclmt,cvclir) cvclir(:)=cvclir(:)*cfrc(:) !----------------------------------------------! ! valence-valence-valence contribution ! !----------------------------------------------! do ist1=1,nstsv if (evalsv(ist1,ikp) < efermi) then z1=zcfinp(crhomt1(:,:,ist1),crhoir1(:,ist1),cvclmt,cvclir) 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=zcfmtinp(nrc,nrci,wrcmt(:,is),crhomt2(:,jc),cvclmt(:,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 ! 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 crho2(npc,wfcr1,wfcr1(:,2),wfmt1(:,ias,1,ist1), & wfmt1(:,ias,2,ist1),crhomt1(:,ias,ist1)) else call crho1(npc,wfcr1,wfmt1(:,ias,1,ist1),crhomt1(:,ias,ist1)) end if call cfshtip(nrc,nrci,crhomt1(:,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 crho2(npc,wfcr1,wfcr1(:,2),wfcr2,wfcr2(:,2),crhomt2(:,ic)) call cfshtip(nrc,nrci,crhomt2(:,ic)) end do end if end do do ist2=1,nstsv if (evalsv(ist2,ikp) > efermi) then ! calculate the Coulomb potential call cpotclmt(nrc,nrci,nrcmtmax,rlcmt(:,:,is),wprcmt(:,:,is), & crhomt1(:,ias,ist2),cvclmt) !-------------------------------------------! ! valence-core-valence contribution ! !-------------------------------------------! do ist1=1,nstsv if (evalsv(ist1,ikp) < efermi) then z1=zcfmtinp(nrc,nrci,wrcmt(:,is),crhomt1(:,ias,ist1),cvclmt) 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=zcfmtinp(nrc,nrci,wrcmt(:,is),crhomt2(:,ic),cvclmt) 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,wfir1,wfmt2,wfir2,wfcr1,wfcr2) deallocate(crhomt1,crhomt2,crhoir1) deallocate(cvclmt,cvclir) return contains pure subroutine crho1(n,wf1,wf2,crho) implicit none integer, intent(in) :: n complex(4), intent(in) :: wf1(n),wf2(n) complex(4), intent(out) :: crho(n) crho(:)=conjg(wf1(:))*wf2(:) end subroutine pure subroutine crho2(n,wf11,wf12,wf21,wf22,crho) implicit none integer, intent(in) :: n complex(4), intent(in) :: wf11(n),wf12(n),wf21(n),wf22(n) complex(4), intent(out) :: crho(n) crho(:)=conjg(wf11(:))*wf21(:)+conjg(wf12(:))*wf22(:) end subroutine end subroutine !EOC elk-9.6.8/src/PaxHeaders/polar.f900000644000000000000000000000013214626155520013621 xustar0030 mtime=1717099344.382988529 30 atime=1717099342.343977543 30 ctime=1717099344.382988529 elk-9.6.8/src/polar.f900000644002504400250440000000477214626155520016355 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2020 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. !BOP ! !ROUTINE: polar ! !INTERFACE: subroutine polar(pvl) ! !USES: use modmain use modmpi use modomp ! !INPUT/OUTPUT PARAMETERS: ! pvl : polarisation vector modulo $2\pi$ (out,real(8)) ! !DESCRIPTION: ! Calculates the polarisation vector modulo $2\pi$ in lattice coordinates ! using the formula of R. D. King-Smith and David Vanderbilt [Phys. Rev. B ! {\bf 47}, 1651(R) (1993)], namely ! $$ P_l=\sum_{\bf k}{\rm Im}\ln\det\left(\langle ! u_{i{\bf k}+\Delta{\bf k}_l}|u_{j{\bf k}}\rangle\right),$$ ! where $\Delta{\bf k}_l=(1/n_l){\bf B}_l$ and ${\bf B}_l$ is a reciprocal ! lattice vector. The number of points $n_l$ is equal to that of the original ! $k$-point grid in direction of ${\bf B}_l$, multiplied by {\tt nskpolar}. ! See also the routines {\tt polark} and {\tt bornechg}. ! ! !REVISION HISTORY: ! Created May 2020 (JKD) !EOP !BOC implicit none ! arguments real(8), intent(out) :: pvl(3) ! local variables integer ik,l,nthd real(8) vc(3),vgqc(3),gqc,pl ! allocatable arrays real(8), allocatable :: jlgqr(:,:) complex(8), allocatable :: ylmgq(:),sfacgq(:),expqmt(:,:) ! allocate local arrays allocate(jlgqr(njcmax,nspecies)) allocate(ylmgq(lmmaxo),sfacgq(natmtot)) allocate(expqmt(npcmtmax,natmtot)) maxscl=1 ! loop over reciprocal lattice vectors do l=1,3 ! create fine k-point grid in direction l ngridk(:)=ngridk0(:) ngridk(l)=nkspolar*ngridk(l) ! run one loop of the ground-state calculation call gndstate ! difference between adjacent k-vectors in this reciprocal lattice direction vc(:)=bvec(:,l)/dble(ngridk(l)) ! calculate the phase factor function exp(iq.r) call gengqf(1,vc,vgqc,gqc,jlgqr,ylmgq,sfacgq) call genexpmt(1,jlgqr,ylmgq,1,sfacgq,expqmt) pl=0.d0 ! parallel loop over non-reduced k-points call holdthd(nkptnr/np_mpi,nthd) !$OMP PARALLEL DO DEFAULT(SHARED) & !$OMP REDUCTION(+:pl) & !$OMP NUM_THREADS(nthd) do ik=1,nkptnr ! distribute among MPI processes if (mod(ik-1,np_mpi) /= lp_mpi) cycle call polark(ik,l,expqmt,pl) end do !$OMP END PARALLEL DO call freethd(nthd) ! add polarisation from each process and redistribute if (np_mpi > 1) then call mpi_allreduce(mpi_in_place,pl,1,mpi_double_precision,mpi_sum,mpicom, & ierror) end if pvl(l)=pl end do ! restore original input parameters ngridk(:)=ngridk0(:) maxscl=maxscl0 deallocate(jlgqr,ylmgq,sfacgq,expqmt) end subroutine !EOC elk-9.6.8/src/PaxHeaders/dbxcplot.f900000644000000000000000000000013014626155520014321 xustar0029 mtime=1717099344.38498854 30 atime=1717099342.345977554 29 ctime=1717099344.38498854 elk-9.6.8/src/dbxcplot.f900000644002504400250440000000416114626155520017047 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) end subroutine elk-9.6.8/src/PaxHeaders/sbesseldm.f900000644000000000000000000000013114626155520014464 xustar0030 mtime=1717099344.386988551 29 atime=1717099342.34897757 30 ctime=1717099344.386988551 elk-9.6.8/src/sbesseldm.f900000644002504400250440000000603014626155520017206 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,sm,x2 ! automatic arrays integer a(0:maxm+1),a1(0:maxm+1) integer b(0:maxm+1),b1(0:maxm+1) real(8) jl(0:lmax+1) ! external functions real(8), external :: factn,factn2,factr if (m == 0) then call sbessel(lmax,x,djl) return end if if ((m < 0).or.(m > maxm)) then write(*,*) write(*,'("Error(sbesseldm): m out of range : ",I8)') m write(*,*) stop end if if ((lmax < 0).or.(lmax > 30)) then write(*,*) write(*,'("Error(sbesseldm): lmax out of range : ",I8)') lmax write(*,*) stop end if if ((x < 0.d0).or.(x > 1.d5)) then write(*,*) write(*,'("Error(sbesseldm): x out of range : ",G18.10)') x write(*,*) stop end if if (x > 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 sm=dble(a(0))*jl(l)+dble(a1(0))*jl(l+1) do i=1,m+1 t1=t1*x sm=sm+(dble(a(i))*jl(l)+dble(a1(i))*jl(l+1))/t1 end do djl(l)=sm end do else x2=x**2 do l=0,lmax i0=max((m-l+1)/2,0) j=2*i0+l-m if (j == 0) then t1=1.d0 else t1=x**j end if t1=factr(j+m,j)*t1/(factn(i0)*factn2(j+l+m+1)*dble((-2)**i0)) sm=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) <= 1.d-40) exit sm=sm+t1 end do djl(l)=sm end do end if end subroutine !EOC elk-9.6.8/src/PaxHeaders/writehmlbse.f900000644000000000000000000000013214626155520015031 xustar0030 mtime=1717099344.388988561 30 atime=1717099342.351977586 30 ctime=1717099344.388988561 elk-9.6.8/src/writehmlbse.f900000644002504400250440000000524514626155520017561 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,ist,jst integer a,b,i,j,m,n real(8) t1 ! initialise global variables call init0 call init1 call init2 call init3 ! read density and potentials from file call readstate ! 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 occupation numbers 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) > 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) /= 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)-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 > 1) then ! ensure that the number of elements transmitted by MPI is not larger than the ! maximum packet size (assumed to be 1024³ bytes) m=67108864/nmbse do b=1,nmbse,m n=min(nmbse-b+1,m) n=nmbse*n call mpi_allreduce(mpi_in_place,hmlbse(1,b),n,mpi_double_complex,mpi_sum, & mpicom,ierror) end do end if ! write the BSE matrix to HMLBSE.OUT if (mp_mpi) then open(140,file='HMLBSE.OUT',form='UNFORMATTED',action='WRITE') write(140) nmbse write(140) hmlbse close(140) write(*,*) write(*,'("Info(writehmlbse): BSE Hamiltonian matrix written to HMLBSE.OUT")') end if ! deallocate global BSE arrays deallocate(istbse,jstbse,ijkbse,hmlbse) end subroutine elk-9.6.8/src/PaxHeaders/dielectric_bse.f900000644000000000000000000000013214626155520015444 xustar0030 mtime=1717099344.390988572 30 atime=1717099342.354977602 30 ctime=1717099344.390988572 elk-9.6.8/src/dielectric_bse.f900000644002504400250440000000734214626155520020174 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 modomp use modtest implicit none ! local variables integer a1,a2,ik1,jk1 integer i1,j1,ist1,jst1 integer iw,ioc,i,j,nthd integer ios,nmbse_ real(8) e,eji,t1,t2 complex(8) eta,z1 character(256) fname ! allocatable arrays real(8), allocatable :: w(:) complex(8), allocatable :: pmat(:,:,:),sigma(:,:,:),zv(:,:) ! 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(140,file='EVBSE.OUT',form='UNFORMATTED',action='READ',status='OLD', & iostat=ios) if (ios /= 0) then write(*,*) write(*,'("Error(dielectric_bse): error opening EVBSE.OUT")') write(*,*) stop end if read(140) nmbse_ if (nmbse /= nmbse_) then write(*,*) write(*,'("Error(dielectric_bse): differing nmbse")') write(*,'(" current : ",I6)') nmbse write(*,'(" EVBSE.OUT : ",I6)') nmbse_ stop end if read(140) evalbse read(140) hmlbse close(140) ! set up the frequency grid (starting from zero) allocate(w(nwplot)) 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) allocate(pmat(nstsv,nstsv,3)) allocate(sigma(3,3,nwplot)) allocate(zv(3,nmbse)) sigma(:,:,:)=0.d0 zv(:,:)=0.d0 call holdthd(nmbse,nthd) !$OMP PARALLEL DEFAULT(SHARED) & !$OMP PRIVATE(ik1,jk1,a1,a2,e,i1,j1) & !$OMP PRIVATE(ist1,jst1,eji,z1,i,j) & !$OMP REDUCTION(+:sigma) & !$OMP NUM_THREADS(nthd) ! 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 !$OMP SINGLE call getpmat(vkl(:,ik1),pmat) !$OMP END SINGLE !$OMP DO do a2=1,nmbse e=evalbse(a2) 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(1:3,a2)=zv(1:3,a2)+z1*pmat(ist1,jst1,1:3) end do end do end do !$OMP END DO end do !$OMP DO do a2=1,nmbse e=evalbse(a2) if (abs(e) > 1.d-8) then do i=1,3 do j=1,3 z1=zv(i,a2)*conjg(zv(j,a2))/e sigma(i,j,:)=sigma(i,j,:)+z1/(w(:)-e+eta)+conjg(z1)/(w(:)+e+eta) end do end do end if end do !$OMP END DO !$OMP END PARALLEL call freethd(nthd) z1=zi*occmax*wkptnr/omega sigma(:,:,:)=z1*sigma(:,:,:) ! loop over tensor components do ioc=1,noptcomp i=optcomp(1,ioc) j=optcomp(2,ioc) t1=0.d0 if (i == 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 ioc=1,noptcomp write(*,'(" i = ",I1,", j = ",I1)') optcomp(1:2,ioc) 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,zv) ! deallocate global BSE arrays deallocate(evalbse,hmlbse) end subroutine elk-9.6.8/src/PaxHeaders/vecplot.f900000644000000000000000000000013214626155520014160 xustar0030 mtime=1717099344.392988583 30 atime=1717099342.356977613 30 ctime=1717099344.392988583 elk-9.6.8/src/vecplot.f900000644002504400250440000001241514626155520016705 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 == 72).or.(task == 73).or.(task == 82).or.(task == 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 == 71) then open(50,file='MAG1D.OUT',form='FORMATTED') open(51,file='MAGLINES.OUT',form='FORMATTED') else if (task == 81) then open(50,file='BXC1D.OUT',form='FORMATTED') open(51,file='BXCLINES.OUT',form='FORMATTED') else if (task == 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 == 71) then write(*,'(" 1D magnetisation density written to MAG1D.OUT")') write(*,'(" vertex location lines written to MAGLINES.OUT")') else if (task == 81) then write(*,'(" 1D exchange-correlation field written to BXC1D.OUT")') write(*,'(" vertex location lines written to BXCLINES.OUT")') else if (task == 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 == 72) then open(50,file='MAG2D.OUT',form='FORMATTED') else if (task == 82) then open(50,file='BXC2D.OUT',form='FORMATTED') else if (task == 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 == 72) then write(*,'(" 2D magnetisation density written to MAG2D.OUT")') else if (task == 82) then write(*,'(" 2D exchange-correlation field written to BXC2D.OUT")') else if (task == 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 == 73) then open(50,file='MAG3D.OUT',form='FORMATTED') else if (task == 83) then open(50,file='BXC3D.OUT',form='FORMATTED') else if (task == 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 == 73) then write(*,'(" 3D magnetisation density written to MAG3D.OUT")') else if (task == 83) then write(*,'(" 3D exchange-correlation field written to BXC3D.OUT")') else if (task == 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) end subroutine !EOC elk-9.6.8/src/PaxHeaders/nesting.f900000644000000000000000000000013214626155520014153 xustar0030 mtime=1717099344.394988594 30 atime=1717099342.359977629 30 ctime=1717099344.394988594 elk-9.6.8/src/nesting.f900000644002504400250440000000441714626155520016703 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 nesting use modmain use modomp implicit none ! local variables integer iq,ik,jk,jkq,ivkq(3) integer ist,i1,i2,i3,nthd real(8) sm0,sm1,sm2,sm3 real(8) vl(3),vc(3),x,t1 ! allocatable arrays real(8), allocatable :: nq(:) ! external functions real(8), external :: sdelta ! initialise universal variables call init0 call init1 call init2 ! 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 allocate(nq(nqpt)) t1=1.d0/swidth sm0=0.d0 call holdthd(nqpt,nthd) !$OMP PARALLEL DO DEFAULT(SHARED) & !$OMP PRIVATE(sm1,sm2,sm3,ik,jk) & !$OMP PRIVATE(ivkq,jkq,ist,x) & !$OMP REDUCTION(+:sm0) & !$OMP NUM_THREADS(nthd) do iq=1,nqpt !$OMP CRITICAL(nesting_) write(*,'("Info(nesting): ",I6," of ",I6," q-points")') iq,nqpt !$OMP END CRITICAL(nesting_) sm1=0.d0 do ik=1,nkptnr jk=ivkik(ivk(1,ik),ivk(2,ik),ivk(3,ik)) ivkq(:)=ivk(:,ik)+ivq(:,iq) ivkq(:)=mod(ivkq(:),ngridk(:)) jkq=ivkik(ivkq(1),ivkq(2),ivkq(3)) sm2=0.d0 do ist=1,nstsv x=(efermi-evalsv(ist,jk))*t1 sm2=sm2+sdelta(stype,x)*t1 end do sm3=0.d0 do ist=1,nstsv x=(efermi-evalsv(ist,jkq))*t1 sm3=sm3+sdelta(stype,x)*t1 end do sm1=sm1+sm2*sm3 end do nq(iq)=occmax*omegabz*wkptnr*sm1 sm0=sm0+omegabz*wqpt(iq)*nq(iq) end do !$OMP END PARALLEL DO call freethd(nthd) open(50,file='NEST3D.OUT',form='FORMATTED') write(50,'(3I6," : grid size")') ngridq(:) do i3=0,ngridq(3)-1 vl(3)=dble(i3)/dble(ngridq(3)) do i2=0,ngridq(2)-1 vl(2)=dble(i2)/dble(ngridq(2)) do i1=0,ngridq(1)-1 vl(1)=dble(i1)/dble(ngridq(1)) vc(:)=bvec(:,1)*vl(1)+bvec(:,2)*vl(2)+bvec(:,3)*vl(3) iq=ivqiq(i1,i2,i3) write(50,'(4G18.10)') vc(:),nq(iq) end do end do end do close(50) open(50,file='NESTING.OUT',form='FORMATTED') write(50,'(G18.10)') sm0 close(50) write(*,*) write(*,'("Info(nesting):")') write(*,'(" Nesting function N(q) written to NEST3D.OUT for plotting")') write(*,*) write(*,'(" Total integrated nesting per unit volume written to NESTING.OUT")') deallocate(nq) end subroutine elk-9.6.8/src/PaxHeaders/writeevbse.f900000644000000000000000000000013014626155520014661 xustar0029 mtime=1717099344.39798861 30 atime=1717099342.362977645 29 ctime=1717099344.39798861 elk-9.6.8/src/writeevbse.f900000644002504400250440000000436414626155520017414 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 implicit none ! local variables integer ik,a integer ios,nmbse_ ! allocatable arrays complex(8), allocatable :: w(:) ! 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(140,file='HMLBSE.OUT',form='UNFORMATTED',action='READ',status='OLD', & iostat=ios) if (ios /= 0) then write(*,*) write(*,'("Error(writeevbse): error opening HMLBSE.OUT")') write(*,*) stop end if read(140) nmbse_ if (nmbse /= nmbse_) then write(*,*) write(*,'("Error(writeevbse): differing nmbse")') write(*,'(" current : ",I6)') nmbse write(*,'(" HMLBSE.OUT : ",I6)') nmbse_ write(*,*) stop end if read(140) hmlbse close(140) write(*,'("Info(writeevbse): diagonalising the BSE Hamiltonian matrix")') if (bsefull) then ! full non-Hermitian matrix allocate(w(nmbse)) call eveqnzg(nmbse,nmbse,hmlbse,w) evalbse(:)=dble(w(:)) else ! Hermitian block only call eveqnzh(nmbse,nmbse,hmlbse,evalbse) end if ! write the BSE eigenvectors and eigenvalues to file open(140,file='EVBSE.OUT',form='UNFORMATTED',action='WRITE') write(140) nmbse write(140) evalbse write(140) hmlbse close(140) ! write the BSE eigenvalues to file open(50,file='EIGVAL_BSE.OUT',form='FORMATTED',action='WRITE') 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) end subroutine elk-9.6.8/src/PaxHeaders/emdplot3d.f900000644000000000000000000000013214626155520014377 xustar0030 mtime=1717099344.398988615 30 atime=1717099342.365977662 30 ctime=1717099344.398988615 elk-9.6.8/src/emdplot3d.f900000644002504400250440000000202514626155520017120 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), 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) end subroutine elk-9.6.8/src/PaxHeaders/emdplot2d.f900000644000000000000000000000013214626155520014376 xustar0030 mtime=1717099344.400988626 30 atime=1717099342.367977672 30 ctime=1717099344.400988626 elk-9.6.8/src/emdplot2d.f900000644002504400250440000000311314626155520017116 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), 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) end subroutine elk-9.6.8/src/PaxHeaders/emdplot1d.f900000644000000000000000000000013214626155520014375 xustar0030 mtime=1717099344.402988637 30 atime=1717099342.370977689 30 ctime=1717099344.402988637 elk-9.6.8/src/emdplot1d.f900000644002504400250440000000470614626155520017126 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 use modtest 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), 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 < 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)) < 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=ip01d,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 ! write to test file if required if (test.and.(ip == 1)) then call writetest(171,'integrated EMD',nv=n,tol=1.d-4,rva=f2) end if end do !$OMP END DO deallocate(f1,f2) !$OMP END PARALLEL call freethd(nthd) close(50) deallocate(x,wx) end subroutine elk-9.6.8/src/PaxHeaders/rfhkintp.f900000644000000000000000000000013214626155520014331 xustar0030 mtime=1717099344.404988648 30 atime=1717099342.373977705 30 ctime=1717099344.404988648 elk-9.6.8/src/rfhkintp.f900000644002504400250440000000461114626155520017055 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 ivkb(1,i,j,k)=ivk0(1)+i ivkb(2,i,j,k)=ivk0(2)+j ivkb(3,i,j,k)=ivk0(3)+k ivhb(:,i,j,k)=ivh0(:)+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 == 0).and.(j == 0).and.(k == 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 > 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 < 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 end function elk-9.6.8/src/PaxHeaders/writewfpw.f900000644000000000000000000000013214626155520014542 xustar0030 mtime=1717099344.406988658 30 atime=1717099342.376977721 30 ctime=1717099344.406988658 elk-9.6.8/src/writewfpw.f900000644002504400250440000000403414626155520017265 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 use moddelf 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 ! 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) call delfile('WFPW.OUT') ! 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(270,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) /= 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(u270) write(270,rec=ik) vkl(:,ik),nhkmax,nspinor,nstsv,wfpw !$OMP END CRITICAL(u270) end do !$OMP END DO deallocate(wfpw) !$OMP END PARALLEL call freethd(nthd) close(270) ! 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 end subroutine elk-9.6.8/src/PaxHeaders/vblocal.f900000644000000000000000000000013214626155520014126 xustar0030 mtime=1717099344.408988669 30 atime=1717099342.379977737 30 ctime=1717099344.408988669 elk-9.6.8/src/vblocal.f900000644002504400250440000000274414626155520016657 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2020 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 vblocal(vmt,vir,bmt) use modmain use modomp implicit none ! arguments real(8), intent(out) :: vmt(npcmtmax,natmtot),vir(ngtot) real(8), intent(out) :: bmt(npcmtmax,natmtot,ndmag) ! local variables integer idm,is,ias,nthd integer nrc,nrci,npc ! automatic arrays real(8) rfmt(npcmtmax) call holdthd(natmtot+1,nthd) !$OMP PARALLEL DEFAULT(SHARED) & !$OMP PRIVATE(rfmt,ias,is) & !$OMP PRIVATE(nrc,nrci,npc,idm) & !$OMP NUM_THREADS(nthd) !$OMP DO do ias=1,natmtot is=idxis(ias) nrc=nrcmt(is) nrci=nrcmti(is) ! convert muffin-tin Kohn-Sham potential to coarse radial mesh call rfmtftoc(nrc,nrci,vsmt(:,ias),rfmt) ! convert to spherical coordinates call rbsht(nrc,nrci,rfmt,vmt(:,ias)) ! multiply by radial integration weights call rfcmtwr(nrc,nrci,wrcmt(:,is),vmt(:,ias)) end do !$OMP END DO NOWAIT ! multiply interstitial Kohn-Sham potential by characteristic function !$OMP SINGLE vir(:)=vsir(:)*cfunir(:) !$OMP END SINGLE NOWAIT ! repeat for the Kohn-Sham magnetic field if (spinpol) then do idm=1,ndmag !$OMP DO do ias=1,natmtot is=idxis(ias) nrc=nrcmt(is) nrci=nrcmti(is) npc=npcmt(is) bmt(1:npc,ias,idm)=bsmt(1:npc,ias,idm) call rfcmtwr(nrc,nrci,wrcmt(:,is),bmt(:,ias,idm)) end do !$OMP END DO end do end if !$OMP END PARALLEL call freethd(nthd) end subroutine elk-9.6.8/src/PaxHeaders/writefsm.f900000644000000000000000000000013014626155520014342 xustar0029 mtime=1717099344.41098868 30 atime=1717099342.381977748 29 ctime=1717099344.41098868 elk-9.6.8/src/writefsm.f900000644002504400250440000000151014626155520017063 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 writefsm(fnum) use modmain implicit none ! arguments integer, intent(in) :: fnum ! local variables integer is,ia,ias write(fnum,*) if ((abs(fsmtype) == 1).or.(abs(fsmtype) == 3)) then write(fnum,'("FSM global effective field",T30,": ",3G18.10)') bfsmc(1:ndmag) end if if ((abs(fsmtype) == 2).or.(abs(fsmtype) == 3)) then write(fnum,'("FSM local muffin-tin effective fields :")') 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,bfsmcmt(1:ndmag,ias) end do end do end if end subroutine elk-9.6.8/src/PaxHeaders/getwfpw.f900000644000000000000000000000013214626155520014167 xustar0030 mtime=1717099344.412988691 30 atime=1717099342.384977764 30 ctime=1717099344.412988691 elk-9.6.8/src/getwfpw.f900000644002504400250440000001177714626155520016726 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(u270) open(270,file='WFPW.OUT',form='UNFORMATTED',access='DIRECT',recl=recl) read(270,rec=ik) vkl_,nhkmax_,nspinor_,nstsv_,wfpw close(270) !$OMP END CRITICAL(u270) t1=abs(vkl(1,ik)-vkl_(1))+abs(vkl(2,ik)-vkl_(2))+abs(vkl(3,ik)-vkl_(3)) if (t1 > 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 /= 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 /= 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 /= 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 < 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 < 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 == 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 < 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 == 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_) end subroutine elk-9.6.8/src/PaxHeaders/plotpt1d.f900000644000000000000000000000013114626155520014252 xustar0030 mtime=1717099344.414988702 29 atime=1717099342.38797778 30 ctime=1717099344.414988702 elk-9.6.8/src/plotpt1d.f900000644002504400250440000000523114626155520016776 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 < 1) then write(*,*) write(*,'("Error(plotpt1d): nv < 1 : ",I8)') nv write(*,*) stop end if if (np < nv) then write(*,*) write(*,'("Error(plotpt1d): np < nv : ",2I8)') np,nv write(*,*) stop end if ! special case of 1 vertex if (nv == 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 > n).or.(i == (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) end subroutine !EOC elk-9.6.8/src/PaxHeaders/init1.f900000644000000000000000000000013214626155520013530 xustar0030 mtime=1717099344.416988712 30 atime=1717099342.390977796 30 ctime=1717099344.416988712 elk-9.6.8/src/init1.f900000644002504400250440000002571014626155520016257 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 modgw use modtest use modvars ! !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,ias,nppt integer io,ilo,i1,i2,i3 integer ik,isym,jspn integer l1,l2,l3,m1,m2,m3 integer lm1,lm2,lm3,n real(8) vl(3),vc(3),t1 real(8) boxl(3,0:3) real(8) ts0,ts1 ! external functions complex(8), 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 == 0) then nsymkpt=1 symkpt(:,:,1)=symlat(:,:,1) else lsym(:)=.false. do isym=1,nsymcrys if (reducek == 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) /= 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 == [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 == 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 boxl(:,0)=vkloff(:)/dble(ngridk(:)) if (task == 102) boxl(:,0)=0.d0 boxl(:,1)=boxl(:,0) boxl(:,2)=boxl(:,0) boxl(:,3)=boxl(:,0) boxl(1,1)=boxl(1,1)+1.d0 boxl(2,2)=boxl(2,2)+1.d0 boxl(3,3)=boxl(3,3)+1.d0 ! k-point set and box for Fermi surface plots if (any(task == [100,101,102])) then ngridk(:)=np3d(:) if (task /= 102) boxl(:,:)=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,boxl,nkpt, & ivkik,ivkiknr,ivk,vkl,vkc,wkpt,wkptnr) ! write to VARIABLES.OUT if (wrtvars) then 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 end if if (any(task == [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) < 0).or.tddos.or.any(task == [5,10,205,300,600,620]).or. & ksgwrho) then nppt=nkptnr else nppt=nkpt end if ! find the maximum number of G+k-vectors call findngkmax(nkpt,vkc,nspnfv,vqcss,ngvc,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 == 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(ngvc,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 if (wrtvars) then call writevars('nspnfv',iv=nspnfv) call writevars('gkmax',rv=gkmax) call writevars('ngk',nv=nspnfv*nkpt,iva=ngk) do ik=1,nkpt do jspn=1,nspnfv call writevars('igkig',n1=jspn,n2=ik,nv=ngk(jspn,ik),iva=igkig(:,jspn,ik)) end do end do end if !---------------------------------! ! 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) if (l1 == lmaxo) nlmwf(is)=lmoapw(is) end do ! find the maximum number of local-orbitals nlomax=max(nlomax,nlorb(is)) ! find the maximum local-orbital order and angular momentum n=0 do ilo=1,nlorb(is) l1=lorbl(ilo,is) lolmax=max(lolmax,l1) lorbordmax=max(lorbordmax,lorbord(ilo,is)) n=n+2*l1+1 end do ! number of (l,m) components used for generating the muffin-tin wavefunctions nlmwf(is)=max(nlmwf(is),n) 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 ias=1,natmtot is=idxis(ias) do l1=0,lmaxapw do io=1,apword(l1,is) apwe(io,l1,ias)=apwe0(io,l1,is) end do end do do ilo=1,nlorb(is) do io=1,lorbord(ilo,is) lorbe(io,ilo,ias)=lorbe0(io,ilo,is) 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 /= 0) then ! allocate energy arrays to calculate Slater integrals with Yukawa potential if (allocated(efdu)) deallocate(efdu) allocate(efdu(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 < 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 n=ngk(jspn,ik)+nlotot if (nstfv > n) then write(*,*) write(*,'("Error(init1): number of first-variational states larger than & &matrix size")') write(*,'("Increase rgkmax or decrease nempty")') write(*,*) stop end if nmat(jspn,ik)=n nmatmax=max(nmatmax,n) 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=l1*(l1+1)+m1+1 do l3=0,lmaxapw do m3=-l3,l3 lm3=l3*(l3+1)+m3+1 do l2=0,lmaxo do m2=-l2,l2 lm2=l2*(l2+1)+m2+1 gntyry(lm2,lm3,lm1)=gauntyry(l1,l2,l3,m1,m2,m3) end do end do end do end do end do end do ! check if the scissor correction is non-zero if (abs(scissor).gt.1.d-8) then tscissor=.true. else tscissor=.false. end if ! write to VARIABLES.OUT if (wrtvars) then call writevars('nempty',iv=nempty) call writevars('nstfv',iv=nstfv) call writevars('nlotot',iv=nlotot) call writevars('nstsv',iv=nstsv) end if call timesec(ts1) timeinit=timeinit+ts1-ts0 end subroutine !EOC elk-9.6.8/src/PaxHeaders/init2.f900000644000000000000000000000013214626155520013531 xustar0030 mtime=1717099344.419988728 30 atime=1717099342.393977813 30 ctime=1717099344.419988728 elk-9.6.8/src/init2.f900000644002504400250440000000775514626155520016271 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 modphonon use modgw use modvars use modmpi implicit none ! local variables logical lsym(48) integer isym,iv(3) real(8) boxl(3,0:3) real(8) ts0,ts1 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 == 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 == [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 (any(task == [5,300,600,620]).or.(xctype(1) < 0).or.ksgwrho) then ! allow the q-point grid to be smaller than the k-point grid for OEP, ! Hartree-Fock, RDMFT and GW if (any(ngridq(:) <= 0)) ngridq(:)=ngridk(:) else ngridq(:)=abs(ngridq(:)) end if ! check that the q-point and k-point grids are commensurate for some tasks if (any(task == [5,205,240,241,300,600,620]).or.(xctype(1) < 0).or.ksgwrho) then iv(:)=mod(ngridk(:),ngridq(:)) if (any(iv(:) /= 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(ivqiq)) deallocate(ivqiq) allocate(ivqiq(0:ngridq(1)-1,0:ngridq(2)-1,0:ngridq(3)-1)) if (allocated(ivqiqnr)) deallocate(ivqiqnr) allocate(ivqiqnr(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,ivqiq, & ivqiqnr,ivq,vql,vqc,wqpt,wqptnr) ! write the q-points to QPOINTS.OUT if (mp_mpi) call writeqpts ! write to VARIABLES.OUT if (wrtvars) then 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('ivqiq',nv=nqptnr,iva=ivqiq) call writevars('ivq',nv=3*nqptnr,iva=ivq) call writevars('vql',nv=3*nqptnr,rva=vql) call writevars('wqpt',nv=nqpt,rva=wqpt) end if !--------------------------------------------------------! ! OEP, Hartree-Fock, RDMFT, BSE and GW variables ! !--------------------------------------------------------! if (any(task == [5,180,185,205,300,320,330,331,600,620]).or. & (xctype(1) < 0).or.ksgwrho) then ! determine the regularised Coulomb Green's function for small q call gengclq ! output the Coulomb Green's function to GCLQ.OUT if (mp_mpi) call writegclq ! initialise OEP variables if (xctype(1) < 0) call initoep end if if (task == 300) then if (allocated(vclmat)) deallocate(vclmat) allocate(vclmat(nstsv,nstsv,nkpt)) if (allocated(dkdc)) deallocate(dkdc) allocate(dkdc(nstsv,nstsv,nkpt)) end if !-------------------------! ! phonon variables ! !-------------------------! if (allocated(wphq)) deallocate(wphq) if (task == 220) then allocate(wphq(nbph,npp1d)) end if if (any(task == [240,241,250,270,271,280,285])) then allocate(wphq(nbph,nqpt)) end if call timesec(ts1) timeinit=timeinit+ts1-ts0 end subroutine elk-9.6.8/src/PaxHeaders/findsymcrys.f900000644000000000000000000000013214626155520015056 xustar0030 mtime=1717099344.421988739 30 atime=1717099342.396977829 30 ctime=1717099344.421988739 elk-9.6.8/src/findsymcrys.f900000644002504400250440000001501614626155520017603 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) ! Modified for trimvg=.false., November 2023 (JKD) !EOP !BOC implicit none ! local variables integer ia,ja,is,is0 integer isym,nsym,i,n integer lspl(48),lspn(48),ilspl real(8) v0(3),v1(3),v2(3),t1 real(8) apl1(3,maxatoms,maxspecies) real(8) apl2(3,maxatoms,maxspecies) ! automatic arrays integer iea(natmmax,nspecies,48) real(8) vtl(3,natmmax**2+1) ! allocate global equivalent atom arrays if (allocated(ieqatom)) deallocate(ieqatom) allocate(ieqatom(natmmax,nspecies,maxsymcrys)) if (allocated(eqatoms)) deallocate(eqatoms) allocate(eqatoms(natmmax,natmmax,nspecies)) ! find the smallest set of atoms is0=1 do is=1,nspecies if (natoms(is) < natoms(is0)) is0=is end do if (natmtot > 0) then ! position of first atom in the smallest atom set v0(:)=atposl(:,1,is0) ! shift basis so that the first atom in the smallest atom set is at the origin do is=1,nspecies do ia=1,natoms(is) ! shift atom apl1(:,ia,is)=atposl(:,ia,is)-v0(:) ! map lattice coordinates back to [0,1) call r3frac(epslat,apl1(:,ia,is)) end do end do else v0(:)=0.d0 end if ! determine possible translation vectors from smallest set of atoms n=1 vtl(:,1)=0.d0 do ia=1,natoms(is0) do ja=2,natoms(is0) ! compute difference between two atom vectors v1(:)=apl1(:,ia,is0)-apl1(:,ja,is0) ! 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) > 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 < 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 /= 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) apl2(:,ia,is)=apl1(:,ia,is)+vtl(:,i) end do end do ! find the symmetries for current translation call findsym(apl1,apl2,nsym,lspl,lspn,iea) do isym=1,nsym nsymcrys=nsymcrys+1 if (nsymcrys > 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) == -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 exit end if end do if (tshift) then if (tsyminv) then ! if inversion exists then shift basis so that inversion center is at origin v1(:)=v1(:)/2.d0 else v1(:)=0.d0 end if else v1(:)=v0(:) end if do is=1,nspecies do ia=1,natoms(is) ! shift atom atposl(:,ia,is)=apl1(:,ia,is)+v1(:) ! map lattice coordinates back to [0,1) call r3frac(epslat,atposl(:,ia,is)) ! map lattice coordinates to [-0.5,0.5) if inversion exists if (tsyminv) then do i=1,3 if (atposl(i,ia,is) > 0.5d0) atposl(i,ia,is)=atposl(i,ia,is)-1.d0 end do end if ! determine the new Cartesian coordinates call r3mv(avec,atposl(:,ia,is),atposc(:,ia,is)) end do end do do isym=1,nsymcrys ! recalculate crystal symmetry translation vectors 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)) ! translation vector in Cartesian coordinates call r3mv(avec,vtlsymc(:,isym),vtcsymc(:,isym)) ! set flag for zero translation vector t1=abs(vtlsymc(1,isym))+abs(vtlsymc(2,isym))+abs(vtlsymc(3,isym)) if (t1 < 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 (tshift.and.(natmtot > 0)) then v1(:)=atposl(:,1,is0)-v0(:) call r3frac(epslat,v1) t1=abs(v1(1))+abs(v1(2))+abs(v1(3)) if (mp_mpi.and.(t1 > 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) end subroutine !EOC elk-9.6.8/src/PaxHeaders/plotpt3d.f900000644000000000000000000000013014626155520014253 xustar0029 mtime=1717099344.42398875 30 atime=1717099342.399977845 29 ctime=1717099344.42398875 elk-9.6.8/src/plotpt3d.f900000644002504400250440000000142714626155520017003 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. pure 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 end subroutine elk-9.6.8/src/PaxHeaders/fermisurfbxsf.f900000644000000000000000000000013214626155520015371 xustar0030 mtime=1717099344.425988761 30 atime=1717099342.402977861 30 ctime=1717099344.425988761 elk-9.6.8/src/fermisurfbxsf.f900000644002504400250440000001000314626155520020105 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) e0,e1 ! allocatable arrays real(8), allocatable :: evalfv(:,:) complex(8), allocatable :: evecfv(:,:,:),evecsv(:,:) ! initialise universal variables call init0 ! no k-point reduction for the collinear case reducek0=reducek if (ndmag == 1) reducek=0 call init1 ! read density and potentials from file call readstate ! Fourier transform Kohn-Sham potential to G-space call genvsig ! 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 call sort(nstsv,evalsv(:,ik)) end do end if ! number of files to plot (2 for collinear magnetism, 1 otherwise) if (ndmag == 1) then nf=2 else nf=1 end if do f=1,nf if (nf == 2) then if (f == 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 < efermi).and.(e1 > 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 write(50,'(3G18.10)') 0.d0,0.d0,0.d0 do i=1,3 write(50,'(3G18.10)') bvec(:,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 == 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")') ! restore original parameters reducek=reducek0 end subroutine elk-9.6.8/src/PaxHeaders/genspecies.f900000644000000000000000000000013214626155520014631 xustar0030 mtime=1717099344.427988772 30 atime=1717099342.405977877 30 ctime=1717099344.427988772 elk-9.6.8/src/genspecies.f900000644002504400250440000000467214626155520017364 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(64) symb,name ! allocatable arrays real(8), allocatable :: r(:),rho(:),vr(:),rwf(:,:,:) read(fnum,*,err=20) nz if (nz <= 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 <= 0).or.(nst > 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 /= 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) > 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-9.6.8/src/PaxHeaders/writeexpmat.f900000644000000000000000000000013214626155520015055 xustar0030 mtime=1717099344.429988782 30 atime=1717099342.407977888 30 ctime=1717099344.429988782 elk-9.6.8/src/writeexpmat.f900000644002504400250440000000473314626155520017606 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 ! 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)) call gengqf(1,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) <= 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) <= 0) then ik=jk else ik=kstlist(1,jk) end if if ((ik <= 0).or.(ik > 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, <...>, |<...>|² 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) end subroutine elk-9.6.8/src/PaxHeaders/writekpts.f900000644000000000000000000000013214626155520014540 xustar0030 mtime=1717099344.431988793 30 atime=1717099342.410977904 30 ctime=1717099344.431988793 elk-9.6.8/src/writekpts.f900000644002504400250440000000137314626155520017266 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) end subroutine !EOC elk-9.6.8/src/PaxHeaders/wfcrplot.f900000644000000000000000000000013114626155520014343 xustar0030 mtime=1717099344.433988804 29 atime=1717099342.41397792 30 ctime=1717099344.433988804 elk-9.6.8/src/wfcrplot.f900000644002504400250440000000177114626155520017074 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")') end subroutine elk-9.6.8/src/PaxHeaders/writedos.f900000644000000000000000000000013214626155520014344 xustar0030 mtime=1717099344.435988815 30 atime=1717099342.416977936 30 ctime=1717099344.435988815 elk-9.6.8/src/writedos.f900000644002504400250440000000321214626155520017064 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 ! initialise universal variables call init0 call init1 ! read density and potentials from file call readstate ! 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 occupation numbers from file call readevalsv if (dosocc) call readoccsv ! 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")') end subroutine elk-9.6.8/src/PaxHeaders/energykncr.f900000644000000000000000000000013214626155520014653 xustar0030 mtime=1717099344.437988825 30 atime=1717099342.419977953 30 ctime=1717099344.437988825 elk-9.6.8/src/energykncr.f900000644002504400250440000000223714626155520017401 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 ! automatic arrays real(8) rfmt(npmtmax) ! external functions real(8), external :: rfmtinp ! 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 i=1 if (spincore) then ! spin-polarised core 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 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 end subroutine elk-9.6.8/src/PaxHeaders/ggamt_1.f900000644000000000000000000000013214626155520014023 xustar0030 mtime=1717099344.439988836 30 atime=1717099342.421977963 30 ctime=1717099344.439988836 elk-9.6.8/src/ggamt_1.f900000644002504400250440000000305714626155520016552 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 ! automatic arrays real(8) grfmt(np,3),gvrho(np,3),rfmt1(np),rfmt2(np) nr=nrmt(is) nri=nrmti(is) ! |grad rho| if (tsh) then call gradrfmt(nr,nri,rlmt(:,-1,is),wcrmt(:,:,is),rho,np,grfmt) else call rfsht(nr,nri,rho,rfmt1) call gradrfmt(nr,nri,rlmt(:,-1,is),wcrmt(:,:,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(:,-2,is),wcrmt(:,:,is),rho,rfmt2) else call grad2rfmt(nr,nri,rlmt(:,-1,is),rlmt(:,-2,is),wcrmt(:,:,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),wcrmt(:,:,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 end subroutine !EOC elk-9.6.8/src/PaxHeaders/ggair_1.f900000644000000000000000000000013114626155520014014 xustar0030 mtime=1717099344.441988847 29 atime=1717099342.42497798 30 ctime=1717099344.441988847 elk-9.6.8/src/ggair_1.f900000644002504400250440000000326614626155520016546 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 ig,ifg,i ! allocatable arrays real(8), allocatable :: gvrho(:,:),rfir(:) complex(8), allocatable :: zfft1(:),zfft2(:) allocate(gvrho(ngtot,3),rfir(ngtot)) allocate(zfft1(nfgrz),zfft2(nfgrz)) call rzfftifc(3,ngridg,-1,rho,zfft1) ! |grad rho| do i=1,3 do ifg=1,nfgrz ig=igrzf(ifg) if (ig <= ngvc) then zfft2(ifg)=vgc(i,ig)*cmplx(-aimag(zfft1(ifg)),dble(zfft1(ifg)),8) else zfft2(ifg)=0.d0 end if end do call rzfftifc(3,ngridg,1,gvrho(:,i),zfft2) end do grho(:)=sqrt(gvrho(:,1)**2+gvrho(:,2)**2+gvrho(:,3)**2) ! grad^2 rho do ifg=1,nfgrz ig=igrzf(ifg) if (ig <= ngvc) then zfft2(ifg)=-(gc(ig)**2)*zfft1(ifg) else zfft2(ifg)=0.d0 end if end do call rzfftifc(3,ngridg,1,g2rho,zfft2) ! (grad rho).(grad |grad rho|) call rzfftifc(3,ngridg,-1,grho,zfft1) g3rho(:)=0.d0 do i=1,3 do ifg=1,nfgrz ig=igrzf(ifg) if (ig <= ngvec) then zfft2(ifg)=vgc(i,ig)*cmplx(-aimag(zfft1(ifg)),dble(zfft1(ifg)),8) else zfft2(ifg)=0.d0 end if end do call rzfftifc(3,ngridg,1,rfir,zfft2) g3rho(:)=g3rho(:)+gvrho(:,i)*rfir(:) end do deallocate(gvrho,rfir,zfft1,zfft2) end subroutine !EOC elk-9.6.8/src/PaxHeaders/ggamt_sp_1.f900000644000000000000000000000013214626155520014525 xustar0030 mtime=1717099344.443988858 30 atime=1717099342.427977996 30 ctime=1717099344.443988858 elk-9.6.8/src/ggamt_sp_1.f900000644002504400250440000000775314626155520017263 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 ! automatic arrays real(8) grfmt(np,3),gvup(np,3),gvdn(np,3) real(8) 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),wcrmt(:,:,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(:,-2,is),wcrmt(:,:,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),wcrmt(:,:,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),wcrmt(:,:,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(:,-2,is),wcrmt(:,:,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),wcrmt(:,:,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),wcrmt(:,:,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 end subroutine !EOC elk-9.6.8/src/PaxHeaders/ggair_sp_1.f900000644000000000000000000000013214626155520014517 xustar0030 mtime=1717099344.445988869 30 atime=1717099342.430978012 30 ctime=1717099344.445988869 elk-9.6.8/src/ggair_sp_1.f900000644002504400250440000001063014626155520017241 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(:,:),rfir(:) complex(8), allocatable :: zfft1(:),zfft2(:) allocate(gvup(ngtot,3),gvdn(ngtot,3),rfir(ngtot)) allocate(zfft1(nfgrz),zfft2(nfgrz)) !----------------! ! rho up ! !----------------! call rzfftifc(3,ngridg,-1,rhoup,zfft1) ! |grad rhoup| do i=1,3 do ifg=1,nfgrz ig=igrzf(ifg) if (ig <= ngvc) then zfft2(ifg)=vgc(i,ig)*cmplx(-aimag(zfft1(ifg)),dble(zfft1(ifg)),8) else zfft2(ifg)=0.d0 end if end do call rzfftifc(3,ngridg,1,gvup(:,i),zfft2) end do gup(:)=sqrt(gvup(:,1)**2+gvup(:,2)**2+gvup(:,3)**2) ! grad^2 rhoup do ifg=1,nfgrz ig=igrzf(ifg) if (ig <= ngvc) then zfft2(ifg)=-(gc(ig)**2)*zfft1(ifg) else zfft2(ifg)=0.d0 end if end do call rzfftifc(3,ngridg,1,g2up,zfft2) ! (grad rhoup).(grad |grad rhoup|) call rzfftifc(3,ngridg,-1,gup,zfft1) g3up(:)=0.d0 do i=1,3 do ifg=1,nfgrz ig=igrzf(ifg) if (ig <= ngvec) then zfft2(ifg)=vgc(i,ig)*cmplx(-aimag(zfft1(ifg)),dble(zfft1(ifg)),8) else zfft2(ifg)=0.d0 end if end do call rzfftifc(3,ngridg,1,rfir,zfft2) g3up(:)=g3up(:)+gvup(:,i)*rfir(:) end do !------------------! ! rho down ! !------------------! call rzfftifc(3,ngridg,-1,rhodn,zfft1) ! |grad rhodn| do i=1,3 do ifg=1,nfgrz ig=igrzf(ifg) if (ig <= ngvc) then zfft2(ifg)=vgc(i,ig)*cmplx(-aimag(zfft1(ifg)),dble(zfft1(ifg)),8) else zfft2(ifg)=0.d0 end if end do call rzfftifc(3,ngridg,1,gvdn(:,i),zfft2) end do gdn(:)=sqrt(gvdn(:,1)**2+gvdn(:,2)**2+gvdn(:,3)**2) ! grad^2 rhodn do ifg=1,nfgrz ig=igrzf(ifg) if (ig <= ngvc) then zfft2(ifg)=-(gc(ig)**2)*zfft1(ifg) else zfft2(ifg)=0.d0 end if end do call rzfftifc(3,ngridg,1,g2dn,zfft2) ! (grad rhodn).(grad |grad rhodn|) call rzfftifc(3,ngridg,-1,gdn,zfft1) g3dn(:)=0.d0 do i=1,3 do ifg=1,nfgrz ig=igrzf(ifg) if (ig <= ngvec) then zfft2(ifg)=vgc(i,ig)*cmplx(-aimag(zfft1(ifg)),dble(zfft1(ifg)),8) else zfft2(ifg)=0.d0 end if end do call rzfftifc(3,ngridg,1,rfir,zfft2) g3dn(:)=g3dn(:)+gvdn(:,i)*rfir(:) 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|) call rzfftifc(3,ngridg,-1,grho,zfft1) g3rho(:)=0.d0 do i=1,3 do ifg=1,nfgrz ig=igrzf(ifg) if (ig <= ngvec) then zfft2(ifg)=vgc(i,ig)*cmplx(-aimag(zfft1(ifg)),dble(zfft1(ifg)),8) else zfft2(ifg)=0.d0 end if end do call rzfftifc(3,ngridg,1,rfir,zfft2) g3rho(:)=g3rho(:)+(gvup(:,i)+gvdn(:,i))*rfir(:) end do deallocate(gvup,gvdn,rfir,zfft1,zfft2) end subroutine !EOC elk-9.6.8/src/PaxHeaders/ggamt_2a.f900000644000000000000000000000013214626155520014165 xustar0030 mtime=1717099344.448988885 30 atime=1717099342.433978028 30 ctime=1717099344.448988885 elk-9.6.8/src/ggamt_2a.f900000644002504400250440000000253414626155520016713 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 ! automatic arrays real(8) grfmt(np,3),rfmt1(np),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(:,-2,is),wcrmt(:,:,is),rho,rfmt2) else call rfsht(nr,nri,rho,rfmt1) call grad2rfmt(nr,nri,rlmt(:,-1,is),rlmt(:,-2,is),wcrmt(:,:,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),wcrmt(:,:,is),rho,np,grfmt) else call gradrfmt(nr,nri,rlmt(:,-1,is),wcrmt(:,:,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 end subroutine !EOC elk-9.6.8/src/PaxHeaders/ggair_2a.f900000644000000000000000000000013214626155520014157 xustar0030 mtime=1717099344.450988895 30 atime=1717099342.436978044 30 ctime=1717099344.450988895 elk-9.6.8/src/ggair_2a.f900000644002504400250440000000244214626155520016703 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 ig,ifg,i ! allocatable arrays complex(8), allocatable :: zfft1(:),zfft2(:) allocate(zfft1(nfgrz),zfft2(nfgrz)) ! Fourier transform density to G-space call rzfftifc(3,ngridg,-1,rho,zfft1) ! grad^2 rho do ifg=1,nfgrz ig=igrzf(ifg) if (ig <= ngvc) then zfft2(ifg)=-(gc(ig)**2)*zfft1(ifg) else zfft2(ifg)=0.d0 end if end do call rzfftifc(3,ngridg,1,g2rho,zfft2) ! grad rho do i=1,3 do ifg=1,nfgrz ig=igrzf(ifg) if (ig <= ngvc) then zfft2(ifg)=vgc(i,ig)*cmplx(-aimag(zfft1(ifg)),dble(zfft1(ifg)),8) else zfft2(ifg)=0.d0 end if end do call rzfftifc(3,ngridg,1,gvrho(:,i),zfft2) end do ! (grad rho)^2 grho2(:)=gvrho(:,1)**2+gvrho(:,2)**2+gvrho(:,3)**2 deallocate(zfft1,zfft2) end subroutine !EOC elk-9.6.8/src/PaxHeaders/ggamt_2b.f900000644000000000000000000000013214626155520014166 xustar0030 mtime=1717099344.452988906 30 atime=1717099342.438978055 30 ctime=1717099344.452988906 elk-9.6.8/src/ggamt_2b.f900000644002504400250440000000323414626155520016712 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 ! automatic arrays real(8) 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),wcrmt(:,:,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),wcrmt(:,:,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)) end subroutine !EOC elk-9.6.8/src/PaxHeaders/ggair_2b.f900000644000000000000000000000013214626155520014160 xustar0030 mtime=1717099344.454988917 30 atime=1717099342.441978071 30 ctime=1717099344.454988917 elk-9.6.8/src/ggair_2b.f900000644002504400250440000000330614626155520016704 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 :: rfir1(:),rfir2(:) complex(8), allocatable :: zfft1(:),zfft2(:) allocate(rfir1(ngtot),rfir2(ngtot)) allocate(zfft1(nfgrz),zfft2(nfgrz)) !------------------! ! exchange ! !------------------! ! compute grad dxdgr2 call rzfftifc(3,ngridg,-1,dxdgr2,zfft1) ! (grad dxdgr2).(grad rho) rfir1(:)=0.d0 do i=1,3 do ifg=1,nfgrz ig=igrzf(ifg) zfft2(ifg)=vgc(i,ig)*cmplx(-aimag(zfft1(ifg)),dble(zfft1(ifg)),8) end do call rzfftifc(3,ngridg,1,rfir2,zfft2) rfir1(:)=rfir1(:)+rfir2(:)*gvrho(:,i) end do vx(:)=vx(:)-2.d0*(rfir1(:)+dxdgr2(:)*g2rho(:)) !---------------------! ! correlation ! !---------------------! ! compute grad dcdgr2 call rzfftifc(3,ngridg,-1,dcdgr2,zfft1) ! (grad dcdgr2).(grad rho) rfir1(:)=0.d0 do i=1,3 do ifg=1,nfgrz ig=igrzf(ifg) zfft2(ifg)=vgc(i,ig)*cmplx(-aimag(zfft1(ifg)),dble(zfft1(ifg)),8) end do call rzfftifc(3,ngridg,1,rfir2,zfft2) rfir1(:)=rfir1(:)+rfir2(:)*gvrho(:,i) end do vc(:)=vc(:)-2.d0*(rfir1(:)+dcdgr2(:)*g2rho(:)) deallocate(rfir1,rfir2,zfft1,zfft2) end subroutine !EOC elk-9.6.8/src/PaxHeaders/ggamt_sp_2a.f900000644000000000000000000000013214626155520014667 xustar0030 mtime=1717099344.456988928 30 atime=1717099342.444978087 30 ctime=1717099344.456988928 elk-9.6.8/src/ggamt_sp_2a.f900000644002504400250440000001017314626155520017413 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 ! automatic arrays real(8) 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(:,-2,is),wcrmt(:,:,is),rfmt1,rfmt2) call rbsht(nr,nri,rfmt2,g2up) ! grad rhoup in spherical coordinates call gradrfmt(nr,nri,rlmt(:,-1,is),wcrmt(:,:,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(:,-2,is),wcrmt(:,:,is),rfmt1,rfmt2) call rbsht(nr,nri,rfmt2,g2dn) ! grad rhodn in spherical coordinates call gradrfmt(nr,nri,rlmt(:,-1,is),wcrmt(:,:,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) end subroutine !EOC elk-9.6.8/src/PaxHeaders/ggair_sp_2a.f900000644000000000000000000000013214626155520014661 xustar0030 mtime=1717099344.458988939 30 atime=1717099342.447978103 30 ctime=1717099344.458988939 elk-9.6.8/src/ggair_sp_2a.f900000644002504400250440000000473714626155520017416 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),rhodn(ngtot) real(8), intent(out) :: g2up(ngtot),g2dn(ngtot) real(8), intent(out) :: gvup(ngtot,3),gvdn(ngtot,3) real(8), intent(out) :: gup2(ngtot),gdn2(ngtot),gupdn(ngtot) ! local variables integer ig,ifg,i ! allocatable arrays complex(8), allocatable :: zfft1(:),zfft2(:) allocate(zfft1(nfgrz),zfft2(nfgrz)) !----------------! ! rho up ! !----------------! call rzfftifc(3,ngridg,-1,rhoup,zfft1) ! compute grad^2 rhoup do ifg=1,nfgrz ig=igrzf(ifg) if (ig <= ngvc) then zfft2(ifg)=-(gc(ig)**2)*zfft1(ifg) else zfft2(ifg)=0.d0 end if end do call rzfftifc(3,ngridg,1,g2up,zfft2) ! grad rhoup do i=1,3 do ifg=1,nfgrz ig=igrzf(ifg) if (ig <= ngvc) then zfft2(ifg)=vgc(i,ig)*cmplx(-aimag(zfft1(ifg)),dble(zfft1(ifg)),8) else zfft2(ifg)=0.d0 end if end do call rzfftifc(3,ngridg,1,gvup(:,i),zfft2) end do ! (grad rhoup)^2 gup2(:)=gvup(:,1)**2+gvup(:,2)**2+gvup(:,3)**2 !------------------! ! rho down ! !------------------! call rzfftifc(3,ngridg,-1,rhodn,zfft1) ! compute grad^2 rhodn do ifg=1,nfgrz ig=igrzf(ifg) if (ig <= ngvc) then zfft2(ifg)=-(gc(ig)**2)*zfft1(ifg) else zfft2(ifg)=0.d0 end if end do call rzfftifc(3,ngridg,1,g2dn,zfft2) ! grad rhodn do i=1,3 do ifg=1,nfgrz ig=igrzf(ifg) if (ig <= ngvc) then zfft2(ifg)=vgc(i,ig)*cmplx(-aimag(zfft1(ifg)),dble(zfft1(ifg)),8) else zfft2(ifg)=0.d0 end if end do call rzfftifc(3,ngridg,1,gvdn(:,i),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) end subroutine !EOC elk-9.6.8/src/PaxHeaders/ggamt_sp_2b.f900000644000000000000000000000013114626155520014667 xustar0030 mtime=1717099344.460988949 29 atime=1717099342.45097812 30 ctime=1717099344.460988949 elk-9.6.8/src/ggamt_sp_2b.f900000644002504400250440000000706414626155520017421 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 ! automatic arrays real(8) 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),wcrmt(:,:,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),wcrmt(:,:,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),wcrmt(:,:,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),wcrmt(:,:,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),wcrmt(:,:,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),wcrmt(:,:,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 end subroutine !EOC elk-9.6.8/src/PaxHeaders/ggair_sp_2b.f900000644000000000000000000000012714626155520014666 xustar0029 mtime=1717099344.46298896 29 atime=1717099342.45297813 29 ctime=1717099344.46298896 elk-9.6.8/src/ggair_sp_2b.f900000644002504400250440000000676214626155520017417 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),g2dn(ngtot) real(8), intent(in) :: gvup(ngtot,3),gvdn(ngtot,3) real(8), intent(inout) :: vxup(ngtot),vxdn(ngtot) real(8), intent(inout) :: vcup(ngtot),vcdn(ngtot) real(8), intent(in) :: dxdgu2(ngtot),dxdgd2(ngtot),dxdgud(ngtot) real(8), intent(in) :: dcdgu2(ngtot),dcdgd2(ngtot),dcdgud(ngtot) ! local variables integer ig,ifg,i ! allocatable arrays real(8), allocatable :: rfir1(:),rfir2(:) complex(8), allocatable :: zfft1(:),zfft2(:) allocate(rfir1(ngtot),rfir2(ngtot)) allocate(zfft1(nfgrz),zfft2(nfgrz)) !------------------! ! exchange ! !------------------! ! compute grad dxdgu2 call rzfftifc(3,ngridg,-1,dxdgu2,zfft1) ! (grad dxdgu2).(grad rhoup) rfir1(:)=0.d0 do i=1,3 do ifg=1,nfgrz ig=igrzf(ifg) zfft2(ifg)=vgc(i,ig)*cmplx(-aimag(zfft1(ifg)),dble(zfft1(ifg)),8) end do call rzfftifc(3,ngridg,1,rfir2,zfft2) rfir1(:)=rfir1(:)+rfir2(:)*gvup(:,i) end do vxup(:)=vxup(:)-2.d0*(rfir1(:)+dxdgu2(:)*g2up(:))-dxdgud(:)*g2dn(:) ! compute grad dxdgd2 call rzfftifc(3,ngridg,-1,dxdgd2,zfft1) ! (grad dxdgd2).(grad rhodn) rfir1(:)=0.d0 do i=1,3 do ifg=1,nfgrz ig=igrzf(ifg) zfft2(ifg)=vgc(i,ig)*cmplx(-aimag(zfft1(ifg)),dble(zfft1(ifg)),8) end do call rzfftifc(3,ngridg,1,rfir2,zfft2) rfir1(:)=rfir1(:)+rfir2(:)*gvdn(:,i) end do vxdn(:)=vxdn(:)-2.d0*(rfir1(:)+dxdgd2(:)*g2dn(:))-dxdgud(:)*g2up(:) ! compute grad dxdgud call rzfftifc(3,ngridg,-1,dxdgud,zfft1) ! (grad dxdgud).(grad rhodn) and (grad dxdgud).(grad rhoup) do i=1,3 do ifg=1,nfgrz ig=igrzf(ifg) zfft2(ifg)=vgc(i,ig)*cmplx(-aimag(zfft1(ifg)),dble(zfft1(ifg)),8) end do call rzfftifc(3,ngridg,1,rfir2,zfft2) vxup(:)=vxup(:)-rfir2(:)*gvdn(:,i) vxdn(:)=vxdn(:)-rfir2(:)*gvup(:,i) end do !---------------------! ! correlation ! !---------------------! ! compute grad dcdgu2 call rzfftifc(3,ngridg,-1,dcdgu2,zfft1) ! (grad dcdgu2).(grad rhoup) rfir1(:)=0.d0 do i=1,3 do ifg=1,nfgrz ig=igrzf(ifg) zfft2(ifg)=vgc(i,ig)*cmplx(-aimag(zfft1(ifg)),dble(zfft1(ifg)),8) end do call rzfftifc(3,ngridg,1,rfir2,zfft2) rfir1(:)=rfir1(:)+rfir2(:)*gvup(:,i) end do vcup(:)=vcup(:)-2.d0*(rfir1(:)+dcdgu2(:)*g2up(:))-dcdgud(:)*g2dn(:) ! compute grad dcdgd2 call rzfftifc(3,ngridg,-1,dcdgd2,zfft1) ! (grad dcdgd2).(grad rhodn) rfir1(:)=0.d0 do i=1,3 do ifg=1,nfgrz ig=igrzf(ifg) zfft2(ifg)=vgc(i,ig)*cmplx(-aimag(zfft1(ifg)),dble(zfft1(ifg)),8) end do call rzfftifc(3,ngridg,1,rfir2,zfft2) rfir1(:)=rfir1(:)+rfir2(:)*gvdn(:,i) end do vcdn(:)=vcdn(:)-2.d0*(rfir1(:)+dcdgd2(:)*g2dn(:))-dcdgud(:)*g2up(:) ! compute grad dcdgud call rzfftifc(3,ngridg,-1,dcdgud,zfft1) ! (grad dcdgud).(grad rhodn) and (grad dcdgud).(grad rhoup) do i=1,3 do ifg=1,nfgrz ig=igrzf(ifg) zfft2(ifg)=vgc(i,ig)*cmplx(-aimag(zfft1(ifg)),dble(zfft1(ifg)),8) end do call rzfftifc(3,ngridg,1,rfir2,zfft2) vcup(:)=vcup(:)-rfir2(:)*gvdn(:,i) vcdn(:)=vcdn(:)-rfir2(:)*gvup(:,i) end do deallocate(rfir1,rfir2,zfft1,zfft2) end subroutine !EOC elk-9.6.8/src/PaxHeaders/writeemd.f900000644000000000000000000000013214626155520014324 xustar0030 mtime=1717099344.465988976 30 atime=1717099342.455978147 30 ctime=1717099344.465988976 elk-9.6.8/src/writeemd.f900000644002504400250440000000513314626155520017050 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 use moddelf implicit none ! local variables integer ik,ihk,recl integer ist,ispn,nthd real(8) sm,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 ! find the new linearisation energies call linengy ! generate the APW radial functions call genapwfr ! generate the local-orbital radial functions call genlofr ! get the occupation numbers from file do ik=1,nkpt call getoccsv(filext,ik,vkl(:,ik),occsv(:,ik)) end do ! delete existing EMD.OUT if (mp_mpi) call delfile('EMD.OUT') ! synchronise MPI processes call mpi_barrier(mpicom,ierror) allocate(emd(nhkmax)) inquire(iolength=recl) vkl(:,1),nhkmax,emd deallocate(emd) open(250,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,sm) & !$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) /= 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 sm=0.d0 do ist=1,nstsv do ispn=1,nspinor z1=wfpw(ihk,ispn,ist) t1=dble(z1)**2+aimag(z1)**2 sm=sm+occsv(ist,ik)*t1 end do end do emd(ihk)=sm end do !$OMP CRITICAL(u250) write(250,rec=ik) vkl(:,ik),nhk(1,ik),emd !$OMP END CRITICAL(u250) end do !$OMP END DO deallocate(emd,wfpw) !$OMP END PARALLEL call freethd(nthd) close(250) ! 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 end subroutine elk-9.6.8/src/PaxHeaders/reademd.f900000644000000000000000000000013214626155520014105 xustar0030 mtime=1717099344.467988987 30 atime=1717099342.458978163 30 ctime=1717099344.467988987 elk-9.6.8/src/reademd.f900000644002504400250440000000262614626155520016635 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 use modtest 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_,nhk_,emd open(250,file='EMD.OUT',form='UNFORMATTED',access='DIRECT',recl=recl) do ik=1,nkpt read(250,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 > 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) /= nhk_) then write(*,*) write(*,'("Error(reademd): 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(250) ! write the EMD of the last k-point to test file if required call writetest(170,'electron momentum density',nv=nhkmax,tol=1.d-4,rva=emd) deallocate(emd) end subroutine elk-9.6.8/src/PaxHeaders/emdplot.f900000644000000000000000000000013214626155520014150 xustar0030 mtime=1717099344.469988998 30 atime=1717099342.461978179 30 ctime=1717099344.469988998 elk-9.6.8/src/emdplot.f900000644002504400250440000000216014626155520016671 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 > 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) end subroutine elk-9.6.8/src/PaxHeaders/init3.f900000644000000000000000000000013114626155520013531 xustar0030 mtime=1717099344.471989009 29 atime=1717099342.46397819 30 ctime=1717099344.471989009 elk-9.6.8/src/init3.f900000644002504400250440000000303214626155520016252 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 use modmpi 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) > gmaxrf) then ngrf=ig-1 exit end if end do ngrf=min(ngrf,ngvc) ! write the G-vectors to file if (mp_mpi) call writegvecrf ! frequencies for reponse functions nwrf=1 if (allocated(wrf)) deallocate(wrf) if (any(task == [320,330,331])) then 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) == 210).or.(fxctype(1) == 211)) then wrf(1)=cmplx(0.d0,swidth,8) end if else if (any(task == [600,610,620,640]).or.ksgwrho) then ! GW Matsubara frequencies call genwgw else nwrf=1 allocate(wrf(nwrf)) wrf(1)=cmplx(0.d0,swidth,8) end if ! write to VARIABLES.OUT if (wrtvars) then call writevars('gmaxrf',rv=gmaxrf) call writevars('ngrf',iv=ngrf) call writevars('nwrf',iv=nwrf) call writevars('wrf',nv=nwrf,zva=wrf) end if end subroutine elk-9.6.8/src/PaxHeaders/init4.f900000644000000000000000000000013214626155520013533 xustar0030 mtime=1717099344.473989019 30 atime=1717099342.466978206 30 ctime=1717099344.473989019 elk-9.6.8/src/init4.f900000644002504400250440000001434414626155520016263 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,n,i integer l1,l2,l3,m1,m2,m3 integer lm1,lm2,lm3 real(8) vl(3),vc(3) ! external functions real(8), external :: gaunt !---------------------------! ! H+k-vector arrays ! !---------------------------! if (any(task == [135,170,171,172,173])) then if (task == 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 == 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 if (wrtvars) then call writevars('hkmax',rv=hkmax) call writevars('nhk',nv=nspnfv*nkpt,iva=nhk) do ik=1,nkpt do jspn=1,nspnfv call writevars('ihkig',n1=jspn,n2=ik,nv=nhk(jspn,ik), & iva=ihkig(:,jspn,ik)) end do end do end if end if !-----------------------------! ! G+k+q-vector arrays ! !-----------------------------! if (task == 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 == 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,ngvec)) 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 == 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(gvsmt)) deallocate(gvsmt) allocate(gvsmt(npmtmax)) ! combined target array for Kohn-Sham potential and magnetic field derivative if (allocated(dvsbs)) deallocate(dvsbs) n=npmtmax*natmtot+ngtot if (spinpol) n=n+(npcmtmax*natmtot+ngtot)*ndmag allocate(dvsbs(n)) ! zero the array dvsbs(:)=0.d0 ! associate pointer arrays with target dvsmt(1:npmtmax,1:natmtot) => dvsbs(1:) i=npmtmax*natmtot+1 dvsir(1:ngtot) => dvsbs(i:) if (spinpol) then i=i+ngtot dbsmt(1:npcmtmax,1:natmtot,1:ndmag) => dvsbs(i:) i=i+npcmtmax*natmtot*ndmag dbsir(1:ngtot,1:ndmag) => dvsbs(i:) end if if (allocated(dvsig)) deallocate(dvsig) allocate(dvsig(ngvec)) 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=l1*(l1+1)+m1+1 do l3=0,lmaxapw do m3=-l3,l3 lm3=l3*(l3+1)+m3+1 do l2=0,lmaxo do m2=-l2,l2 lm2=l2*(l2+1)+m2+1 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 end subroutine elk-9.6.8/src/PaxHeaders/bfieldfsm.f900000644000000000000000000000013014626155520014435 xustar0029 mtime=1717099344.47598903 30 atime=1717099342.469978222 29 ctime=1717099344.47598903 elk-9.6.8/src/bfieldfsm.f900000644002504400250440000000436214626155520017166 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: bfieldfsm ! !INTERFACE: subroutine bfieldfsm ! !USES: use modmain ! !DESCRIPTION: ! Updates the effective magnetic field, ${\bf B}_{\rm FSM}$, required for ! fixing the spin moment to a given value, ${\bf M}_{\rm FSM}$. This is done ! 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 a scaling factor. ! ! !REVISION HISTORY: ! Created March 2005 (JKD) !EOP !BOC implicit none ! local variables integer is,ia,ias real(8) v1(3),v2(3),t1 if ((.not.spinpol).or.(fsmtype == 0)) return ! fixed spin direction not valid for collinear magnetism if ((.not.ncmag).and.(fsmtype < 0)) return ! determine the global effective field if ((abs(fsmtype) == 1).or.(abs(fsmtype) == 3)) then if (ncmag) then v1(:)=momtot(:) else v1(:)=0.d0 v1(3)=momtot(1) end if v2(:)=v1(:)-momfix(:) if (ncmag) then bfsmc(:)=bfsmc(:)+taufsm*v2(:) else bfsmc(1)=bfsmc(1)+taufsm*v2(3) end if ! make sure that the constraining field is perpendicular to the fixed moment ! for fixed direction calculations (Y. Kvashnin and LN) if (fsmtype < 0) call r3vo(momfix,bfsmc) end if if ((abs(fsmtype) == 2).or.(abs(fsmtype) == 3)) then ! determine the muffin-tin fields for fixed local moments do is=1,nspecies do ia=1,natoms(is) ias=idxas(ia,is) ! if any component is >= 1000 then do not fix the moment t1=sum(abs(mommtfix(:,ia,is))) if (t1 >= 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 < 0) call r3vo(mommtfix(:,ia,is),bfsmcmt(:,ias)) end do end do end if end subroutine !EOC elk-9.6.8/src/PaxHeaders/testcheck.f900000644000000000000000000000013214626155520014461 xustar0030 mtime=1717099344.477989041 30 atime=1717099342.472978238 30 ctime=1717099344.477989041 elk-9.6.8/src/testcheck.f900000644002504400250440000001127314626155520017207 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(*,*) error 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_ /= 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(*,*) error stop end if if (nv_ /= 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(*,*) error stop end if if (nv <= 0) then write(*,*) write(*,'("Error(testcheck): nv <= 0 : ",I8)') nv write(*,*) error stop end if if (vt == 1) then ! integer variables do j=1,nv read(91,*,err=10) k,iv_ if (j /= k) goto 10 read(92,*,err=20) k,iv if (j /= k) goto 20 if (iv /= 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(*,*) error stop end if end do else if (vt == 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 /= k) goto 10 read(92,*,err=20) k,rv if (j /= k) goto 20 t1=abs(rv_-rv) t2=abs(rv_)*tol if ((t1 > t2).and.(abs(rv_) > 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(*,*) error stop end if end do else if (vt == 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 /= k) goto 10 read(92,*,err=20) k,a,b zv=cmplx(a,b,8) if (j /= k) goto 20 t1=abs(zv_-zv) t2=abs(zv_)*tol if ((t1 > t2).and.(abs(zv_) > 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(*,*) error stop end if end do else write(*,*) write(*,'("Error(testcheck): variable type not defined : ",I8)') vt write(*,*) error stop end if close(91) close(92) n=n+1 end if end do if (n == 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(*,*) error stop 20 continue write(*,*) write(*,'("Error(testcheck): error reading from ",A)') trim(fname) write(*,*) error stop end subroutine elk-9.6.8/src/PaxHeaders/pade.f900000644000000000000000000000013214626155520013415 xustar0030 mtime=1717099344.478989046 30 atime=1717099342.475978254 30 ctime=1717099344.478989046 elk-9.6.8/src/pade.f900000644002504400250440000000464514626155520016150 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 <= 0).or.(no <= 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 > 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)) > 1.d100).or.(abs(aimag(a1)) > 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)) > 1.d100).or.(abs(aimag(b1)) > 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 >= 1.d-14) then uo(i)=a1/b1 else uo(i)=0.d0 end if end do deallocate(g) end subroutine !EOC elk-9.6.8/src/PaxHeaders/wsplint.f900000644000000000000000000000013214626155520014204 xustar0030 mtime=1717099344.481989062 30 atime=1717099342.478978271 30 ctime=1717099344.481989062 elk-9.6.8/src/wsplint.f900000644002504400250440000000135714626155520016734 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), external :: splint if (n <= 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 end subroutine elk-9.6.8/src/PaxHeaders/gensocfr.f900000644000000000000000000000013214626155520014312 xustar0030 mtime=1717099344.483989073 30 atime=1717099342.481978287 30 ctime=1717099344.483989073 elk-9.6.8/src/gensocfr.f900000644002504400250440000000200314626155520017027 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 ! automatic arrays real(8) vr(nrmtmax),dvr(nrmtmax) if (.not.spinorb) return ! coefficient of spin-orbit coupling cso=y00*socscf/(4.d0*solsc**2) call holdthd(natmtot,nthd) !$OMP PARALLEL DO DEFAULT(SHARED) & !$OMP PRIVATE(vr,dvr,is,nr,nri) & !$OMP PRIVATE(irc,ir,rm) & !$OMP NUM_THREADS(nthd) 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) call splined(nr,wcrmt(:,:,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 PARALLEL DO call freethd(nthd) end subroutine elk-9.6.8/src/PaxHeaders/pades.f900000644000000000000000000000013214626155520013600 xustar0030 mtime=1717099344.484989079 30 atime=1717099342.484978303 30 ctime=1717099344.484989079 elk-9.6.8/src/pades.f900000644002504400250440000000210614626155520016321 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 <= 0) then write(*,*) write(*,'("Error(pades): ns <= 0 : ",I8)') ns write(*,*) stop end if if (ns == 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) end subroutine elk-9.6.8/src/PaxHeaders/genscss.f900000644000000000000000000000013014626155520014147 xustar0029 mtime=1717099344.48698909 30 atime=1717099342.486978314 29 ctime=1717099344.48698909 elk-9.6.8/src/genscss.f900000644002504400250440000000273414626155520016701 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 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,nscss,vsc) ! construct supercell atomic positions and magnetic fields do is=1,nspecies na=0 do ia=1,natoms0(is) do i=1,nscss na=na+1 if (na > 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)+atposc0(:,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*bfcmt00(1,ia,is)-sn*bfcmt00(2,ia,is) bfcmt0(2,na,is)=sn*bfcmt00(1,ia,is)+cs*bfcmt00(2,ia,is) bfcmt0(3,na,is)=bfcmt00(3,ia,is) mommtfix(1,na,is)=cs*mommtfix0(1,ia,is)-sn*mommtfix0(2,ia,is) mommtfix(2,na,is)=sn*mommtfix0(1,ia,is)+cs*mommtfix0(2,ia,is) mommtfix(3,na,is)=mommtfix0(3,ia,is) end do end do natoms(is)=na end do end subroutine elk-9.6.8/src/PaxHeaders/rfcmtwr.f900000644000000000000000000000012514626155520014172 xustar0028 mtime=1717099344.4889891 29 atime=1717099342.48997833 28 ctime=1717099344.4889891 elk-9.6.8/src/rfcmtwr.f900000644002504400250440000000134414626155520016714 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2020 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. pure subroutine rfcmtwr(nr,nri,wr,rfmt) use modmain implicit none ! arguments integer, intent(in) :: nr,nri real(8), intent(in) :: wr(nr) real(8), intent(inout) :: rfmt(*) ! local variables integer n,ir,i real(8) t1 i=1 if (lmaxi == 1) then do ir=1,nri rfmt(i:i+3)=(pi*wr(ir))*rfmt(i:i+3) i=i+4 end do else t1=fourpi/dble(lmmaxi) n=lmmaxi-1 do ir=1,nri rfmt(i:i+n)=(t1*wr(ir))*rfmt(i:i+n) i=i+lmmaxi end do end if t1=fourpi/dble(lmmaxo) n=lmmaxo-1 do ir=nri+1,nr rfmt(i:i+n)=(t1*wr(ir))*rfmt(i:i+n) i=i+lmmaxo end do end subroutine elk-9.6.8/src/PaxHeaders/nonlinopt.f900000644000000000000000000000013214626155520014524 xustar0030 mtime=1717099344.490989111 30 atime=1717099342.492978346 30 ctime=1717099344.490989111 elk-9.6.8/src/nonlinopt.f900000644002504400250440000002222014626155520017244 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 modmpi use modomp use modtest ! !DESCRIPTION: ! Calculates the second-order response tensor ! $\chi^{abc}(-2\omega;\omega,\omega)$, where $a$, $b$ and $c$ label Cartesian ! directions. This tensor is used for determining the optical second-harmonic ! generation of materials. We follow the convention of Sipe and Ghahramani in ! {\it Phys. Rev. B} {\bf 48}, 11705 (1993); and Hughes and Sipe in ! {\it Phys. Rev. B} {\bf 53}, 10751 (1996). The individual contributions ! $\chi_{II}^{abc}(-2\omega;\omega,\omega)$, ! $\eta_{II}^{abc}(-2\omega;\omega,\omega)$ and ! $\frac{i}{2\omega}\sigma_{II}^{abc}(-2\omega;\omega,\omega)$ are also ! written separately to file. ! ! !REVISION HISTORY: ! Rewrote earlier version, June 2010 (Sharma) ! Improved parallelism, January 2020 (R. Cohen) ! Rewrote, thanks to corrections from X. Gonze, March 2022 (JKD) !EOP !BOC implicit none ! local variables integer ik,jk,l,m,n,i integer iw,ioc,a,b,c integer nthd real(8) t0,t1 complex(8) eta,z1,z2 character(64) fname ! allocatable arrays real(8), allocatable :: w(:),e(:,:),f(:,:),d(:,:,:) complex(8), allocatable :: r(:,:,:),zv(:) complex(8), allocatable :: cc1(:,:),cc2(:,:) complex(8), allocatable :: ce1(:,:),ce2(:,:),cs1(:,:) complex(8), allocatable :: chi2w(:),eta2w(:),sigma2w(:) ! initialise universal variables call init0 call init1 ! read Fermi energy from file call readfermi ! read the eigenvalues and occupation numbers from file call readevalsv call readoccsv ! i divided by the relaxation time eta=cmplx(0.d0,swidth,8) ! 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(chi2w(nwplot),eta2w(nwplot),sigma2w(nwplot)) t0=wkptnr/omega ! begin loop over components do ioc=1,noptcomp a=optcomp(1,ioc) b=optcomp(2,ioc) c=optcomp(3,ioc) chi2w(:)=0.d0 eta2w(:)=0.d0 sigma2w(:)=0.d0 ! parallel loop over non-reduced k-points call holdthd(nkptnr/np_mpi,nthd) !$OMP PARALLEL DEFAULT(SHARED) & !$OMP PRIVATE(e,f,d,r,zv) & !$OMP PRIVATE(cc1,cc2,ce1,ce2,cs1) & !$OMP PRIVATE(jk,n,m,i,t1,z1,z2,l) & !$OMP REDUCTION(+:chi2w,eta2w,sigma2w) & !$OMP NUM_THREADS(nthd) allocate(e(nstsv,nstsv),f(nstsv,nstsv),d(nstsv,nstsv,3)) allocate(r(nstsv,nstsv,3),zv(nwplot)) allocate(cc1(nstsv,nstsv),cc2(nstsv,nstsv)) allocate(ce1(nstsv,nstsv),ce2(nstsv,nstsv)) allocate(cs1(nstsv,nstsv)) !$OMP DO do ik=1,nkptnr ! distribute among MPI processes if (mod(ik-1,np_mpi) /= lp_mpi) cycle !$OMP CRITICAL(nonlinopt_) write(*,'("Info(nonlinopt): ",I6," of ",I6," k-points")') ik,nkptnr !$OMP END CRITICAL(nonlinopt_) ! equivalent reduced k-point jk=ivkik(ivk(1,ik),ivk(2,ik),ivk(3,ik)) ! calculate differences in eigenvalues and occupation numbers do n=1,nstsv do m=1,nstsv e(m,n)=evalsv(m,jk)-evalsv(n,jk) f(m,n)=occsv(m,jk)-occsv(n,jk) end do end do ! read momentum matrix elements from file call getpmat(vkl(:,ik),r) ! compute the Delta matrix elements do i=1,3 do n=1,nstsv do m=1,nstsv d(m,n,i)=dble(r(m,m,i))-dble(r(n,n,i)) end do end do end do ! compute the matrix elements of the position operator do i=1,3 do n=1,nstsv do m=1,nstsv t1=e(m,n) if (abs(t1) > swidth) then z1=r(m,n,i)/t1 r(m,n,i)=cmplx(aimag(z1),-dble(z1),8) else r(m,n,i)=0.d0 end if end do end do end do ! zero the coefficients for χ_II, η_II and i/2ω σ_II cc1(:,:)=0.d0; cc2(:,:)=0.d0 ce1(:,:)=0.d0; ce2(:,:)=0.d0 cs1(:,:)=0.d0 ! sum over states do n=1,nstsv do m=1,nstsv do l=1,nstsv ! terms involving a triple summation z1=0.5d0*r(n,m,a)*(r(m,l,b)*r(l,n,c)+r(m,l,c)*r(l,n,b)) ! χ_II(-2ω;ω,ω) terms t1=e(l,n)-e(m,l) if (abs(t1) > swidth) then ! Eq. (B4) z2=z1/t1 if (abs(f(n,m)) > epsocc) then cc2(m,n)=cc2(m,n)+2.d0*f(n,m)*z2 end if if (abs(f(m,l)) > epsocc) then cc1(m,l)=cc1(m,l)+f(m,l)*z2 end if if (abs(f(l,n)) > epsocc) then cc1(l,n)=cc1(l,n)+f(l,n)*z2 end if end if ! η_II(-2ω;ω,ω) terms z2=z1*e(m,n) ! Eq. (B13b) if (abs(f(n,l)) > epsocc) then t1=e(l,n) if (abs(t1) > swidth) then ce1(l,n)=ce1(l,n)+f(n,l)*z2/t1**2 end if end if if (abs(f(l,m)) > epsocc) then t1=e(m,l) if (abs(t1) > swidth) then ce1(m,l)=ce1(m,l)-f(l,m)*z2/t1**2 end if end if if (abs(f(n,m)) > epsocc) then ! Eq. (B13a) t1=e(m,n) if (abs(t1) > swidth) then t1=1.d0/t1**2 z1=2.d0*f(n,m)*(e(m,l)-e(l,n))*t1*z1 ce2(m,n)=ce2(m,n)+z1 ! i/2ω σ_II(-2ω;ω,ω) term ! Eq. (B17) z1=e(n,l)*r(l,m,a)*(r(m,n,b)*r(n,l,c)+r(m,n,c)*r(n,l,b)) & -e(l,m)*r(n,l,a)*(r(l,m,b)*r(m,n,c)+r(l,m,c)*r(m,n,b)) z1=0.25d0*f(n,m)*t1*z1 cs1(m,n)=cs1(m,n)+z1 end if end if end do ! terms involving a double summation if (abs(f(n,m)) > epsocc) then ! Eq. (B12a) t1=e(m,n) if (abs(t1) > swidth) then t1=1.d0/t1**2 z1=r(n,m,a)*(d(m,n,b)*r(m,n,c)+d(m,n,c)*r(m,n,b)) z1=cmplx(aimag(z1),-dble(z1),8) z1=4.d0*f(n,m)*t1*z1 ce2(m,n)=ce2(m,n)+z1 ! Eq. (B16b) z1=r(n,m,a)*(r(m,n,b)*d(m,n,c)+r(m,n,c)*d(m,n,b)) z1=cmplx(-aimag(z1),dble(z1),8) z1=0.25d0*f(n,m)*t1*z1 cs1(m,n)=cs1(m,n)+z1 end if end if end do end do do n=1,nstsv do m=1,nstsv zv(:)=1.d0/(e(m,n)-w(:)+eta) chi2w(:)=chi2w(:)+cc1(m,n)*zv(:) eta2w(:)=eta2w(:)+ce1(m,n)*zv(:) sigma2w(:)=sigma2w(:)+cs1(m,n)*zv(:) zv(:)=1.d0/(e(m,n)-2.d0*(w(:)-eta)) chi2w(:)=chi2w(:)+cc2(m,n)*zv(:) eta2w(:)=eta2w(:)+ce2(m,n)*zv(:) end do end do end do !$OMP END DO deallocate(e,f,d,r,zv) deallocate(cc1,cc2,ce1,ce2,cs1) !$OMP END PARALLEL call freethd(nthd) ! multiply response functions by prefactor chi2w(:)=t0*chi2w(:) eta2w(:)=t0*eta2w(:) sigma2w(:)=t0*sigma2w(:) ! add response functions from each process and redistribute if (np_mpi > 1) then call mpi_allreduce(mpi_in_place,chi2w,nwplot,mpi_double_complex,mpi_sum, & mpicom,ierror) call mpi_allreduce(mpi_in_place,eta2w,nwplot,mpi_double_complex,mpi_sum, & mpicom,ierror) call mpi_allreduce(mpi_in_place,sigma2w,nwplot,mpi_double_complex,mpi_sum, & mpicom,ierror) end if ! write χ_II(-2ω;ω,ω), η_II(-2ω;ω,ω) and i/2ω σ_II(-2ω;ω,ω) to file if (mp_mpi) then write(fname,'("CHI_II_2WWW_",3I1,".OUT")') a,b,c open(50,file=trim(fname),form='FORMATTED') write(fname,'("ETA_II_2WWW_",3I1,".OUT")') a,b,c open(51,file=trim(fname),form='FORMATTED') write(fname,'("SIGMA_II_2WWW_",3I1,".OUT")') a,b,c open(52,file=trim(fname),form='FORMATTED') do iw=1,nwplot t1=dble(w(iw)) write(50,'(2G18.10)') t1,dble(chi2w(iw)) write(51,'(2G18.10)') t1,dble(eta2w(iw)) write(52,'(2G18.10)') t1,dble(sigma2w(iw)) end do write(50,*) write(51,*) write(52,*) do iw=1,nwplot t1=dble(w(iw)) write(50,'(2G18.10)') t1,aimag(chi2w(iw)) write(51,'(2G18.10)') t1,aimag(eta2w(iw)) write(52,'(2G18.10)') t1,aimag(sigma2w(iw)) end do close(50) close(51) close(52) ! write χ(-2ω;ω,ω) to file chi2w(:)=chi2w(:)+eta2w(:)+sigma2w(:) write(fname,'("CHI_2WWW_",3I1,".OUT")') a,b,c open(50,file=trim(fname),form='FORMATTED') do iw=1,nwplot t1=dble(w(iw)) write(50,'(2G18.10)') t1,dble(chi2w(iw)) end do write(50,*) do iw=1,nwplot t1=dble(w(iw)) write(50,'(2G18.10)') t1,aimag(chi2w(iw)) end do close(50) end if ! end loop over components end do if (mp_mpi) then write(*,*) write(*,'("Info(nonlinopt):")') write(*,'(" Following the convention in Phys. Rev. B 48, 11705 (1993) and")') write(*,'(" Phys. Rev. B 53, 10751 (1996), the second-order response")') write(*,'(" functions χ_II(-2ω;ω,ω), η_II(-2ω;ω,ω) and i/2ω σ_II(-2ω;ω,ω)")') write(*,'(" were written to the files CHI_II_2WWW_abc.OUT,")') write(*,'(" ETA_II_2WWW_abc.OUT and SIGMA_II_2WWW_abc.OUT, respectively")') write(*,*) write(*,'(" The total second-order response function χ(-2ω;ω,ω) was")') write(*,'(" written to the file CHI_2WWW_abc.OUT")') write(*,*) write(*,'(" This was done for Cartesian components :")') do ioc=1,noptcomp write(*,'(" a = ",I1,", b = ",I1,", c = ",I1)') optcomp(1:3,ioc) end do end if ! write chi2w to test file if required call writetest(125,'non-linear susceptibility',nv=nwplot,tol=1.d-2,zva=chi2w) deallocate(w,chi2w,eta2w,sigma2w) end subroutine !EOC elk-9.6.8/src/PaxHeaders/writelat.f900000644000000000000000000000013214626155520014337 xustar0030 mtime=1717099344.493989127 30 atime=1717099342.495978362 30 ctime=1717099344.493989127 elk-9.6.8/src/writelat.f900000644002504400250440000000325514626155520017066 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',action='WRITE') 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) end subroutine elk-9.6.8/src/PaxHeaders/rhocore.f900000644000000000000000000000013214626155520014145 xustar0030 mtime=1717099344.495989138 30 atime=1717099342.498978378 30 ctime=1717099344.495989138 elk-9.6.8/src/rhocore.f900000644002504400250440000000376614626155520016703 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,i0,i1 real(8) v(ndmag),sm,t1 ! external functions real(8), external :: rfmtint do ias=1,natmtot is=idxis(ias) nr=nrmt(is) nri=nrmti(is) iro=nri+1 sm=0.d0 ! loop over spin channels do ispn=1,nspncr ! add the core density to the muffin-tin density i1=lmmaxi*(nri-1)+1 rhomt(1:i1:lmmaxi,ias)=rhomt(1:i1:lmmaxi,ias)+rhocr(1:nri,ias,ispn) i0=i1+lmmaxi i1=lmmaxo*(nr-iro)+i0 rhomt(i0:i1:lmmaxo,ias)=rhomt(i0:i1:lmmaxo,ias)+rhocr(iro:nr,ias,ispn) ! compute the core charge inside the muffin-tins t1=dot_product(wrmt(1:nr,is),rhocr(1:nr,ias,ispn)) sm=sm+fourpi*y00*t1 end do ! core leakage charge chgcrlk(ias)=chgcr(is)-sm ! 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 v(idm)=rfmtint(nr,nri,wrmt(:,is),magmt(:,ias,idm)) 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 > 1.d-10) v(:)=v(:)/t1 ! add the core magnetisation to the total i=1 do ir=1,nri t1=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=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 end subroutine !EOC elk-9.6.8/src/PaxHeaders/rcfinp.f900000644000000000000000000000013214626155520013765 xustar0030 mtime=1717099344.497989149 30 atime=1717099342.501978394 30 ctime=1717099344.497989149 elk-9.6.8/src/rcfinp.f900000644002504400250440000000165214626155520016513 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 rcfinp(rfmt,rfir,cfmt,cfir) use modmain use modomp implicit none ! arguments real(8), intent(in) :: rfmt(npcmtmax,natmtot),rfir(ngtot) complex(4), intent(in) :: cfmt(npcmtmax,natmtot),cfir(ngtot) ! local variables integer is,ias,nthd ! external functions complex(8), external :: rcfmtinp ! interstitial contribution rcfinp=sum((cfunir(:)*rfir(:))*cfir(:)) rcfinp=rcfinp*(omega/dble(ngtot)) ! muffin-tin contribution call holdthd(natmtot,nthd) !$OMP PARALLEL DO DEFAULT(SHARED) & !$OMP PRIVATE(is) REDUCTION(+:rcfinp) & !$OMP NUM_THREADS(nthd) do ias=1,natmtot is=idxis(ias) rcfinp=rcfinp+rcfmtinp(nrcmt(is),nrcmti(is),wrcmt(:,is),rfmt(:,ias), & cfmt(:,ias)) end do !$OMP END PARALLEL DO call freethd(nthd) end function elk-9.6.8/src/PaxHeaders/readspecies.f900000644000000000000000000000013214626155520014773 xustar0030 mtime=1717099344.500989165 30 atime=1717099342.503978405 30 ctime=1717099344.500989165 elk-9.6.8/src/readspecies.f900000644002504400250440000002353314626155520017523 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 readspecies use modmain implicit none ! local variables integer is,ist,ios integer nlx,ilx,lx,ilo integer io,jo,ko,l,i,j e0min=0.d0 do is=1,nspecies open(50,file=trim(sppath)//trim(spfname(is)),status='OLD',form='FORMATTED', & action='READ',iostat=ios) if (ios /= 0) then write(*,*) write(*,'("Error(readspecies): error opening species file ",A)') & trim(sppath)//trim(spfname(is)) write(*,*) stop end if read(50,*) spsymb(is) read(50,*) spname(is) read(50,*) spzn(is) read(50,*) spmass(is) read(50,*) rminsp(is),rmt(is),rmaxsp(is),nrmt(is) if (rminsp(is) <= 0.d0) then write(*,*) write(*,'("Error(readspecies): rminsp <= 0 : ",G18.10)') rminsp(is) write(*,'(" for species ",I4)') is write(*,*) stop end if if (rmt(is) <= rminsp(is)) then write(*,*) write(*,'("Error(readspecies): rmt <= rminsp : ",2G18.10)') rmt(is), & rminsp(is) write(*,'(" for species ",I4)') is write(*,*) stop end if if (rmaxsp(is) < rmt(is)) then write(*,*) write(*,'("Error(readspecies): rmaxsp < rmt : ",2G18.10)') rmaxsp(is), & rmt(is) write(*,*) stop end if if (nrmt(is) < 20) then write(*,*) write(*,'("Error(readspecies): nrmt too small : ",I8)') nrmt(is) write(*,'(" for species ",I4)') is write(*,*) stop end if ! multiply nrmt by the scale factor nrmt(is)=nint(dble(nrmt(is))*nrmtscf) ! reduce the minimum radial mesh point by the same factor rminsp(is)=rminsp(is)/nrmtscf read(50,*) nstsp(is) if ((nstsp(is) <= 0).or.(nstsp(is) > maxstsp)) then write(*,*) write(*,'("Error(readspecies): nstsp out of range : ",I8)') nstsp(is) write(*,'(" for species ",I4)') is write(*,*) stop end if do ist=1,nstsp(is) read(50,*) nsp(ist,is),lsp(ist,is),ksp(ist,is),occsp(ist,is),spcore(ist,is) if (nsp(ist,is) < 1) then write(*,*) write(*,'("Error(readspecies): nsp < 1 : ",I8)') nsp(ist,is) write(*,'(" for species ",I4)') is write(*,'(" and state ",I4)') ist write(*,*) stop end if if (lsp(ist,is) < 0) then write(*,*) write(*,'("Error(readspecies): lsp < 0 : ",I8)') lsp(ist,is) write(*,'(" for species ",I4)') is write(*,'(" and state ",I4)') ist write(*,*) stop end if if (ksp(ist,is) < 1) then write(*,*) write(*,'("Error(readspecies): ksp < 1 : ",I8)') ksp(ist,is) write(*,'(" for species ",I4)') is write(*,'(" and state ",I4)') ist write(*,*) stop end if if (occsp(ist,is) < 0.d0) then write(*,*) write(*,'("Error(readspecies): occsp < 0 : ",G18.10)') occsp(ist,is) write(*,'(" for species ",I4)') is write(*,'(" and state ",I4)') ist write(*,*) stop end if end do read(50,*) apword(0,is) if (apword(0,is) <= 0) then write(*,*) write(*,'("Error(readspecies): apword <= 0 : ",I8)') apword(0,is) write(*,'(" for species ",I4)') is write(*,*) stop end if if (apword(0,is) > maxapword) then write(*,*) write(*,'("Error(readspecies): apword too large : ",I8)') apword(0,is) write(*,'(" for species ",I4)') is write(*,'("Adjust maxapword in modmain and recompile code")') write(*,*) stop end if ! set the APW orders for l>0 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) < 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 < 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 < 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 > 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) <= 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) > 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) < 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 > 0) then do l=0,lmaxapw jo=apword(l,is) ko=jo+nxoapwlo if (ko > 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) < 0) then write(*,*) write(*,'("Error(readspecies): nlorb < 0 : ",I8)') nlorb(is) write(*,'(" for species ",I4)') is write(*,*) stop end if if (nlorb(is) > 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) < 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) > 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) < 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) > 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) < 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 > 0) then lx=-1 do ilo=1,nlorb(is) do io=1,lorbord(ilo,is) if (lorbe0(io,ilo,is) < 0.d0) goto 10 end do if (lorbl(ilo,is) > lx) lx=lorbl(ilo,is) 10 continue end do ilo=nlorb(is) do i=1,nxlo if (ilo == maxlorb) exit l=lx+i if (l > 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 > 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 > j) then jo=io j=i end if end do ko=lorbord(ilo,is)+nxoapwlo if (ko > 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 if (rmtall > 0.d0) then ! set all muffin-tin radii to single value if required rmt(1:nspecies)=rmtall else if (mrmtav > 0) then ! apply averaging scheme to the muffin-tin radii call rmtavrg end if ! make a copy of the muffin-tin radii rmt0(1:nspecies)=rmt(1:nspecies) ! add conduction state local-orbitals if required if (lorbcnd) call addlorbcnd ! subtract 2 Hartree from the minimum energy e0min=e0min-2.d0 end subroutine elk-9.6.8/src/PaxHeaders/findband.f900000644000000000000000000000013214626155520014251 xustar0030 mtime=1717099344.502989176 30 atime=1717099342.507978427 30 ctime=1717099344.502989176 elk-9.6.8/src/findband.f900000644002504400250440000000631014626155520016773 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: findband ! !INTERFACE: subroutine findband(sol,l,nr,r,vr,eps,demax,e,fnd) ! !INPUT/OUTPUT PARAMETERS: ! sol : speed of light in atomic units (in,real) ! l : angular momentum quantum number (in,integer) ! nr : number of radial mesh points (in,integer) ! r : radial mesh (in,real(nr)) ! vr : potential on radial mesh (in,real(nr)) ! eps : energy search tolerance (in,real) ! demax : maximum allowed change from the input energy; enforced only if e < 0 ! (in,real) ! e : input energy and returned band energy (inout,real) ! fnd : set to .true. if the band energy is found (out,logical) ! !DESCRIPTION: ! Finds the band energies for a given radial potential and angular momentum. ! This is done by first searching upwards in energy, starting from the input ! energy plus the offset 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}$ ! cannot be found then the band energy is set to the input value. ! ! !REVISION HISTORY: ! Created September 2004 (JKD) ! Added two-pass loop, October 2013 (JKD) !EOP !BOC implicit none ! arguments real(8), intent(in) :: sol integer, intent(in) :: l,nr real(8), intent(in) :: r(nr),vr(nr) real(8), intent(in) :: eps,demax real(8), intent(inout) :: e logical, intent(out) :: fnd ! local variables logical ft,fb ! maximum number of steps integer, parameter :: maxstp=250 integer ip,ie,nn ! initial step size real(8), parameter :: de0=0.001d0 real(8) de,et,eb,t,tp ! automatic arrays real(8) p0(nr),p1(nr),q0(nr),q1(nr) ft=.false. fb=.false. fnd=.false. et=e eb=e ! two-pass loop do ip=1,2 ! find the top of the band tp=0.d0 de=de0 do ie=1,maxstp et=et+de if (e < 0.d0) then if (et > e+demax) exit end if call rschrodint(sol,l,et,nr,r,vr,nn,p0,p1,q0,q1) t=p0(nr) if (ie > 1) then if (t*tp <= 0.d0) then if (abs(de) < eps) then if (fb) goto 10 ft=.true. eb=et+5.d0*abs(de0) exit end if de=-0.5d0*de else de=1.5d0*de end if end if tp=t end do if (fb) return ! find the bottom of the band tp=0.d0 de=-de0 do ie=1,maxstp eb=eb+de if (eb < e-demax) return call rschrodint(sol,l,eb,nr,r,vr,nn,p0,p1,q0,q1) t=p1(nr) if (ie > 1) then if (t*tp <= 0.d0) then if (abs(de) < eps) then if (ft) goto 10 fb=.true. et=eb-5.d0*abs(de0) exit end if de=-0.5d0*de else de=1.5d0*de end if end if tp=t end do end do return 10 continue ! set the band energy halfway between top and bottom e=(et+eb)/2.d0 fnd=.true. end subroutine !EOC elk-9.6.8/src/PaxHeaders/exxengy.f900000644000000000000000000000013214626155520014173 xustar0030 mtime=1717099344.504989186 30 atime=1717099342.509978438 30 ctime=1717099344.504989186 elk-9.6.8/src/exxengy.f900000644002504400250440000000535014626155520016720 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 ! automatic arrays complex(4) wfcr1(npcmtmax,2),wfcr2(npcmtmax,2) complex(4) crhomt(npcmtmax),cvclmt(npcmtmax) ! external functions complex(8), external :: zcfmtinp ! 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) /= 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 crho2(npc,wfcr1,wfcr1(:,2),wfcr2,wfcr2(:,2),crhomt) call cfshtip(nrc,nrci,crhomt) ! calculate the Coulomb potential call cpotclmt(nrc,nrci,nrcmtmax,rlcmt(:,:,is),wprcmt(:,:,is), & crhomt,cvclmt) z1=zcfmtinp(nrc,nrci,wrcmt(:,is),crhomt,cvclmt) 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 return contains pure subroutine crho2(n,wf11,wf12,wf21,wf22,crho) implicit none integer, intent(in) :: n complex(4), intent(in) :: wf11(n),wf12(n),wf21(n),wf22(n) complex(4), intent(out) :: crho(n) crho(:)=conjg(wf11(:))*wf21(:)+conjg(wf12(:))*wf22(:) end subroutine end subroutine elk-9.6.8/src/PaxHeaders/gentauk.f900000644000000000000000000000013214626155520014142 xustar0030 mtime=1717099344.506989197 30 atime=1717099342.512978454 30 ctime=1717099344.506989197 elk-9.6.8/src/gentauk.f900000644002504400250440000000554614626155520016676 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) ! automatic arrays complex(8) gzfmt(npcmtmax,3),zfmt(npcmtmax),zfft(ngtc) ! allocatable arrays complex(8), allocatable :: apwalm(:,:,:,:,:),evecfv(:,:),evecsv(:,:) complex(8), allocatable :: wfmt(:,:,:,:),wfgp(:,:,:) 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)) < 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,ngdgc,igfc,ngk(:,ik),igkig(:,:,ik),apwalm, & evecfv,evecsv,wfmt,ngkmax,wfgp) deallocate(apwalm,evecfv,evecsv) !-------------------------! ! muffin-tin part ! !-------------------------! 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),wcrcmt(:,:,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) !---------------------------! ! interstitial part ! !---------------------------! 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=igfc(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,ngdgc,1,zfft) !$OMP CRITICAL(gentauk_2) tauir(1:ngtc,ispn)=tauir(1:ngtc,ispn) & +wo*(dble(zfft(1:ngtc))**2+aimag(zfft(1:ngtc))**2) !$OMP END CRITICAL(gentauk_2) end do end do end do deallocate(wfgp) end subroutine elk-9.6.8/src/PaxHeaders/gradrfmt.f900000644000000000000000000000013114626155520014311 xustar0030 mtime=1717099344.509989213 29 atime=1717099342.51597847 30 ctime=1717099344.509989213 elk-9.6.8/src/gradrfmt.f900000644002504400250440000000363314626155520017041 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,ri,wcr,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) ! ri : 1/r on the radial mesh (in,real(nr)) ! wcr : weights for spline coefficients on radial mesh (in,real(12,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) :: ri(nr),wcr(12,nr),rfmt(*) integer, intent(in) :: ld real(8), intent(out) :: grfmt(ld,3) ! local variables integer i ! automatic arrays complex(8) 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,ri,wcr,zfmt,ld,gzfmt) ! convert complex to real spherical harmonic expansion do i=1,3 call ztorfmt(nr,nri,gzfmt(:,i),grfmt(:,i)) ! improve stability by smoothing the gradient call rfmtsm(msmgmt,nr,nri,grfmt(:,i)) end do end subroutine !EOC elk-9.6.8/src/PaxHeaders/checkfsm.f900000644000000000000000000000013214626155520014267 xustar0030 mtime=1717099344.510989219 30 atime=1717099342.518978486 30 ctime=1717099344.510989219 elk-9.6.8/src/checkfsm.f900000644002504400250440000000303614626155520017013 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 == 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) == 1).or.(abs(fsmtype) == 3)) then call r3mv(sc,momfix,v) t1=sum(abs(momfix(:)-v(:))) if (t1 > 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) == 2).or.(abs(fsmtype) == 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 >= 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 > 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 end subroutine elk-9.6.8/src/PaxHeaders/genrlmv.f900000644000000000000000000000013214626155520014156 xustar0030 mtime=1717099344.513989235 30 atime=1717099342.521978502 30 ctime=1717099344.513989235 elk-9.6.8/src/genrlmv.f900000644002504400250440000000370314626155520016703 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 < 0).or.(lmax > 50)) then write(*,*) write(*,'("Error(genrlmv): lmax out of range : ",I8)') lmax write(*,*) stop end if ! generate complex spherical harmonics call genylmv(.false.,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 end subroutine !EOC elk-9.6.8/src/PaxHeaders/mae.f900000644000000000000000000000013214626155520013246 xustar0030 mtime=1717099344.515989246 30 atime=1717099342.524978518 30 ctime=1717099344.515989246 elk-9.6.8/src/mae.f900000644002504400250440000001016114626155520015767 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 moddelf use modtest implicit none ! local variables integer i,j,i0,i1 real(8) e0,e1,de real(8) v1(3),v2(3),th real(8) a(3,3),b(3,3) ! initialise global variables call init0 ! store original parameters avec0(:,:)=avec(:,:) spinpol0=spinpol spinorb0=spinorb cmagz0=cmagz bfieldc00(:)=bfieldc0(:) reducebf0=reducebf fsmtype0=fsmtype vkloff0(:)=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 == 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 i0=1; i1=1 e0=1.d8; e1=-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,avec0,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)) < 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 < e0) then e0=engytot i0=i end if if (engytot > e1) then e1=engytot i1=i end if ! delete the eigenvector files call delfiles(evec=.true.) ! synchronise MPI processes call mpi_barrier(mpicom,ierror) end do ! magnetic anisotropy energy de=e1-e0 if (mp_mpi) then write(71,*) write(71,'("Minimum energy point : ",I6)') i0 write(71,'("Maximum energy point : ",I6)') i1 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 ! write the MAE to test file call writetest(28,'magnetic anisotropy energy',tol=1.d-5,rv=de) ! restore original input parameters avec(:,:)=avec0(:,:) spinpol=spinpol0 spinorb=spinorb0 cmagz=cmagz0 fsmtype=fsmtype0 bfieldc0(:)=bfieldc00(:) reducebf=reducebf0 vkloff(:)=vkloff0(:) trotsht=.false. end subroutine elk-9.6.8/src/PaxHeaders/writegvecrf.f900000644000000000000000000000013214626155520015033 xustar0030 mtime=1717099344.517989257 30 atime=1717099342.527978534 30 ctime=1717099344.517989257 elk-9.6.8/src/writegvecrf.f900000644002504400250440000000077714626155520017570 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2021 J. K. Dewhurst, S. Sharma and E. K. U. Gross. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. subroutine writegvecrf use modmain implicit none ! local variables integer ig open(50,file='GVECRF.OUT',form='FORMATTED',action='WRITE') write(50,'(G18.10," : gmaxrf")') gmaxrf write(50,'(I8," : ngrf; G-vector index, ivg below")') ngrf do ig=1,ngrf write(50,'(I8,3I6)') ig,ivg(1:3,ig) end do close(50) end subroutine elk-9.6.8/src/PaxHeaders/zcfmtwr.f900000644000000000000000000000013214626155520014200 xustar0030 mtime=1717099344.519989267 30 atime=1717099342.529978545 30 ctime=1717099344.519989267 elk-9.6.8/src/zcfmtwr.f900000644002504400250440000000134714626155520016727 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2021 J. K. Dewhurst, S. Sharma and 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 zcfmtwr(nr,nri,wr,zfmt,cfmt) use modmain implicit none ! arguments integer, intent(in) :: nr,nri real(8), intent(in) :: wr(nr) complex(8), intent(in) :: zfmt(*) complex(4), intent(out) :: cfmt(*) ! local variables integer n,ir,i i=1 if (lmaxi == 1) then do ir=1,nri cfmt(i:i+3)=cmplx(wr(ir)*zfmt(i:i+3)) i=i+4 end do else n=lmmaxi-1 do ir=1,nri cfmt(i:i+n)=cmplx(wr(ir)*zfmt(i:i+n)) i=i+lmmaxi end do end if n=lmmaxo-1 do ir=nri+1,nr cfmt(i:i+n)=cmplx(wr(ir)*zfmt(i:i+n)) i=i+lmmaxo end do end subroutine elk-9.6.8/src/PaxHeaders/wfmtsv.f900000644000000000000000000000013214626155520014032 xustar0030 mtime=1717099344.521989278 30 atime=1717099342.532978561 30 ctime=1717099344.521989278 elk-9.6.8/src/wfmtsv.f900000644002504400250440000001074714626155520016565 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2021 J. K. Dewhurst, S. Sharma and E. K. U. Gross. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. subroutine wfmtsv(tsh,lrstp,is,ias,nst,idx,ngp,apwalm,evecfv,evecsv,ld,wfmt) use modmain use modomp implicit none ! arguments logical, intent(in) :: tsh integer, intent(in) :: lrstp,is,ias,nst,idx(*),ngp(nspnfv) complex(8), intent(in) :: apwalm(ngkmax,apwordmax,lmmaxapw,natmtot,nspnfv) complex(8), intent(in) :: evecfv(nmatmax,nstfv,nspnfv),evecsv(nstsv,nstsv) integer, intent(in) :: ld complex(8), intent(out) :: wfmt(ld,nspinor,nst) ! local variables logical tasv integer io,ilo,ispn,jspn integer nr,nri,nro,iro integer l,lm,np,npi integer n,p,i,j,k,nthd complex(8) zq(2),z1 ! automatic arrays complex(8) x(nstfv,nspnfv),y(nlmwf(is),nspinor,nst) ! external functions complex(8), external :: zdotu iro=nrmti(is)+lrstp if (lrstp == 1) then nr=nrmt(is) nri=nrmti(is) np=npmt(is) npi=npmti(is) else nr=nrcmt(is) nri=nrcmti(is) np=npcmt(is) npi=npcmti(is) end if nro=nr-nri ! de-phasing factor for spin-spirals if (ssdph) then zq(1)=zqss(ias) zq(2)=conjg(zq(1)) end if ! check if all the second-variational wavefunctions should be calculated if (idx(1) == 0) then tasv=.true. else tasv=.false. end if call holdthd(nst,nthd) !-----------------------! ! APW functions ! !-----------------------! !$OMP PARALLEL DEFAULT(SHARED) & !$OMP PRIVATE(p,l,lm,io,ispn,jspn) & !$OMP PRIVATE(n,i,j,k,z1,ilo) & !$OMP NUM_THREADS(nthd) p=0 do l=0,lmaxo do lm=l**2+1,(l+1)**2 do io=1,apword(l,is) p=p+1 if (tevecsv) then do jspn=1,nspnfv n=ngp(jspn) !$OMP DO do j=1,nstfv x(j,jspn)=zdotu(n,evecfv(:,j,jspn),1,apwalm(:,io,lm,ias,jspn),1) end do !$OMP END DO end do ! loop only over required states !$OMP DO do j=1,nst ! index to state in evecsv if (tasv) then; k=j; else; k=idx(j); end if y(p,1,j)=zdotu(nstfv,evecsv(1,k),1,x,1) if (spinpol) then jspn=jspnfv(2) y(p,2,j)=zdotu(nstfv,evecsv(nstfv+1,k),1,x(1,jspn),1) end if end do !$OMP END DO else !$OMP DO do j=1,nst if (tasv) then; k=j; else; k=idx(j); end if y(p,1,j)=zdotu(ngp(1),evecfv(:,k,1),1,apwalm(:,io,lm,ias,1),1) end do !$OMP END DO end if end do end do end do !$OMP DO do j=1,nst wfmt(1:np,:,j)=0.d0 do ispn=1,nspinor p=0 do l=0,lmaxo do lm=l**2+1,(l+1)**2 i=npi+lm do io=1,apword(l,is) p=p+1 z1=y(p,ispn,j) if (ssdph) z1=z1*zq(ispn) if (l <= lmaxi) then call zfzrf(nri,z1,apwfr(1,1,io,l,ias),lmmaxi,wfmt(lm,ispn,j)) end if call zfzrf(nro,z1,apwfr(iro,1,io,l,ias),lmmaxo,wfmt(i,ispn,j)) end do end do end do end do end do !$OMP END DO !---------------------------------! ! local-orbital functions ! !---------------------------------! p=0 do ilo=1,nlorb(is) l=lorbl(ilo,is) do lm=l**2+1,(l+1)**2 p=p+1 i=idxlo(lm,ilo,ias) if (tevecsv) then do jspn=1,nspnfv n=ngp(jspn) x(1:nstfv,jspn)=evecfv(n+i,1:nstfv,jspn) end do !$OMP DO do j=1,nst if (tasv) then; k=j; else; k=idx(j); end if y(p,1,j)=zdotu(nstfv,evecsv(1,k),1,x,1) if (spinpol) then jspn=jspnfv(2) y(p,2,j)=zdotu(nstfv,evecsv(nstfv+1,k),1,x(1,jspn),1) end if end do !$OMP END DO else do j=1,nst if (tasv) then; k=j; else; k=idx(j); end if y(p,1,j)=evecfv(ngp(1)+i,k,1) end do end if end do end do !$OMP DO do j=1,nst do ispn=1,nspinor p=0 do ilo=1,nlorb(is) l=lorbl(ilo,is) do lm=l**2+1,(l+1)**2 p=p+1 i=npi+lm z1=y(p,ispn,j) if (ssdph) z1=z1*zq(ispn) if (l <= lmaxi) then call zfzrf(nri,z1,lofr(1,1,ilo,ias),lmmaxi,wfmt(lm,ispn,j)) end if call zfzrf(nro,z1,lofr(iro,1,ilo,ias),lmmaxo,wfmt(i,ispn,j)) end do end do ! convert to spherical coordinates if required if (.not.tsh) call zbshtip(nr,nri,wfmt(:,ispn,j)) end do end do !$OMP END DO !$OMP END PARALLEL call freethd(nthd) return contains pure subroutine zfzrf(n,z,rf,ld,zf) implicit none ! arguments integer, intent(in) :: n complex(8), intent(in) :: z real(8), intent(in) :: rf(lrstp,n) integer, intent(in) :: ld complex(8), intent(inout) :: zf(ld,n) zf(1,:)=zf(1,:)+z*rf(1,:) end subroutine end subroutine elk-9.6.8/src/PaxHeaders/olpistl.f900000644000000000000000000000013214626155520014172 xustar0030 mtime=1717099344.523989289 30 atime=1717099342.535978578 30 ctime=1717099344.523989289 elk-9.6.8/src/olpistl.f900000644002504400250440000000234614626155520016721 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: pure 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),ld complex(8), intent(inout) :: o(ld,*) ! local variables integer ig,j1,j2,j3,i,j do j=1,ngp ig=igpig(j) j1=ivg(1,ig); j2=ivg(2,ig); j3=ivg(3,ig) do i=1,j ig=igpig(i) ig=ivgig(ivg(1,ig)-j1,ivg(2,ig)-j2,ivg(3,ig)-j3) o(i,j)=o(i,j)+cfunig(ig) end do end do end subroutine !EOC elk-9.6.8/src/PaxHeaders/hmlistl.f900000644000000000000000000000012614626155520014163 xustar0028 mtime=1717099344.5259893 30 atime=1717099342.538978594 28 ctime=1717099344.5259893 elk-9.6.8/src/hmlistl.f900000644002504400250440000000316314626155520016705 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: pure 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(ld,*) ! local variables integer ig,j1,j2,j3,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,j ig=igpig(i) ig=ivgig(ivg(1,ig)-j1,ivg(2,ig)-j2,ivg(3,ig)-j3) t1=vgpc(1,i)*v1+vgpc(2,i)*v2+vgpc(3,i)*v3 h(i,j)=h(i,j)+vsig(ig)+t1*cfunig(ig) end do end do end subroutine !EOC elk-9.6.8/src/PaxHeaders/olpalo.f900000644000000000000000000000012714626155520013776 xustar0029 mtime=1717099344.52798931 29 atime=1717099342.54197861 29 ctime=1717099344.52798931 elk-9.6.8/src/olpalo.f900000644002504400250440000000133514626155520016516 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. pure subroutine olpalo(is,ias,ngp,apwalm,ld,o) use modmain implicit none ! arguments integer, intent(in) :: is,ias,ngp complex(8), intent(in) :: apwalm(ngkmax,apwordmax,lmmaxapw) integer, intent(in) :: ld complex(8), intent(inout) :: o(ld,*) ! local variables integer ilo,io,l,lm,j real(8) t1 do ilo=1,nlorb(is) l=lorbl(ilo,is) do lm=l**2+1,(l+1)**2 j=ngp+idxlo(lm,ilo,ias) do io=1,apword(l,is) t1=oalo(io,ilo,ias) o(1:ngp,j)=o(1:ngp,j)+t1*conjg(apwalm(1:ngp,io,lm)) end do end do end do end subroutine elk-9.6.8/src/PaxHeaders/hmlalo.f900000644000000000000000000000013214626155520013760 xustar0030 mtime=1717099344.529989321 30 atime=1717099342.543978621 30 ctime=1717099344.529989321 elk-9.6.8/src/hmlalo.f900000644002504400250440000000232214626155520016501 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. pure subroutine hmlalo(is,ias,ngp,apwalm,ld,h) use modmain implicit none ! arguments integer, intent(in) :: is,ias,ngp complex(8), intent(in) :: apwalm(ngkmax,apwordmax,lmmaxapw) integer, intent(in) :: ld complex(8), intent(inout) :: h(ld,*) ! local variables integer io,ilo,j integer l0,l1,l2,l3 integer lm1,lm3,lma,lmb complex(8) z1 do ilo=1,nlorb(is) l1=lorbl(ilo,is) do lm1=l1**2+1,(l1+1)**2 j=ngp+idxlo(lm1,ilo,ias) do l3=0,lmaxapw if (mod(l1+l3,2) == 0) then; l0=0; else; l0=1; end if do lm3=l3**2+1,(l3+1)**2 do io=1,apword(l3,is) z1=0.d0 do l2=l0,lmaxo,2 lma=l2**2+1; lmb=lma+2*l2 z1=z1+sum(gntyry(lma:lmb,lm3,lm1)*hloa(lma:lmb,io,l3,ilo,ias)) end do ! note that what is actually computed is the Hermitian conjugate of if (abs(dble(z1))+abs(aimag(z1)) > 1.d-14) then h(1:ngp,j)=h(1:ngp,j)+conjg(z1*apwalm(1:ngp,io,lm3)) end if end do end do end do end do end do end subroutine elk-9.6.8/src/PaxHeaders/olplolo.f900000644000000000000000000000013214626155520014164 xustar0030 mtime=1717099344.531989332 30 atime=1717099342.546978637 30 ctime=1717099344.531989332 elk-9.6.8/src/olplolo.f900000644002504400250440000000125714626155520016713 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. pure subroutine olplolo(is,ias,ngp,ld,o) use modmain implicit none ! arguments integer, intent(in) :: is,ias,ngp,ld complex(8), intent(inout) :: o(ld,*) ! local variables integer ilo,jlo,l,lm,i,j do ilo=1,nlorb(is) l=lorbl(ilo,is) do jlo=1,nlorb(is) if (lorbl(jlo,is) == l) then do lm=l**2+1,(l+1)**2 i=ngp+idxlo(lm,ilo,ias) j=ngp+idxlo(lm,jlo,ias) if (i <= j) o(i,j)=o(i,j)+ololo(ilo,jlo,ias) end do end if end do end do end subroutine elk-9.6.8/src/PaxHeaders/hmllolo.f900000644000000000000000000000013214626155520014152 xustar0030 mtime=1717099344.532989337 30 atime=1717099342.549978653 30 ctime=1717099344.532989337 elk-9.6.8/src/hmllolo.f900000644002504400250440000000172714626155520016703 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. pure subroutine hmllolo(is,ias,ngp,ld,h) use modmain implicit none ! arguments integer, intent(in) :: is,ias,ngp,ld complex(8), intent(inout) :: h(ld,*) ! local variables integer ilo,jlo,i,j integer l0,l1,l2,l3 integer lm1,lm3,lma,lmb complex(8) z1 do jlo=1,nlorb(is) l3=lorbl(jlo,is) do lm3=l3**2+1,(l3+1)**2 j=ngp+idxlo(lm3,jlo,ias) do ilo=1,nlorb(is) l1=lorbl(ilo,is) if (mod(l1+l3,2) == 0) then; l0=0; else; l0=1; end if do lm1=l1**2+1,(l1+1)**2 i=ngp+idxlo(lm1,ilo,ias) if (i > j) cycle z1=0.d0 do l2=l0,lmaxo,2 lma=l2**2+1; lmb=(l2+1)**2 z1=z1+sum(gntyry(lma:lmb,lm3,lm1)*hlolo(lma:lmb,jlo,ilo,ias)) end do h(i,j)=h(i,j)+z1 end do end do end do end do end subroutine elk-9.6.8/src/PaxHeaders/olpaa.f900000644000000000000000000000013214626155520013600 xustar0030 mtime=1717099344.534989348 30 atime=1717099342.551978664 30 ctime=1717099344.534989348 elk-9.6.8/src/olpaa.f900000644002504400250440000000151514626155520016324 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,is,ngp,apwalm,ld,o) use modmain implicit none ! arguments logical, intent(in) :: tor integer, intent(in) :: is,ngp complex(8), intent(in) :: apwalm(ngkmax,apwordmax,lmmaxapw) integer, intent(in) :: ld complex(8), intent(inout) :: o(*) ! local variables integer io,l,lm,i ! automatic arrays complex(8) a(lmoapw(is),ngp) i=0 do l=0,lmaxapw do lm=l**2+1,(l+1)**2 do io=1,apword(l,is) i=i+1 a(i,1:ngp)=apwalm(1:ngp,io,lm) end do end do end do if (tor) then ! matrix O is real call rzmctmu(lmoapw(is),ngp,a,a,ld,o) else ! matrix O is complex call zmctmu(lmoapw(is),ngp,a,a,ld,o) end if end subroutine elk-9.6.8/src/PaxHeaders/hmlaa.f900000644000000000000000000000013114626155520013565 xustar0030 mtime=1717099344.536989359 29 atime=1717099342.55497868 30 ctime=1717099344.536989359 elk-9.6.8/src/hmlaa.f900000644002504400250440000000440414626155520016312 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,is,ias,ngp,apwalm,ld,h) ! !USES: use modmain ! !INPUT/OUTPUT PARAMETERS: ! thr : .true. if the matrix h is real valued (in,logical) ! is : species number (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)) ! 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) :: is,ias,ngp complex(8), intent(in) :: apwalm(ngkmax,apwordmax,lmmaxapw) integer, intent(in) :: ld complex(8), intent(inout) :: h(*) ! local variables integer io,jo,i integer l0,l1,l2,l3 integer lm1,lm3,lma,lmb real(8) t0,t1 complex(8) z1 ! automatic arrays complex(8) y(ngp),a(lmoapw(is),ngp),b(lmoapw(is),ngp) t0=0.5d0*rmt(is)**2 i=0 do l1=0,lmaxapw do lm1=l1**2+1,(l1+1)**2 do io=1,apword(l1,is) i=i+1 t1=t0*apwfr(nrmt(is),1,io,l1,ias) y(:)=0.d0 do l3=0,lmaxapw if (mod(l1+l3,2) == 0) then; l0=0; else; l0=1; end if do lm3=l3**2+1,(l3+1)**2 do jo=1,apword(l3,is) z1=0.d0 ! kinetic and potential contribution do l2=l0,lmaxo,2 lma=l2**2+1; lmb=lma+2*l2 z1=z1+sum(gntyry(lma:lmb,lm3,lm1)*haa(lma:lmb,jo,l3,io,l1,ias)) end do ! kinetic surface contribution if (lm1 == lm3) z1=z1+t1*apwdfr(jo,l1,ias) if (abs(dble(z1))+abs(aimag(z1)) > 1.d-14) then call zaxpy(ngp,z1,apwalm(:,jo,lm3),1,y,1) end if end do end do end do a(i,1:ngp)=apwalm(1:ngp,io,lm1) b(i,1:ngp)=y(1:ngp) end do end do end do if (thr) then ! matrix H is real call rzmctmu(lmoapw(is),ngp,a,b,ld,h) else ! matrix H is complex call zmctmu(lmoapw(is),ngp,a,b,ld,h) end if end subroutine !EOC elk-9.6.8/src/PaxHeaders/gengclg.f900000644000000000000000000000013014626155520014110 xustar0029 mtime=1717099344.53898937 30 atime=1717099342.557978696 29 ctime=1717099344.53898937 elk-9.6.8/src/gengclg.f900000644002504400250440000000057314626155520016641 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 end subroutine elk-9.6.8/src/PaxHeaders/rhomagsh.f900000644000000000000000000000013014626155520014312 xustar0029 mtime=1717099344.54098938 30 atime=1717099342.560978712 29 ctime=1717099344.54098938 elk-9.6.8/src/rhomagsh.f900000644002504400250440000000210614626155520017035 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 call holdthd(2*natmtot,nthd) !$OMP PARALLEL DEFAULT(SHARED) & !$OMP PRIVATE(is,idm) & !$OMP NUM_THREADS(nthd) !$OMP DO do ias=1,natmtot is=idxis(ias) ! convert the density to spherical harmonics call rfshtip(nrcmt(is),nrcmti(is),rhomt(:,ias)) end do !$OMP END DO NOWAIT do idm=1,ndmag !$OMP DO do ias=1,natmtot is=idxis(ias) ! convert the magnetisation to spherical harmonics call rfshtip(nrcmt(is),nrcmti(is),magmt(:,ias,idm)) end do !$OMP END DO end do !$OMP END PARALLEL call freethd(nthd) end subroutine !EOC elk-9.6.8/src/PaxHeaders/charge.f900000644000000000000000000000013214626155520013735 xustar0030 mtime=1717099344.542989391 30 atime=1717099342.563978728 30 ctime=1717099344.542989391 elk-9.6.8/src/charge.f900000644002504400250440000000201114626155520016451 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 integer is,ias real(8) t1 ! external functions real(8), external :: rfmtint ! find the muffin-tin charges chgmttot=0.d0 do ias=1,natmtot is=idxis(ias) chgmt(ias)=rfmtint(nrmt(is),nrmti(is),wrmt(:,is),rhomt(:,ias)) chgmttot=chgmttot+chgmt(ias) end do ! find the interstitial charge t1=dot_product(rhoir(1:ngtot),cfunir(1:ngtot)) 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) end subroutine !EOC elk-9.6.8/src/PaxHeaders/moment.f900000644000000000000000000000013214626155520014003 xustar0030 mtime=1717099344.544989402 30 atime=1717099342.565978739 30 ctime=1717099344.544989402 elk-9.6.8/src/moment.f900000644002504400250440000000256114626155520016531 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 real(8) t1 ! external functions real(8), external :: rfmtint if (.not.spinpol) then mommt(:,:)=0.d0 mommttot(:)=0.d0 momir(:)=0.d0 momtot(:)=0.d0 momtotm=0.d0 return end if ! find the muffin-tin moments mommttot(:)=0.d0 do idm=1,ndmag do ias=1,natmtot is=idxis(ias) mommt(idm,ias)=rfmtint(nrmt(is),nrmti(is),wrmt(:,is),magmt(:,ias,idm)) mommttot(idm)=mommttot(idm)+mommt(idm,ias) end do end do ! find the interstitial and total moments do idm=1,ndmag t1=dot_product(magir(1:ngtot,idm),cfunir(1:ngtot)) momir(idm)=t1*omega/dble(ngtot) momtot(idm)=mommttot(idm)+momir(idm) end do ! 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) end subroutine !EOC elk-9.6.8/src/PaxHeaders/rfint0.f900000644000000000000000000000013214626155520013706 xustar0030 mtime=1717099344.546989413 30 atime=1717099342.568978755 30 ctime=1717099344.546989413 elk-9.6.8/src/rfint0.f900000644002504400250440000000142614626155520016433 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,nr,nri integer iro,i0,i1 real(8) t1 ! external functions real(8), 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) iro=nri+1 i1=lmmaxi*(nri-1)+1 rfmt(1:i1:lmmaxi,ias)=rfmt(1:i1:lmmaxi,ias)+t1 i0=i1+lmmaxi i1=lmmaxo*(nr-iro)+i0 rfmt(i0:i1:lmmaxo,ias)=rfmt(i0:i1:lmmaxo,ias)+t1 end do end subroutine elk-9.6.8/src/PaxHeaders/r3mdet.f900000644000000000000000000000013214626155520013702 xustar0030 mtime=1717099344.548989424 30 atime=1717099342.571978772 30 ctime=1717099344.548989424 elk-9.6.8/src/r3mdet.f900000644002504400250440000000126114626155520016424 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)) end function !EOC elk-9.6.8/src/PaxHeaders/gencfrc.f900000644000000000000000000000013214626155520014113 xustar0030 mtime=1717099344.550989434 30 atime=1717099342.573978782 30 ctime=1717099344.550989434 elk-9.6.8/src/gencfrc.f900000644002504400250440000000101714626155520016634 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 gencfrc use modmain implicit none ! allocatable arrays complex(8), allocatable :: zfft(:) if (allocated(cfrc)) deallocate(cfrc) allocate(cfrc(ngtc),zfft(ngtc)) zfft(:)=0.d0 zfft(igfc(1:ngvc))=cfunig(1:ngvc) ! Fourier transform to real-space call zfftifc(3,ngdgc,1,zfft) cfrc(:)=dble(zfft(:)) deallocate(zfft) end subroutine elk-9.6.8/src/PaxHeaders/checkstop.f900000644000000000000000000000013214626155520014467 xustar0030 mtime=1717099344.552989445 30 atime=1717099342.576978798 30 ctime=1717099344.552989445 elk-9.6.8/src/checkstop.f900000644002504400250440000000114114626155520017206 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2020 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 checkstop use modmain use modmpi use moddelf implicit none ! check for STOP file (only MPI master process) if (mp_mpi) then inquire(file='STOP',exist=tstop) if (tstop) then write(*,'("Info(checkstop): STOP file exists")') ! delete the STOP file call delfile('STOP') end if end if ! broadcast tstop from master process to all other processes call mpi_bcast(tstop,1,mpi_logical,0,mpicom,ierror) end subroutine elk-9.6.8/src/PaxHeaders/genbs.f900000644000000000000000000000013214626155520013602 xustar0030 mtime=1717099344.554989456 30 atime=1717099342.579978815 30 ctime=1717099344.554989456 elk-9.6.8/src/genbs.f900000644002504400250440000000337214626155520016331 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 genbs use modmain use modomp implicit none ! local variables integer idm,is,ia,ias integer nrc,nrci,npc,nthd real(8) cb,t1 if (.not.spinpol) return ! coupling constant of the external field (g_e/4c) cb=gfacte/(4.d0*solsc) !------------------------------------! ! muffin-tin Kohn-Sham field ! !------------------------------------! call holdthd(natmtot+ndmag,nthd) !$OMP PARALLEL DEFAULT(SHARED) & !$OMP PRIVATE(ias,is,ia,nrc) & !$OMP PRIVATE(nrci,npc,idm,t1) & !$OMP NUM_THREADS(nthd) !$OMP DO do ias=1,natmtot is=idxis(ias) ia=idxia(ias) nrc=nrcmt(is) nrci=nrcmti(is) npc=npcmt(is) ! exchange-correlation magnetic field in spherical coordinates do idm=1,ndmag call rfmtftoc(nrc,nrci,bxcmt(:,ias,idm),bsmt(:,ias,idm)) call rbshtip(nrc,nrci,bsmt(:,ias,idm)) end do ! add the external magnetic field t1=cb*(bfcmt(3,ia,is)+bfieldc(3)) bsmt(1:npc,ias,ndmag)=bsmt(1:npc,ias,ndmag)+t1 if (ncmag) then do idm=1,2 t1=cb*(bfcmt(idm,ia,is)+bfieldc(idm)) bsmt(1:npc,ias,idm)=bsmt(1:npc,ias,idm)+t1 end do end if end do !$OMP END DO NOWAIT !-----------------------------------------------! ! interstitial Kohn-Sham magnetic field ! !-----------------------------------------------! !$OMP DO do idm=1,ndmag if (ncmag) then t1=cb*bfieldc(idm) else t1=cb*bfieldc(3) end if ! multiply by characteristic function bsir(1:ngtot,idm)=(bxcir(1:ngtot,idm)+t1)*cfunir(1:ngtot) end do !$OMP END DO !$OMP END PARALLEL call freethd(nthd) ! add the magnetic dipole field if required if (tbdip) call bdipole end subroutine elk-9.6.8/src/PaxHeaders/gradwf2.f900000644000000000000000000000013214626155520014040 xustar0030 mtime=1717099344.556989467 30 atime=1717099342.582978831 30 ctime=1717099344.556989467 elk-9.6.8/src/gradwf2.f900000644002504400250440000000565214626155520016572 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,gwf2mt,gwf2ir) use modmain implicit none ! arguments integer, intent(in) :: ik real(8), intent(inout) :: gwf2mt(npmtmax,natmtot),gwf2ir(ngtot) ! 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) complex(8) gwfmt(npcmtmax,3),zfmt(npcmtmax) ! allocatable arrays complex(8), allocatable :: apwalm(:,:,:,:,:),evecfv(:,:),evecsv(:,:) complex(8), allocatable :: wfmt(:,:,:,:),wfgk(:,:,:) complex(8), allocatable :: zfft(:) ! find the matching coefficients allocate(apwalm(ngkmax,apwordmax,lmmaxapw,natmtot,nspnfv)) allocate(evecfv(nmatmax,nstfv),evecsv(nstsv,nstsv)) 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)) < epsocc) cycle nst=nst+1 idx(nst)=ist end do ! calculate the second-variational wavefunctions for occupied states allocate(wfmt(npcmtmax,natmtot,nspinor,nst),wfgk(ngkmax,nspinor,nst)) call genwfsv(.true.,.true.,nst,idx,ngdgc,igfc,ngk(:,ik),igkig(:,:,ik),apwalm, & evecfv,evecsv,wfmt,ngkmax,wfgk) deallocate(apwalm) !-------------------------! ! muffin-tin part ! !-------------------------! 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),wcrcmt(:,:,is), & wfmt(:,ias,ispn,ist),npcmtmax,gwfmt) do i=1,3 ! convert gradient from spherical harmonics to spherical coordinates call zbsht(nrc,nrci,gwfmt(:,i),zfmt) ! add to total gwf2mt(1:npc,ias)=gwf2mt(1:npc,ias) & +wo*(dble(zfmt(1:npc))**2+aimag(zfmt(1:npc))**2) end do end do end do end do end do deallocate(wfmt) !---------------------------! ! interstitial part ! !---------------------------! allocate(zfft(ngtc)) do ist=1,nst jst=idx(ist) wo=wkpt(ik)*occsv(jst,ik)/omega do ispn=1,nspinor jspn=jspnfv(ispn) ! compute gradient of wavefunction do i=1,3 zfft(:)=0.d0 do igk=1,ngk(jspn,ik) ifg=igfc(igkig(igk,jspn,ik)) z1=wfgk(igk,ispn,ist) zfft(ifg)=vgkc(i,igk,jspn,ik)*cmplx(-aimag(z1),dble(z1),8) end do call zfftifc(3,ngdgc,1,zfft) gwf2ir(1:ngtc)=gwf2ir(1:ngtc) & +wo*(dble(zfft(1:ngtc))**2+aimag(zfft(1:ngtc))**2) end do end do end do deallocate(wfgk,zfft) end subroutine elk-9.6.8/src/PaxHeaders/writelinen.f900000644000000000000000000000013214626155520014664 xustar0030 mtime=1717099344.558989477 30 atime=1717099342.584978842 30 ctime=1717099344.558989477 elk-9.6.8/src/writelinen.f900000644002504400250440000000242414626155520017410 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) end subroutine !EOC elk-9.6.8/src/PaxHeaders/rfmtlm.f900000644000000000000000000000013214626155520014005 xustar0030 mtime=1717099344.560989488 30 atime=1717099342.587978858 30 ctime=1717099344.560989488 elk-9.6.8/src/rfmtlm.f900000644002504400250440000000123714626155520016532 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 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,i0,i1 if (lm > lmmaxi) then fr(1:nri)=0.d0 else i1=lmmaxi*(nri-1)+lm fr(1:nri)=rfmt(lm:i1:lmmaxi) end if iro=nri+1 if (lm > lmmaxo) then fr(iro:nr)=0.d0 else i0=lmmaxi*nri+lm i1=lmmaxo*(nr-iro)+i0 fr(iro:nr)=rfmt(i0:i1:lmmaxo) end if end subroutine elk-9.6.8/src/PaxHeaders/putpmat.f900000644000000000000000000000013214626155520014176 xustar0030 mtime=1717099344.562989499 30 atime=1717099342.590978874 30 ctime=1717099344.562989499 elk-9.6.8/src/putpmat.f900000644002504400250440000000350614626155520016724 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 use modramdisk implicit none ! arguments integer, intent(in) :: ik ! local variables integer ispn,recl ! automatic arrays complex(8) pmat(nstsv,nstsv,3) ! allocatable arrays complex(8), allocatable :: apwalm(:,:,:,:,:),evecfv(:,:,:),evecsv(:,:) complex(8), allocatable :: wfmt(:,:,:,:),wfgk(:,:,:) ! get the eigenvectors from file allocate(evecfv(nmatmax,nstfv,nspnfv),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,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,[0],ngridg,igfft,ngk(:,ik),igkig(:,:,ik), & apwalm,evecfv,evecsv,wfmt,ngkmax,wfgk) deallocate(evecfv,evecsv,apwalm) ! calculate the momentum matrix elements call genpmatk(ngk(:,ik),igkig(:,:,ik),vgkc(:,:,:,ik),wfmt,wfgk,pmat) deallocate(wfmt,wfgk) ! write the matrix elements in the second-variational basis !$OMP CRITICAL(u230) ! write to RAM disk if required if (ramdisk) then call putrd('PMAT.OUT',ik,v1=vkl(:,ik),n1=nstsv,nzv=nstsv*nstsv*3,zva=pmat) end if ! write to disk if required if (wrtdsk) then ! determine the record length inquire(iolength=recl) vkl(:,1),nstsv,pmat open(230,file='PMAT.OUT',form='UNFORMATTED',access='DIRECT',recl=recl) write(230,rec=ik) vkl(:,ik),nstsv,pmat close(230) end if !$OMP END CRITICAL(u230) end subroutine elk-9.6.8/src/PaxHeaders/getpmat.f900000644000000000000000000000013014626155520014143 xustar0029 mtime=1717099344.56498951 30 atime=1717099342.592978885 29 ctime=1717099344.56498951 elk-9.6.8/src/getpmat.f900000644002504400250440000000512214626155520016667 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 use modramdisk implicit none ! arguments real(8), intent(in) :: vpl(3) complex(8), intent(out) :: pmat(nstsv,nstsv,3) ! local variables logical tgs integer isym,ik,ist,jst integer recl,nstsv_ real(8) vkl_(3),sc(3,3) real(8) ei,ej,eij,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) !$OMP CRITICAL(u230) ! read from RAM disk if required if (ramdisk) then call getrd('PMAT.OUT',ik,tgs,v1=vkl_,n1=nstsv_,nzv=nstsv*nstsv*3,zva=pmat) if (tgs) goto 10 end if ! find the record length inquire(iolength=recl) vkl_,nstsv_,pmat open(230,file='PMAT.OUT',form='UNFORMATTED',access='DIRECT',recl=recl) read(230,rec=ik) vkl_,nstsv_,pmat close(230) 10 continue !$OMP END CRITICAL(u230) t1=abs(vkl(1,ik)-vkl_(1))+abs(vkl(2,ik)-vkl_(2))+abs(vkl(3,ik)-vkl_(3)) if (t1 > 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 /= 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 ! apply scissor correction if required if (tscissor) then do jst=1,nstsv ej=evalsv(jst,ik) do ist=1,nstsv ei=evalsv(ist,ik) eij=ei-ej ! note that the eigenvalues have *already* been scissor corrected if ((ei > efermi).and.(ej <= efermi)) then t1=eij/(eij-scissor) else if ((ei <= efermi).and.(ej > efermi)) then t1=eij/(eij+scissor) else cycle end if pmat(ist,jst,1:3)=pmat(ist,jst,1:3)*t1 end do end do 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 < epslat) return ! rotate the matrix elements from the reduced to non-reduced k-point sc(:,:)=symlatc(:,:,lsplsymc(isym)) do jst=1,nstsv do ist=1,nstsv v1(:)=pmat(ist,jst,:) call rz3mv(sc,v1,v2) pmat(ist,jst,:)=v2(:) end do end do return contains pure 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) end subroutine end subroutine elk-9.6.8/src/PaxHeaders/rfmtpack.f900000644000000000000000000000013014626155520014311 xustar0029 mtime=1717099344.56698952 30 atime=1717099342.595978901 29 ctime=1717099344.56698952 elk-9.6.8/src/rfmtpack.f900000644002504400250440000000136114626155520017036 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 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,n n=lmmaxi-1 i=1 j=1 if (tpack) then do ir=1,nri rfmt2(j:j+n)=rfmt1(i:i+n) i=i+lmmaxo j=j+lmmaxi end do else do ir=1,nri rfmt2(j:j+n)=rfmt1(i:i+n) i=i+lmmaxi k=j+lmmaxi j=j+lmmaxo rfmt2(k:j-1)=0.d0 end do end if n=lmmaxo*(nr-nri)-1 rfmt2(j:j+n)=rfmt1(i:i+n) end subroutine elk-9.6.8/src/PaxHeaders/zfmtpack.f900000644000000000000000000000013214626155520014323 xustar0030 mtime=1717099344.568989531 30 atime=1717099342.598978917 30 ctime=1717099344.568989531 elk-9.6.8/src/zfmtpack.f900000644002504400250440000000136714626155520017054 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 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,n n=lmmaxi-1 i=1 j=1 if (tpack) then do ir=1,nri zfmt2(j:j+n)=zfmt1(i:i+n) i=i+lmmaxo j=j+lmmaxi end do else do ir=1,nri zfmt2(j:j+n)=zfmt1(i:i+n) i=i+lmmaxi k=j+lmmaxi j=j+lmmaxo zfmt2(k:j-1)=0.d0 end do end if n=lmmaxo*(nr-nri)-1 zfmt2(j:j+n)=zfmt1(i:i+n) end subroutine elk-9.6.8/src/PaxHeaders/putevalfv.f900000644000000000000000000000013214626155520014520 xustar0030 mtime=1717099344.570989542 30 atime=1717099342.601978933 30 ctime=1717099344.570989542 elk-9.6.8/src/putevalfv.f900000644002504400250440000000170214626155520017242 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 use modramdisk implicit none ! arguments character(*), intent(in) :: fext integer, intent(in) :: ik real(8), intent(in) :: evalfv(nstfv,nspnfv) ! local variables integer recl character(256) fname ! construct the filename fname='EVALFV'//trim(fext) !$OMP CRITICAL(u200) ! write to RAM disk if required if (ramdisk) then call putrd(fname,ik,v1=vkl(:,ik),n1=nstfv,n2=nspnfv,nrv=nstfv*nspnfv, & rva=evalfv) end if ! write to disk if required if (wrtdsk) then ! find the record length inquire(iolength=recl) vkl(:,ik),nstfv,nspnfv,evalfv open(200,file=fname,form='UNFORMATTED',access='DIRECT',recl=recl) write(200,rec=ik) vkl(:,ik),nstfv,nspnfv,evalfv close(200) end if !$OMP END CRITICAL(u200) end subroutine elk-9.6.8/src/PaxHeaders/getevalfv.f900000644000000000000000000000013214626155520014467 xustar0030 mtime=1717099344.572989553 30 atime=1717099342.603978944 30 ctime=1717099344.572989553 elk-9.6.8/src/getevalfv.f900000644002504400250440000000351014626155520017210 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 use modramdisk 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 logical tgs integer isym,ik integer recl,nstfv_,nspnfv_ real(8) vkl_(3),t1 character(256) fname if (ikp > 0) then ik=ikp else ! find the k-point number call findkpt(vpl,isym,ik) end if ! construct the filename fname='EVALFV'//trim(fext) !$OMP CRITICAL(u200) ! read from RAM disk if required if (ramdisk) then call getrd(fname,ik,tgs,v1=vkl_,n1=nstfv_,n2=nspnfv_,nrv=nstfv*nspnfv, & rva=evalfv) if (tgs) goto 10 end if ! find the record length inquire(iolength=recl) vkl_,nstfv_,nspnfv_,evalfv open(200,file=fname,form='UNFORMATTED',access='DIRECT',recl=recl) read(200,rec=ik) vkl_,nstfv_,nspnfv_,evalfv close(200) 10 continue !$OMP END CRITICAL(u200) t1=abs(vkl(1,ik)-vkl_(1))+abs(vkl(2,ik)-vkl_(2))+abs(vkl(3,ik)-vkl_(3)) if (t1 > 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 /= 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 /= 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 end subroutine elk-9.6.8/src/PaxHeaders/wfmtfv.f900000644000000000000000000000013114626155520014014 xustar0030 mtime=1717099344.574989564 29 atime=1717099342.60697896 30 ctime=1717099344.574989564 elk-9.6.8/src/wfmtfv.f900000644002504400250440000000663114626155520016545 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: wfmtfv ! !INTERFACE: subroutine wfmtfv(ias,ngp,apwalm,evecfv,wfmt) ! !USES: use modmain ! !INPUT/OUTPUT PARAMETERS: ! 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) :: ias,ngp complex(8), intent(in) :: apwalm(ngkmax,apwordmax,lmmaxapw),evecfv(nmatmax) complex(8), intent(out) :: wfmt(*) ! local variables integer is,io,ilo integer nrci,nrco,iro integer l,lm,npci,i complex(8) z1 ! external functions complex(8), external :: zdotu is=idxis(ias) iro=nrmti(is)+lradstp nrci=nrcmti(is) nrco=nrcmt(is)-nrci npci=npcmti(is) ! zero the wavefunction wfmt(1:npcmt(is))=0.d0 !-----------------------! ! APW functions ! !-----------------------! do l=0,lmaxo do lm=l**2+1,(l+1)**2 i=npci+lm do io=1,apword(l,is) z1=zdotu(ngp,evecfv,1,apwalm(:,io,lm),1) if (l <= lmaxi) then call zfzrf(nrci,z1,apwfr(1,1,io,l,ias),lmmaxi,wfmt(lm)) end if call zfzrf(nrco,z1,apwfr(iro,1,io,l,ias),lmmaxo,wfmt(i)) end do end do end do !---------------------------------! ! local-orbital functions ! !---------------------------------! do ilo=1,nlorb(is) l=lorbl(ilo,is) do lm=l**2+1,(l+1)**2 i=npci+lm z1=evecfv(ngp+idxlo(lm,ilo,ias)) if (l <= lmaxi) then call zfzrf(nrci,z1,lofr(1,1,ilo,ias),lmmaxi,wfmt(lm)) end if call zfzrf(nrco,z1,lofr(iro,1,ilo,ias),lmmaxo,wfmt(i)) end do end do return contains pure subroutine zfzrf(n,z,rf,ld,zf) implicit none ! arguments integer, intent(in) :: n complex(8), intent(in) :: z real(8), intent(in) :: rf(lradstp,n) integer, intent(in) :: ld complex(8), intent(inout) :: zf(ld,n) zf(1,:)=zf(1,:)+z*rf(1,:) end subroutine end subroutine !EOC elk-9.6.8/src/PaxHeaders/putkmat.f900000644000000000000000000000013214626155520014171 xustar0030 mtime=1717099344.576989574 30 atime=1717099342.609978976 30 ctime=1717099344.576989574 elk-9.6.8/src/putkmat.f900000644002504400250440000000540114626155520016713 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,bmt,bir) use modmain use modmpi use modramdisk implicit none ! arguments logical, intent(in) :: tfv,tvclcr integer, intent(in) :: ik real(8), intent(in) :: vmt(npcmtmax,natmtot),vir(ngtot) real(8), intent(in) :: bmt(npcmtmax,natmtot,ndmag),bir(ngtot,ndmag) ! local variables integer ist,ispn,recl ! automatic arrays complex(8) kmat(nstsv,nstsv),a(nstsv,nstsv) ! allocatable arrays complex(8), allocatable :: apwalm(:,:,:,:,:),evecfv(:,:,:),evecsv(:,:) complex(4), allocatable :: wfmt(:,:,:,:),wfgk(:,:,:) ! 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 ! calculate the wavefunctions for all states of the input k-point allocate(wfmt(npcmtmax,natmtot,nspinor,nstsv),wfgk(ngkmax,nspinor,nstsv)) call genwfsv_sp(.false.,.true.,nstsv,[0],ngridg,igfft,ngk(:,ik),igkig(:,:,ik), & apwalm,evecfv,evecsv,wfmt,ngkmax,wfgk) deallocate(apwalm,evecfv) ! compute Kohn-Sham potential matrix elements if (spinpol) then call genvbmatk(vmt,vir,bmt,bir,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) ! 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 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 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) end if deallocate(evecsv,wfmt) !$OMP CRITICAL(u220) ! write to RAM disk if required if (ramdisk) then call putrd('KMAT.OUT',ik,v1=vkl(:,ik),n1=nstsv,nzv=nstsv*nstsv,zva=kmat) end if ! write to disk if required if (wrtdsk) then ! determine the record length inquire(iolength=recl) vkl(:,1),nstsv,kmat open(220,file='KMAT.OUT',form='UNFORMATTED',access='DIRECT',recl=recl) write(220,rec=ik) vkl(:,ik),nstsv,kmat close(220) end if !$OMP END CRITICAL(u220) end subroutine elk-9.6.8/src/PaxHeaders/getkmat.f900000644000000000000000000000013214626155520014140 xustar0030 mtime=1717099344.578989585 30 atime=1717099342.612978992 30 ctime=1717099344.578989585 elk-9.6.8/src/getkmat.f900000644002504400250440000000246414626155520016670 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 use modramdisk implicit none ! arguments integer, intent(in) :: ik complex(8), intent(out) :: kmat(nstsv,nstsv) ! local variables logical tgs integer nstsv_,recl real(8) vkl_(3),t1 !$OMP CRITICAL(u220) ! read from RAM disk if required if (ramdisk) then call getrd('KMAT.OUT',ik,tgs,v1=vkl_,n1=nstsv_,nzv=nstsv*nstsv,zva=kmat) if (tgs) goto 10 end if ! find the record length inquire(iolength=recl) vkl_,nstsv_,kmat open(220,file='KMAT.OUT',form='UNFORMATTED',access='DIRECT',recl=recl) read(220,rec=ik) vkl_,nstsv_,kmat close(220) 10 continue !$OMP END CRITICAL(u220) t1=abs(vkl(1,ik)-vkl_(1))+abs(vkl(2,ik)-vkl_(2))+abs(vkl(3,ik)-vkl_(3)) if (t1 > 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 /= 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 end subroutine elk-9.6.8/src/PaxHeaders/putepsinv.f900000644000000000000000000000013214626155520014541 xustar0030 mtime=1717099344.580989596 30 atime=1717099342.614979003 30 ctime=1717099344.580989596 elk-9.6.8/src/putepsinv.f900000644002504400250440000000120514626155520017261 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 ! determine the record length for EPSINV.OUT inquire(iolength=recl) vql(:,iq),ngrf,nwrf,epsi !$OMP CRITICAL(u245) open(245,file='EPSINV.OUT',form='UNFORMATTED',access='DIRECT',recl=recl) write(245,rec=iq) vql(:,iq),ngrf,nwrf,epsi close(245) !$OMP END CRITICAL(u245) end subroutine elk-9.6.8/src/PaxHeaders/getcfgq.f900000644000000000000000000000013214626155520014124 xustar0030 mtime=1717099344.582989607 30 atime=1717099342.617979019 30 ctime=1717099344.582989607 elk-9.6.8/src/getcfgq.f900000644002504400250440000000652314626155520016654 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,lspl,ilspl integer igq,jgq,igp,jgp,i 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) integer map(ng) ! allocatable arrays 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_,ng_,m_,cf !$OMP CRITICAL(u245) open(245,file=trim(fname),form='UNFORMATTED',access='DIRECT',recl=recl) read(245,rec=iq) vql_,ng_,m_,cf close(245) !$OMP END CRITICAL(u245) t1=abs(vql(1,iq)-vql_(1))+abs(vql(2,iq)-vql_(2))+abs(vql(3,iq)-vql_(3)) if (t1 > 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 /= 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 /= 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 < epslat) return ! allocate local arrays allocate(vgpl(3,ng),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 < 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 == 0).or.(jgq == 0)) then cf(igp,jgp,:)=0.d0 else cf(igp,jgp,:)=cf_(igq,jgq,:) end if end do end do deallocate(vgpl,cf_,x) end subroutine elk-9.6.8/src/PaxHeaders/putevalsv.f900000644000000000000000000000013214626155520014535 xustar0030 mtime=1717099344.584989618 30 atime=1717099342.620979036 30 ctime=1717099344.584989618 elk-9.6.8/src/putevalsv.f900000644002504400250440000000123214626155520017255 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(u204) open(204,file='EVALSV'//trim(fext),form='UNFORMATTED',access='DIRECT',recl=recl) write(204,rec=ik) vkl(:,ik),nstsv,evalsvp close(204) !$OMP END CRITICAL(u204) end subroutine elk-9.6.8/src/PaxHeaders/getevalsv.f900000644000000000000000000000013214626155520014504 xustar0030 mtime=1717099344.586989628 30 atime=1717099342.623979052 30 ctime=1717099344.586989628 elk-9.6.8/src/getevalsv.f900000644002504400250440000000274614626155520017237 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,ist integer recl,nstsv_ real(8) vkl_(3),t1 if (ikp > 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(u204) open(204,file='EVALSV'//trim(fext),form='UNFORMATTED',access='DIRECT',recl=recl) read(204,rec=ik) vkl_,nstsv_,evalsvp close(204) !$OMP END CRITICAL(u204) t1=abs(vkl(1,ik)-vkl_(1))+abs(vkl(2,ik)-vkl_(2))+abs(vkl(3,ik)-vkl_(3)) if (t1 > 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 /= 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 ! apply scissor correction if required if (tscissor) then do ist=1,nstsv if (evalsvp(ist).gt.efermi) evalsvp(ist)=evalsvp(ist)+scissor end do end if end subroutine elk-9.6.8/src/PaxHeaders/getevecsv.f900000644000000000000000000000013214626155520014477 xustar0030 mtime=1717099344.588989639 30 atime=1717099342.625979063 30 ctime=1717099344.588989639 elk-9.6.8/src/getevecsv.f900000644002504400250440000000451414626155520017225 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 use modramdisk 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 logical tgs integer isym,lspn integer ik,ist,jst integer recl,nstsv_ real(8) vkl_(3),det,v(3),th,t1 complex(8) su2(2,2),z1,z2 character(256) fname if (ikp > 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 ! construct the filename fname=trim(scrpath)//'EVECSV'//trim(fext) !$OMP CRITICAL(u206) ! read from RAM disk if required if (ramdisk) then call getrd(fname,ik,tgs,v1=vkl_,n1=nstsv_,nzv=nstsv*nstsv,zva=evecsv) if (tgs) goto 10 end if ! find the record length inquire(iolength=recl) vkl_,nstsv_,evecsv open(206,file=fname,form='UNFORMATTED',access='DIRECT',recl=recl) read(206,rec=ik) vkl_,nstsv_,evecsv close(206) 10 continue !$OMP END CRITICAL(u206) t1=abs(vkl(1,ik)-vkl_(1))+abs(vkl(2,ik)-vkl_(2))+abs(vkl(3,ik)-vkl_(3)) if (t1 > 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 /= 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 > 0) return ! index to global spin rotation in lattice point group lspn=lspnsymc(isym) ! if symmetry element is the identity return if (lspn == 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 jst=1,nstsv do ist=1,nstfv z1=evecsv(ist,jst) z2=evecsv(ist+nstfv,jst) evecsv(ist,jst)=su2(1,1)*z1+su2(1,2)*z2 evecsv(ist+nstfv,jst)=su2(2,1)*z1+su2(2,2)*z2 end do end do end subroutine elk-9.6.8/src/PaxHeaders/putevecsv.f900000644000000000000000000000013014626155520014526 xustar0029 mtime=1717099344.59098965 30 atime=1717099342.628979079 29 ctime=1717099344.59098965 elk-9.6.8/src/putevecsv.f900000644002504400250440000000166414626155520017261 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 use modramdisk implicit none ! arguments character(*), intent(in) :: fext integer, intent(in) :: ik complex(8), intent(in) :: evecsv(nstsv,nstsv) ! local variables integer recl character(256) fname ! construct the filename fname=trim(scrpath)//'EVECSV'//trim(fext) !$OMP CRITICAL(u206) ! write to RAM disk if required if (ramdisk) then call putrd(fname,ik,v1=vkl(:,ik),n1=nstsv,nzv=nstsv*nstsv,zva=evecsv) end if ! write to disk if required if (wrtdsk) then ! find the record length inquire(iolength=recl) vkl(:,ik),nstsv,evecsv open(206,file=fname,form='UNFORMATTED',access='DIRECT',recl=recl) write(206,rec=ik) vkl(:,ik),nstsv,evecsv close(206) end if !$OMP END CRITICAL(u206) end subroutine elk-9.6.8/src/PaxHeaders/genshtmat.f900000644000000000000000000000013214626155520014476 xustar0030 mtime=1717099344.592989661 30 atime=1717099342.631979095 30 ctime=1717099344.592989661 elk-9.6.8/src/genshtmat.f900000644002504400250440000000743614626155520017232 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. Both real and complex SHT matrices are calculated and stored ! in global arrays. ! ! !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 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)) ! allocate single-precision complex copies if (allocated(cbshti)) deallocate(cbshti) allocate(cbshti(lmmaxi,lmmaxi)) if (allocated(cfshti)) deallocate(cfshti) allocate(cfshti(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(.false.,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) ! make single-precision complex copies cbshti(:,:)=zbshti(:,:) cfshti(:,:)=zfshti(:,:) !--------------------------------! ! 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)) ! allocate single-precision complex copies if (allocated(cbshto)) deallocate(cbshto) allocate(cbshto(lmmaxo,lmmaxo)) if (allocated(cfshto)) deallocate(cfshto) allocate(cfshto(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(.false.,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) ! make single-precision complex copies cbshto(:,:)=zbshto(:,:) cfshto(:,:)=zfshto(:,:) end subroutine !EOC elk-9.6.8/src/PaxHeaders/allatoms.f900000644000000000000000000000013214626155520014320 xustar0030 mtime=1717099344.594989671 30 atime=1717099342.634979111 30 ctime=1717099344.594989671 elk-9.6.8/src/allatoms.f900000644002504400250440000000356214626155520017050 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(264) 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) end subroutine !EOC elk-9.6.8/src/PaxHeaders/putevecfv.f900000644000000000000000000000013214626155520014513 xustar0030 mtime=1717099344.596989682 30 atime=1717099342.637979127 30 ctime=1717099344.596989682 elk-9.6.8/src/putevecfv.f900000644002504400250440000000177714626155520017251 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 use modramdisk implicit none ! arguments character(*), intent(in) :: fext integer, intent(in) :: ik complex(8), intent(in) :: evecfv(nmatmax,nstfv,nspnfv) ! local variables integer recl character(256) fname ! construct the filename fname=trim(scrpath)//'EVECFV'//trim(fext) !$OMP CRITICAL(u202) ! write to RAM disk if required if (ramdisk) then call putrd(fname,ik,v1=vkl(:,ik),n1=nmatmax,n2=nstfv,n3=nspnfv, & nzv=nmatmax*nstfv*nspnfv,zva=evecfv) end if ! write to disk if required if (wrtdsk) then ! find the record length inquire(iolength=recl) vkl(:,ik),nmatmax,nstfv,nspnfv,evecfv open(202,file=fname,form='UNFORMATTED',access='DIRECT',recl=recl) write(202,rec=ik) vkl(:,ik),nmatmax,nstfv,nspnfv,evecfv close(202) end if !$OMP END CRITICAL(u202) end subroutine elk-9.6.8/src/PaxHeaders/getevecfv.f900000644000000000000000000000013214626155520014462 xustar0030 mtime=1717099344.598989693 30 atime=1717099342.639979138 30 ctime=1717099344.598989693 elk-9.6.8/src/getevecfv.f900000644002504400250440000001414214626155520017206 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 use modramdisk ! !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 logical tgs 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 > 0) then ik=ikp else ! find the equivalent k-point number and crystal symmetry element call findkpt(vpl,isym,ik) end if ! construct the filename fname=trim(scrpath)//'EVECFV'//trim(fext) !$OMP CRITICAL(u202) ! read from RAM disk if required if (ramdisk) then call getrd(fname,ik,tgs,v1=vkl_,n1=nmatmax_,n2=nstfv_,n3=nspnfv_, & nzv=nmatmax*nstfv*nspnfv,zva=evecfv) if (tgs) goto 10 end if ! find the record length inquire(iolength=recl) vkl_,nmatmax_,nstfv_,nspnfv_,evecfv open(202,file=fname,form='UNFORMATTED',access='DIRECT',recl=recl) read(202,rec=ik) vkl_,nmatmax_,nstfv_,nspnfv_,evecfv close(202) 10 continue !$OMP END CRITICAL(u202) t1=abs(vkl(1,ik)-vkl_(1))+abs(vkl(2,ik)-vkl_(2))+abs(vkl(3,ik)-vkl_(3)) if (t1 > 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 /= 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 /= 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 /= 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 > 0) return t1=abs(vpl(1)-vkl(1,ik))+abs(vpl(2)-vkl(2,ik))+abs(vpl(3)-vkl(3,ik)) if (t1 < 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 < 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 > 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(1:3,ik),atposl(1:3,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=l**2+1 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_) end subroutine !EOC elk-9.6.8/src/PaxHeaders/writesym.f900000644000000000000000000000013214626155520014367 xustar0030 mtime=1717099344.600989704 30 atime=1717099342.642979154 30 ctime=1717099344.600989704 elk-9.6.8/src/writesym.f900000644002504400250440000000570214626155520017115 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',action='WRITE') 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',action='WRITE') 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',action='WRITE') 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',action='WRITE') 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 > 0).and.(mod(i,20) == 0)) write(50,*) write(50,'(I4)',advance='NO') ja i=i+1 end if end do write(50,*) end do end do close(50) end subroutine !EOC elk-9.6.8/src/PaxHeaders/putoccsv.f900000644000000000000000000000013114626155520014351 xustar0030 mtime=1717099344.602989715 29 atime=1717099342.64597917 30 ctime=1717099344.602989715 elk-9.6.8/src/putoccsv.f900000644002504400250440000000122414626155520017073 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(u208) open(208,file='OCCSV'//trim(fext),form='UNFORMATTED',access='DIRECT',recl=recl) write(208,rec=ik) vkl(:,ik),nstsv,occsvp close(208) !$OMP END CRITICAL(u208) end subroutine elk-9.6.8/src/PaxHeaders/getoccsv.f900000644000000000000000000000013214626155520014321 xustar0030 mtime=1717099344.604989725 30 atime=1717099342.648979186 30 ctime=1717099344.604989725 elk-9.6.8/src/getoccsv.f900000644002504400250440000000247114626155520017047 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 > 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(u208) open(208,file='OCCSV'//trim(fext),form='UNFORMATTED',access='DIRECT',recl=recl) read(208,rec=ik) vkl_,nstsv_,occsvp close(208) !$OMP END CRITICAL(u208) t1=abs(vkl(1,ik)-vkl_(1))+abs(vkl(2,ik)-vkl_(2))+abs(vkl(3,ik)-vkl_(3)) if (t1 > 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 /= 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 end subroutine elk-9.6.8/src/PaxHeaders/torque.f900000644000000000000000000000013214626155520014023 xustar0030 mtime=1717099344.606989736 30 atime=1717099342.651979203 30 ctime=1717099344.606989736 elk-9.6.8/src/torque.f900000644002504400250440000000171714626155520016553 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), 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 end subroutine elk-9.6.8/src/PaxHeaders/findqpt.f900000644000000000000000000000013214626155520014151 xustar0030 mtime=1717099344.608989747 30 atime=1717099342.653979213 30 ctime=1717099344.608989747 elk-9.6.8/src/findqpt.f900000644002504400250440000000211714626155520016674 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 i1,i2,i3,lspl real(8) v1(3),v2(3),t1 i1=modulo(nint(vpl(1)*ngridq(1)),ngridq(1)) i2=modulo(nint(vpl(2)*ngridq(2)),ngridq(2)) i3=modulo(nint(vpl(3)*ngridq(3)),ngridq(3)) iq=ivqiq(i1,i2,i3) 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 < 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-9.6.8/src/PaxHeaders/findkpt.f900000644000000000000000000000013114626155520014142 xustar0030 mtime=1717099344.610989758 29 atime=1717099342.65697923 30 ctime=1717099344.610989758 elk-9.6.8/src/findkpt.f900000644002504400250440000000213714626155520016670 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 i1,i2,i3,lspl real(8) v1(3),v2(3),t1 v1(:)=vpl(:)-vkloff(:)/dble(ngridk(:)) i1=modulo(nint(v1(1)*ngridk(1)),ngridk(1)) i2=modulo(nint(v1(2)*ngridk(2)),ngridk(2)) i3=modulo(nint(v1(3)*ngridk(3)),ngridk(3)) ik=ivkik(i1,i2,i3) v1(:)=vkl(:,ik) ! 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 < 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-9.6.8/src/PaxHeaders/genevfsv.f900000644000000000000000000000013214626155520014327 xustar0030 mtime=1717099344.612989768 30 atime=1717099342.659979246 30 ctime=1717099344.612989768 elk-9.6.8/src/genevfsv.f900000644002504400250440000000245414626155520017056 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 ! automatic arrays real(8) evalfv(nstfv,nspnfv) ! allocatable arrays 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(evecfv(nmatmax,nstfv,nspnfv),evecsv(nstsv,nstsv)) !$OMP DO do ik=1,nkpt ! distribute among MPI processes if (mod(ik-1,np_mpi) /= 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(evecfv,evecsv) !$OMP END PARALLEL call freethd(nthd) ! broadcast eigenvalue array to every MPI process if (np_mpi > 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 end subroutine elk-9.6.8/src/PaxHeaders/genwfsv.f900000644000000000000000000000013214626155520014163 xustar0030 mtime=1717099344.614989779 30 atime=1717099342.662979262 30 ctime=1717099344.614989779 elk-9.6.8/src/genwfsv.f900000644002504400250440000000573014626155520016712 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, otherwise ! in spherical coordinates (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; if idx(1)=0 then ! all states are calculated in the usual order (in,integer(*)) ! 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(*),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 is,ias,ldmt,nthd if (nst <= 0) return ! muffin-tin wavefunction ldmt=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 wfmtsv(tsh,lradstp,is,ias,nst,idx,ngp,apwalm,evecfv,evecsv,ldmt, & wfmt(1,ias,1,1)) end do !$OMP END PARALLEL DO call freethd(nthd) ! interstitial wavefunction call wfirsv(tgp,nst,idx,ngdg,igf,ngp,igpig,evecfv,evecsv,ld,wfir) end subroutine !EOC elk-9.6.8/src/PaxHeaders/sdelta.f900000644000000000000000000000013014626155520013756 xustar0029 mtime=1717099344.61698979 30 atime=1717099342.664979273 29 ctime=1717099344.61698979 elk-9.6.8/src/sdelta.f900000644002504400250440000000501414626155520016502 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), external :: sdelta_mp,sdelta_fd,sdelta_sq,sdelta_lr select case(stype) case(0) sdelta=sdelta_mp(0,x) case(1) sdelta=sdelta_mp(1,x) case(2) sdelta=sdelta_mp(2,x) case(3) sdelta=sdelta_fd(x) 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' case(1) sdescr='Methfessel-Paxton order 1, Phys. Rev. B 40, 3616 (1989)' case(2) sdescr='Methfessel-Paxton order 2, Phys. Rev. B 40, 3616 (1989)' case(3) sdescr='Fermi-Dirac' 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-9.6.8/src/PaxHeaders/stheta.f900000644000000000000000000000013214626155520013774 xustar0030 mtime=1717099344.618989801 30 atime=1717099342.667979289 30 ctime=1717099344.618989801 elk-9.6.8/src/stheta.f900000644002504400250440000000224114626155520016515 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), external :: stheta_mp,stheta_fd,stheta_sq,stheta_lr select case(stype) case(0) stheta=stheta_mp(0,x) case(1) stheta=stheta_mp(1,x) case(2) stheta=stheta_mp(2,x) case(3) stheta=stheta_fd(x) 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-9.6.8/src/PaxHeaders/sortidx.f900000644000000000000000000000013214626155520014200 xustar0030 mtime=1717099344.620989811 30 atime=1717099342.670979305 30 ctime=1717099344.620989811 elk-9.6.8/src/sortidx.f900000644002504400250440000000270214626155520016723 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: pure 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 algorithm. ! ! !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 <= 0) return do i=1,n idx(i)=i end do if (n == 1) return l=n/2+1 k=n 10 continue if (l > 1) then l=l-1 m=idx(l) else m=idx(k) idx(k)=idx(1) k=k-1 if (k == 1) then idx(1)=m return end if end if i=l j=l+l 20 continue if (j <= k) then if (j < k) then if (x(idx(j)) < x(idx(j+1))+eps) j=j+1 end if if (x(m) < 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-9.6.8/src/PaxHeaders/symmat.f900000644000000000000000000000013214626155520014016 xustar0030 mtime=1717099344.622989822 30 atime=1717099342.673979321 30 ctime=1717099344.622989822 elk-9.6.8/src/symmat.f900000644002504400250440000000115614626155520016543 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 ! make symmetric average 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 ! normalise t1=1.d0/dble(nsymcrys) al(:,:)=t1*as(:,:) end subroutine elk-9.6.8/src/PaxHeaders/radnucl.f900000644000000000000000000000013214626155520014134 xustar0030 mtime=1717099344.624989833 30 atime=1717099342.675979332 30 ctime=1717099344.624989833 elk-9.6.8/src/radnucl.f900000644002504400250440000000312714626155520016661 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: elemental 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 <= 1.d0) then a=1.d0 else a=abs(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 end function !EOC elk-9.6.8/src/PaxHeaders/symrvf.f900000644000000000000000000000013214626155520014032 xustar0030 mtime=1717099344.626989844 30 atime=1717099342.678979348 30 ctime=1717099344.626989844 elk-9.6.8/src/symrvf.f900000644002504400250440000000516014626155520016556 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,ngdg,ngt,ngv,igf,ld1,rvfmt,ld2,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)) ! ngdg : G-vector grid sizes (in,integer(3)) ! ngt : total number of G-vectors (in,integer) ! ngv : number of G-vectors within cut-off (in,integer) ! igf : map from G-vector index to FFT array (in,integer(ngv)) ! ld1 : leading dimension (in,integer) ! rvfmt : real muffin-tin vector field (in,real(ld1,natmtot,*)) ! ld2 : leading dimension (in,integer) ! rvfir : real interstitial vector field (in,real(ld2,*)) ! !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) :: ngdg(3),ngt,ngv,igf(ngv) integer, intent(in) :: ld1 real(8), intent(inout) :: rvfmt(ld1,natmtot,*) integer, intent(in) :: ld2 real(8), intent(inout) :: rvfir(ld2,*) ! 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,ld1,rvfmt) !$OMP SECTION call symrvfir(tspin,tnc,ngdg,ngt,ngv,igf,ld2,rvfir) !$OMP END PARALLEL SECTIONS call freethd(nthd) end subroutine !EOC elk-9.6.8/src/PaxHeaders/writeqpts.f900000644000000000000000000000013214626155520014546 xustar0030 mtime=1717099344.628989855 30 atime=1717099342.681979364 30 ctime=1717099344.628989855 elk-9.6.8/src/writeqpts.f900000644002504400250440000000074014626155520017271 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',action='WRITE') 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) end subroutine elk-9.6.8/src/PaxHeaders/rndevsv.f900000644000000000000000000000013114626155520014172 xustar0030 mtime=1717099344.630989865 29 atime=1717099342.68497938 30 ctime=1717099344.630989865 elk-9.6.8/src/rndevsv.f900000644002504400250440000000130514626155520016714 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) < 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 unitary(nstsv,evecsv) end subroutine elk-9.6.8/src/PaxHeaders/gengkvec.f900000644000000000000000000000013214626155520014275 xustar0030 mtime=1717099344.632989876 30 atime=1717099342.687979397 30 ctime=1717099344.632989876 elk-9.6.8/src/gengkvec.f900000644002504400250440000000416314626155520017023 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: pure subroutine gengkvec(ngv,ivg,vgc,vkl,vkc,gkmax,ngkmax,ngk,igkig,vgkl,vgkc, & gkc) ! !INPUT/OUTPUT PARAMETERS: ! ngv : number of G-vectors (in,integer) ! ivg : G-vector integer coordinates (in,integer(3,ngv)) ! vgc : G-vectors in Cartesian coordinates (in,real(3,ngv)) ! 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) :: ngv,ivg(3,ngv) real(8), intent(in) :: vgc(3,ngv),vkl(3),vkc(3),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,ngv 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 < 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 == ngkmax) exit end if end do end subroutine !EOC elk-9.6.8/src/PaxHeaders/mixlinear.f900000644000000000000000000000013214626155520014474 xustar0030 mtime=1717099344.634989887 30 atime=1717099342.690979413 30 ctime=1717099344.634989887 elk-9.6.8/src/mixlinear.f900000644002504400250440000000126114626155520017216 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. pure 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 <= 0) return ! initialise mixer if (iscl <= 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) d=d+t1**2 nu(i)=beta*nu(i)+t0*mu(i) mu(i)=nu(i) end do d=sqrt(d/dble(n)) end subroutine elk-9.6.8/src/PaxHeaders/writesf.f900000644000000000000000000000013214626155520014167 xustar0030 mtime=1717099344.636989898 30 atime=1717099342.692979423 30 ctime=1717099344.636989898 elk-9.6.8/src/writesf.f900000644002504400250440000000162414626155520016714 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), external :: sdelta,stheta open(50,file='SDELTA.OUT',form='FORMATTED',action='WRITE') open(51,file='STHETA.OUT',form='FORMATTED',action='WRITE') 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")') end subroutine elk-9.6.8/src/PaxHeaders/gengqf.f900000644000000000000000000000013114626155520013752 xustar0030 mtime=1717099344.638989908 29 atime=1717099342.69597944 30 ctime=1717099344.638989908 elk-9.6.8/src/gengqf.f900000644002504400250440000000162114626155520016475 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 gengqf(ng,vqpc,vgqc,gqc,jlgqr,ylmgq,sfacgq) use modmain implicit none ! arguments integer, intent(in) :: ng real(8), intent(in) :: vqpc(3) real(8), intent(out) :: vgqc(3,ng),gqc(ng),jlgqr(njcmax,nspecies,ng) complex(8), intent(out) :: ylmgq(lmmaxo,ng),sfacgq(ng,natmtot) ! local variables integer ig do ig=1,ng ! 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(.true.,lmaxo,vgqc(:,ig),ylmgq(:,ig)) end do ! generate the spherical Bessel functions call genjlgpr(ng,gqc,jlgqr) ! structure factors for G+q-vectors call gensfacgp(ng,vgqc,ng,sfacgq) end subroutine elk-9.6.8/src/PaxHeaders/genkmat.f900000644000000000000000000000013114626155520014131 xustar0030 mtime=1717099344.640989919 29 atime=1717099342.69797945 30 ctime=1717099344.640989919 elk-9.6.8/src/genkmat.f900000644002504400250440000000371114626155520016656 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,nthd ! allocatable arrays real(8), allocatable :: vmt(:,:),vir(:),bmt(:,:,:) allocate(vmt(npcmtmax,natmtot),vir(ngtot)) if (spinpol) allocate(bmt(npcmtmax,natmtot,ndmag)) ! generate the Kohn-Sham potential and magnetic field in spherical coordinates ! and multiply by the radial integration weights; also multiply the interstitial ! potential with the characteristic function call vblocal(vmt,vir,bmt) ! synchronise MPI processes call mpi_barrier(mpicom,ierror) if (mp_mpi) write(*,*) ! 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) /= 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,bmt,bsir) end do !$OMP END PARALLEL DO call freethd(nthd) deallocate(vmt,vir) if (spinpol) deallocate(bmt) ! synchronise MPI processes call mpi_barrier(mpicom,ierror) end subroutine !EOC elk-9.6.8/src/PaxHeaders/genolpq.f900000644000000000000000000000013014626155520014147 xustar0029 mtime=1717099344.64298993 30 atime=1717099342.700979467 29 ctime=1717099344.64298993 elk-9.6.8/src/genolpq.f900000644002504400250440000000473514626155520016704 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) 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 real(8) t1 ! automatic arrays complex(8) wfmt1(npcmtmax),z(ngkmax) ! allocatable arrays complex(8), allocatable :: wfir1(:) ! external functions complex(8), external :: zdotc call holdthd(nst,nthd) ! zero the matrix elements oq(:,:)=0.d0 !-------------------------! ! muffin-tin part ! !-------------------------! !$OMP PARALLEL DO DEFAULT(SHARED) & !$OMP PRIVATE(wfmt1,ispn,ias,is) & !$OMP PRIVATE(nrc,nrci,npc,ist) & !$OMP NUM_THREADS(nthd) 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) ! apply the radial integral weights call zfcmtwr(nrc,nrci,wrcmt(:,is),wfmt1) ! compute the inner products do ist=1,nst oq(ist,jst)=oq(ist,jst)+zdotc(npc,wfmtq(:,ias,ispn,ist),1,wfmt1,1) end do end do end do end do !$OMP END PARALLEL DO !---------------------------! ! interstitial part ! !---------------------------! t1=sqrt(omega) !$OMP PARALLEL DEFAULT(SHARED) & !$OMP PRIVATE(wfir1,z,ispn,jspn) & !$OMP PRIVATE(igpq,ist) & !$OMP NUM_THREADS(nthd) allocate(wfir1(ngtot)) !$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)+t1*zdotc(ngpq(jspn),wfgpq(:,ispn,ist),1,z,1) end do end do end do !$OMP END DO deallocate(wfir1) !$OMP END PARALLEL call freethd(nthd) end subroutine elk-9.6.8/src/PaxHeaders/genjlgprmt.f900000644000000000000000000000013214626155520014655 xustar0030 mtime=1717099344.644989941 30 atime=1717099342.703979483 30 ctime=1717099344.644989941 elk-9.6.8/src/genjlgprmt.f900000644002504400250440000000234714626155520017405 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 end subroutine !EOC elk-9.6.8/src/PaxHeaders/rfinterp.f900000644000000000000000000000013214626155520014335 xustar0030 mtime=1717099344.646989952 30 atime=1717099342.706979499 30 ctime=1717099344.646989952 elk-9.6.8/src/rfinterp.f900000644002504400250440000000333714626155520017065 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,wci,fi,no,xo,fo) ! !INPUT/OUTPUT PARAMETERS: ! ni : number of input points (in,integer) ! xi : input abscissa array (in,real(ni)) ! wci : input spline coefficient weights (in,real(12,ni)) ! fi : input data array (in,real(ni)) ! no : number of output points (in,integer) ! xo : output abscissa array (in,real(no)) ! 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),wci(12,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 == 1) then fo(:)=fi(1) return end if ! compute the spline coefficients call splinew(ni,wci,fi,cf) ! evaluate spline at output points i=1 do l=1,no x=xo(l) if (i >= ni) i=1 if (x >= xi(i)) then if (x > xi(i+1)) then ! binary search i=1 j=ni do while (j > i+1) k=(i+j)/2 if (x < xi(k)) then j=k else i=k end if end do end if end if dx=x-xi(i) fo(l)=fi(i)+dx*(cf(1,i)+dx*(cf(2,i)+dx*cf(3,i))) end do end subroutine !EOC elk-9.6.8/src/PaxHeaders/fsmooth.f900000644000000000000000000000013214626155520014163 xustar0030 mtime=1717099344.648989962 30 atime=1717099342.709979515 30 ctime=1717099344.648989962 elk-9.6.8/src/fsmooth.f900000644002504400250440000000164314626155520016711 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 end subroutine !EOC elk-9.6.8/src/PaxHeaders/axangrot.f900000644000000000000000000000013214626155520014327 xustar0030 mtime=1717099344.650989973 30 atime=1717099342.711979526 30 ctime=1717099344.650989973 elk-9.6.8/src/axangrot.f900000644002504400250440000000252314626155520017053 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: pure 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 < 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 end subroutine !EOC elk-9.6.8/src/PaxHeaders/rotaxang.f900000644000000000000000000000013214626155520014327 xustar0030 mtime=1717099344.652989984 30 atime=1717099342.714979542 30 ctime=1717099344.652989984 elk-9.6.8/src/rotaxang.f900000644002504400250440000000616614626155520017062 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,rot(3,3) real(8), intent(out) :: det,v(3),th ! local variables real(8), parameter :: pi=3.1415926535897932385d0 real(8) rotp(3,3),t1,t2 ! find the determinant det=rot(1,1)*(rot(2,2)*rot(3,3)-rot(3,2)*rot(2,3)) & +rot(2,1)*(rot(3,2)*rot(1,3)-rot(1,2)*rot(3,3)) & +rot(3,1)*(rot(1,2)*rot(2,3)-rot(2,2)*rot(1,3)) if (abs(det-1.d0) < eps) then det=1.d0 else if (abs(det+1.d0) < eps) then det=-1.d0 else goto 10 end if ! proper rotation matrix rotp(:,:)=det*rot(:,:) v(1)=0.5d0*(rotp(2,3)-rotp(3,2)) v(2)=0.5d0*(rotp(3,1)-rotp(1,3)) v(3)=0.5d0*(rotp(1,2)-rotp(2,1)) t1=sqrt(v(1)**2+v(2)**2+v(3)**2) t2=0.5d0*(rotp(1,1)+rotp(2,2)+rotp(3,3)-1.d0) if (abs(abs(t2)-1.d0) > 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 > 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) >= rotp(2,2)).and.(rotp(1,1) >= rotp(3,3))) then if (rotp(1,1) < (-1.d0+eps)) goto 10 v(1)=sqrt(0.5d0*abs(rotp(1,1)+1.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) >= rotp(1,1)).and.(rotp(2,2) >= rotp(3,3))) then if (rotp(2,2) < (-1.d0+eps)) goto 10 v(2)=sqrt(0.5d0*abs(rotp(2,2)+1.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) < (-1.d0+eps)) goto 10 v(3)=sqrt(0.5d0*abs(rotp(3,3)+1.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-9.6.8/src/PaxHeaders/wspline.f900000644000000000000000000000013214626155520014165 xustar0030 mtime=1717099344.654989995 30 atime=1717099342.717979558 30 ctime=1717099344.654989995 elk-9.6.8/src/wspline.f900000644002504400250440000000301014626155520016701 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 wspline(n,x,wc) implicit none ! arguments integer, intent(in) :: n real(8), intent(in) :: x(n) real(8), intent(out) :: wc(4,3,n) ! local variables integer i,j real(8) f(4),cf(3,4) if (n < 4) then write(*,*) write(*,'("Error(wspline): n < 4 : ",I8)') n write(*,*) stop end if f(1)=1.d0 f(2:)=0.d0 call spline(4,x,f,cf) wc(1,:,1)=cf(:,1) wc(1,:,2)=cf(:,2) f(1)=0.d0 f(2)=1.d0 call spline(4,x,f,cf) wc(2,:,1)=cf(:,1) wc(2,:,2)=cf(:,2) f(2)=0.d0 f(3)=1.d0 call spline(4,x,f,cf) wc(3,:,1)=cf(:,1) wc(3,:,2)=cf(:,2) f(3)=0.d0 f(4)=1.d0 call spline(4,x,f,cf) wc(4,:,1)=cf(:,1) wc(4,:,2)=cf(:,2) do i=3,n-3 j=i-1 f(1)=1.d0 f(2:)=0.d0 call spline(4,x(j),f,cf) wc(1,:,i)=cf(:,2) f(1)=0.d0 f(2)=1.d0 call spline(4,x(j),f,cf) wc(2,:,i)=cf(:,2) f(2)=0.d0 f(3)=1.d0 call spline(4,x(j),f,cf) wc(3,:,i)=cf(:,2) f(3)=0.d0 f(4)=1.d0 call spline(4,x(j),f,cf) wc(4,:,i)=cf(:,2) end do j=n-3 f(1)=1.d0 f(2:)=0.d0 call spline(4,x(j),f,cf) wc(1,:,n-2)=cf(:,2) wc(1,:,n-1)=cf(:,3) wc(1,:,n)=cf(:,4) f(1)=0.d0 f(2)=1.d0 call spline(4,x(j),f,cf) wc(2,:,n-2)=cf(:,2) wc(2,:,n-1)=cf(:,3) wc(2,:,n)=cf(:,4) f(2)=0.d0 f(3)=1.d0 call spline(4,x(j),f,cf) wc(3,:,n-2)=cf(:,2) wc(3,:,n-1)=cf(:,3) wc(3,:,n)=cf(:,4) f(3)=0.d0 f(4)=1.d0 call spline(4,x(j),f,cf) wc(4,:,n-2)=cf(:,2) wc(4,:,n-1)=cf(:,3) wc(4,:,n)=cf(:,4) end subroutine elk-9.6.8/src/PaxHeaders/splined.f900000644000000000000000000000013214626155520014142 xustar0030 mtime=1717099344.656990005 30 atime=1717099342.720979574 30 ctime=1717099344.656990005 elk-9.6.8/src/splined.f900000644002504400250440000000145114626155520016665 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 splined(n,wc,f,df) implicit none ! arguments integer, intent(in) :: n real(8), intent(in) :: wc(12,n),f(n) real(8), intent(out) :: df(n) ! local variables integer i real(8) f1,f2,f3,f4 f1=f(1); f2=f(2); f3=f(3); f4=f(4) df(1)=wc(1,1)*f1+wc(2,1)*f2+wc(3,1)*f3+wc(4,1)*f4 df(2)=wc(1,2)*f1+wc(2,2)*f2+wc(3,2)*f3+wc(4,2)*f4 !$OMP SIMD LASTPRIVATE(f1,f2,f3,f4) SIMDLEN(8) do i=3,n-2 f1=f(i-1); f2=f(i); f3=f(i+1); f4=f(i+2) df(i)=wc(1,i)*f1+wc(2,i)*f2+wc(3,i)*f3+wc(4,i)*f4 end do i=n-1 df(i)=wc(1,i)*f1+wc(2,i)*f2+wc(3,i)*f3+wc(4,i)*f4 df(n)=wc(1,n)*f1+wc(2,n)*f2+wc(3,n)*f3+wc(4,n)*f4 end subroutine elk-9.6.8/src/PaxHeaders/findswidth.f900000644000000000000000000000013214626155520014647 xustar0030 mtime=1717099344.658990016 30 atime=1717099342.722979585 30 ctime=1717099344.658990016 elk-9.6.8/src/findswidth.f900000644002504400250440000000333214626155520017372 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) < efermi) then m=i e=evalsv(ist,ik) exit end if end do ! 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)) > eps) exit e=evalsv(ist,ik) end do ! 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) end subroutine !EOC elk-9.6.8/src/PaxHeaders/findsymlat.f900000644000000000000000000000013214626155520014656 xustar0030 mtime=1717099344.660990027 30 atime=1717099342.725979601 30 ctime=1717099344.660990027 elk-9.6.8/src/findsymlat.f900000644002504400250440000001172314626155520017404 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),sc(3,3),scp(3,3) real(8) c(3,3),d(3,3),v(3),t1 ! 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) /= 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)) > 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 > 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 > epslat) goto 10 end if ! check invariance of static 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 > 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 > epslat) goto 10 end do ! spin-dependent A-field if (tafspt) then ! proper part of symmetry matrix scp(:,:)=dble(md)*sc(:,:) do its=1,ntimes call r3mm(sc,afspt(:,:,its),c) call r3mmt(c,scp,d) t1=sum(abs(afspt(:,:,its)-d(:,:))) if (t1 > epslat) goto 10 end do end if end if nsymlat=nsymlat+1 if (nsymlat > 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 == 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) == 1).and.(symlat(1,2,i) == 0).and.(symlat(1,3,i) == 0) & .and.(symlat(2,1,i) == 0).and.(symlat(2,2,i) == 1).and.(symlat(2,3,i) == 0) & .and.(symlat(3,1,i) == 0).and.(symlat(3,2,i) == 0).and.(symlat(3,3,i) == 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) == sym(1,1)).and.(symlat(1,2,j) == sym(1,2)).and. & (symlat(1,3,j) == sym(1,3)).and.(symlat(2,1,j) == sym(2,1)).and. & (symlat(2,2,j) == sym(2,2)).and.(symlat(2,3,j) == sym(2,3)).and. & (symlat(3,1,j) == sym(3,1)).and.(symlat(3,2,j) == sym(3,2)).and. & (symlat(3,3,j) == 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 contains pure integer function i3mdet(a) implicit none ! arguments integer, intent(in) :: a(3,3) ! determinant of integer matrix 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)) end function end subroutine !EOC elk-9.6.8/src/PaxHeaders/writepmat.f900000644000000000000000000000013214626155520014520 xustar0030 mtime=1717099344.662990038 30 atime=1717099342.728979617 30 ctime=1717099344.662990038 elk-9.6.8/src/writepmat.f900000644002504400250440000000203014626155520017235 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 ! 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 end subroutine !EOC elk-9.6.8/src/PaxHeaders/genstrain.f900000644000000000000000000000013214626155520014476 xustar0030 mtime=1717099344.664990049 30 atime=1717099342.731979634 30 ctime=1717099344.664990049 elk-9.6.8/src/genstrain.f900000644002504400250440000000314414626155520017222 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 ! set first strain equal to isotropic scaling t1=norm2(avec(:,:)) 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=sum(b(:,:)*strain(:,:,k)) b(:,:)=b(:,:)-t1*strain(:,:,k) end do ! compute the norm t1=norm2(b(:,:)) if (t1 < 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)) < epslat) strain(i,j,k)=0.d0 end do end do end do ! lattice optimisation case if ((task == 2).or.(task == 3)) then if (latvopt == 2) then ! remove isotropic scaling when latvopt=2 strain(:,:,1)=strain(:,:,nstrain) nstrain=nstrain-1 else if (latvopt < 0) then ! optimise over particular strain when latvopt < 0 i=abs(latvopt) if (i > 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 end subroutine elk-9.6.8/src/PaxHeaders/symmetry.f900000644000000000000000000000013114626155520014374 xustar0030 mtime=1717099344.666990059 29 atime=1717099342.73497965 30 ctime=1717099344.666990059 elk-9.6.8/src/symmetry.f900000644002504400250440000000211214626155520017113 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 == 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 if (wrtvars) then 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) end if end subroutine elk-9.6.8/src/PaxHeaders/linengy.f900000644000000000000000000000013014626155520014147 xustar0029 mtime=1717099344.66899007 30 atime=1717099342.736979661 29 ctime=1717099344.66899007 elk-9.6.8/src/linengy.f900000644002504400250440000000750414626155520016701 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: linengy ! !INTERFACE: subroutine linengy ! !USES: use modmain use modmpi use modomp ! !DESCRIPTION: ! Calculates the new linearisation energies for both the APW and local-orbital ! radial functions. See the routine {\tt findband}. ! ! !REVISION HISTORY: ! Created May 2003 (JKD) !EOP !BOC implicit none ! local variables logical fnd integer is,ia,ja,ias,jas integer nr,nri,iro,i0,i1 integer l,ilo,io,jo,nnf,nthd ! automatic arrays logical done(natmmax) real(8) vr(nrmtmax) nnf=0 ! begin loops over atoms and species call holdthd(natmmax,nthd) !$OMP PARALLEL DEFAULT(SHARED) & !$OMP PRIVATE(vr,is,nr,nri,iro) & !$OMP PRIVATE(ia,ias,i0,i1,l) & !$OMP PRIVATE(io,jo,ilo,ja,jas) & !$OMP REDUCTION(+:nnf) & !$OMP NUM_THREADS(nthd) do is=1,nspecies nr=nrmt(is) nri=nrmti(is) iro=nri+1 !$OMP SINGLE done(:)=.false. !$OMP END SINGLE !$OMP DO do ia=1,natoms(is) if (done(ia)) cycle ias=idxas(ia,is) i1=lmmaxi*(nri-1)+1 vr(1:nri)=vsmt(1:i1:lmmaxi,ias)*y00 i0=i1+lmmaxi i1=lmmaxo*(nr-iro)+i0 vr(iro:nr)=vsmt(i0:i1:lmmaxo,ias)*y00 !-----------------------! ! APW functions ! !-----------------------! do l=0,lmaxapw do io=1,apword(l,is) if (apwve(io,l,is)) then ! check if previous radial functions have same default energies do jo=1,io-1 if (apwve(jo,l,is)) then if (abs(apwe0(io,l,is)-apwe0(jo,l,is)) < 1.d-4) then apwe(io,l,ias)=apwe(jo,l,ias) goto 10 end if end if end do ! find the band energy starting from default apwe(io,l,ias)=apwe0(io,l,is) call findband(solsc,l,nr,rlmt(:,1,is),vr,epsband,demaxbnd, & apwe(io,l,ias),fnd) if (.not.fnd) nnf=nnf+1 else ! set linearisation energy automatically if (autolinengy) apwe(io,l,ias)=efermi+dlefe end if 10 continue end do end do !---------------------------------! ! local-orbital functions ! !---------------------------------! do ilo=1,nlorb(is) do io=1,lorbord(ilo,is) if (lorbve(io,ilo,is)) then ! check if previous radial functions have same default energies do jo=1,io-1 if (lorbve(jo,ilo,is)) then if (abs(lorbe0(io,ilo,is)-lorbe0(jo,ilo,is)) < 1.d-4) then lorbe(io,ilo,ias)=lorbe(jo,ilo,ias) goto 20 end if end if end do l=lorbl(ilo,is) ! find the band energy starting from default lorbe(io,ilo,ias)=lorbe0(io,ilo,is) call findband(solsc,l,nr,rlmt(:,1,is),vr,epsband,demaxbnd, & lorbe(io,ilo,ias),fnd) if (.not.fnd) nnf=nnf+1 else ! set linearisation energy automatically if (autolinengy) lorbe(io,ilo,ias)=efermi+dlefe end if 20 continue end do end do ! mark as done and copy to equivalent atoms !$OMP CRITICAL(linengy_) done(ia)=.true. 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) apwe(io,l,jas)=apwe(io,l,ias) end do end do do ilo=1,nlorb(is) do io=1,lorbord(ilo,is) lorbe(io,ilo,jas)=lorbe(io,ilo,ias) end do end do done(ja)=.true. end if end do !$OMP END CRITICAL(linengy_) ! end loops over atoms and species end do !$OMP END DO end do !$OMP END PARALLEL call freethd(nthd) if (mp_mpi.and.(nnf > 0)) then write(*,*) write(*,'("Warning(linengy): could not find ",I3," linearisation energies & &in s.c. loop ",I5)') nnf,iscl end if end subroutine !EOC elk-9.6.8/src/PaxHeaders/writestress.f900000644000000000000000000000013214626155520015102 xustar0030 mtime=1717099344.670990081 30 atime=1717099342.739979677 30 ctime=1717099344.670990081 elk-9.6.8/src/writestress.f900000644002504400250440000000245414626155520017631 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 use modtest 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',action='WRITE') write(50,*) write(50,'("Lattice vector matrix, A, changed by")') write(50,*) write(50,'(" A → A + e_k dt,")') write(50,*) write(50,'("where dt is an infinitesimal scalar and e_k 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 k : ",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 ! write test file if required call writetest(440,'Stress tensor components',nv=nstrain,tol=1.d-2,rva=stress) end subroutine elk-9.6.8/src/PaxHeaders/eulerrot.f900000644000000000000000000000013214626155520014345 xustar0030 mtime=1717099344.672990092 30 atime=1717099342.742979693 30 ctime=1717099344.672990092 elk-9.6.8/src/eulerrot.f900000644002504400250440000000215714626155520017074 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: pure 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)); ca=cos(ang(1)) sb=sin(ang(2)); cb=cos(ang(2)) sg=sin(ang(3)); cg=cos(ang(3)) rot(1,1)=cg*cb*ca-sg*sa rot(2,1)=-sg*cb*ca-cg*sa rot(3,1)=sb*ca rot(1,2)=cg*cb*sa+sg*ca rot(2,2)=-sg*cb*sa+cg*ca rot(3,2)=sb*sa rot(1,3)=-cg*sb rot(2,3)=sg*sb rot(3,3)=cb end subroutine !EOC elk-9.6.8/src/PaxHeaders/cftwfir.f900000644000000000000000000000013214626155520014150 xustar0030 mtime=1717099344.674990102 30 atime=1717099342.744979704 30 ctime=1717099344.674990102 elk-9.6.8/src/cftwfir.f900000644002504400250440000000170114626155520016671 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 cftwfir(ngp,igpig,wfir) use modmain use modomp implicit none ! arguments integer, intent(in) :: ngp(nspnfv),igpig(ngkmax,nspnfv) complex(4), intent(inout) :: wfir(ngtc,nspinor,nstsv) ! local variables integer ist,ispn,jspn integer n,igp,nthd real(8) t0 ! automatic arrays complex(4) c(ngkmax) t0=1.d0/sqrt(omega) call holdthd(nstsv,nthd) !$OMP PARALLEL DO DEFAULT(SHARED) & !$OMP PRIVATE(c,ispn,jspn,n,igp) & !$OMP NUM_THREADS(nthd) do ist=1,nstsv do ispn=1,nspinor jspn=jspnfv(ispn) n=ngp(jspn) c(1:n)=wfir(1:n,ispn,ist) wfir(:,ispn,ist)=0.e0 do igp=1,n wfir(igfc(igpig(igp,jspn)),ispn,ist)=t0*c(igp) end do call cfftifc(3,ngdgc,1,wfir(:,ispn,ist)) end do end do !$OMP END PARALLEL DO call freethd(nthd) end subroutine elk-9.6.8/src/PaxHeaders/rschrodint.f900000644000000000000000000000013114626155520014662 xustar0030 mtime=1717099344.676990113 29 atime=1717099342.74797972 30 ctime=1717099344.676990113 elk-9.6.8/src/rschrodint.f900000644002504400250440000001050414626155520017405 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: pure 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 < 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)) > 1.d100).or.(abs(p1(ir)) > 1.d100).or. & (abs(q0(ir)) > 1.d100).or.(abs(q1(ir)) > 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) < 0.d0) nn=nn+1 end do return contains pure 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) end function pure 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))) end function end subroutine !EOC elk-9.6.8/src/PaxHeaders/writegclq.f900000644000000000000000000000013214626155520014505 xustar0030 mtime=1717099344.678990124 30 atime=1717099342.750979736 30 ctime=1717099344.678990124 elk-9.6.8/src/writegclq.f900000644002504400250440000000201214626155520017222 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 real(8) t1 open(50,file='GCLQ'//trim(filext),form='FORMATTED',action='WRITE') write(50,'(I6," : nqpt; q-point, vql, gclq, 4π/q² below")') nqpt do iq=1,nqpt t1=vqc(1,iq)**2+vqc(2,iq)**2+vqc(3,iq)**2 if (t1 > 1.d-12) then t1=fourpi/t1 else t1=0.d0 end if write(50,'(I6,5G18.10)') iq,vql(:,iq),gclq(iq),t1 end do close(50) end subroutine !EOC elk-9.6.8/src/PaxHeaders/writegeom.f900000644000000000000000000000013214626155520014506 xustar0030 mtime=1717099344.680990135 30 atime=1717099342.753979752 30 ctime=1717099344.680990135 elk-9.6.8/src/writegeom.f900000644002504400250440000000346114626155520017234 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: writegeom ! !INTERFACE: subroutine writegeom(fnum) ! !USES: use modmain ! !INPUT/OUTPUT PARAMETERS: ! fnum : file number for writing output (in,integer) ! !DESCRIPTION: ! Outputs the lattice vectors and atomic positions to file, in a format ! which may be then used directly in {\tt elk.in}. ! ! !REVISION HISTORY: ! Created January 2004 (JKD) !EOP !BOC implicit none ! arguments integer, intent(in) :: fnum ! local variables integer is,ia,i real(8) v1(3),v2(3) write(fnum,*) write(fnum,'("scale")') write(fnum,'(" 1.0")') write(fnum,*) write(fnum,'("scale1")') write(fnum,'(" 1.0")') write(fnum,*) write(fnum,'("scale2")') write(fnum,'(" 1.0")') write(fnum,*) write(fnum,'("scale3")') write(fnum,'(" 1.0")') write(fnum,*) write(fnum,'("avec")') write(fnum,'(3G18.10)') avec(:,1) write(fnum,'(3G18.10)') avec(:,2) write(fnum,'(3G18.10)') avec(:,3) if (molecule) then write(fnum,*) write(fnum,'("molecule")') write(fnum,'(" ",L1)') molecule end if write(fnum,*) write(fnum,'("atoms")') write(fnum,'(I4,T40," : nspecies")') nspecies do is=1,nspecies write(fnum,'("''",A,"''",T40," : spfname")') trim(spfname(is)) write(fnum,'(I4,T40," : natoms; atpos, bfcmt below")') natoms(is) do ia=1,natoms(is) if (molecule) then ! map lattice coordinates to [-0.5,0.5) and write as Cartesian coordinates v1(:)=atposl(:,ia,is) do i=1,3 if (v1(i) > 0.5d0) v1(i)=v1(i)-1.d0 end do call r3mv(avec,v1,v2) else ! otherwise write lattice coordinates v2(:)=atposl(:,ia,is) end if write(fnum,'(3F14.8," ",3F12.8)') v2(:),bfcmt(:,ia,is) end do end do end subroutine !EOC elk-9.6.8/src/PaxHeaders/writemom.f900000644000000000000000000000013214626155520014347 xustar0030 mtime=1717099344.682990145 30 atime=1717099342.755979763 30 ctime=1717099344.682990145 elk-9.6.8/src/writemom.f900000644002504400250440000000152614626155520017075 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) end subroutine elk-9.6.8/src/PaxHeaders/gendmat.f900000644000000000000000000000013214626155520014123 xustar0030 mtime=1717099344.684990156 30 atime=1717099342.758979779 30 ctime=1717099344.684990156 elk-9.6.8/src/gendmat.f900000644002504400250440000000463214626155520016652 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 integer nst,ist,jst integer ias,n,nthd real(8) wo ! automatic arrays integer idx(nstsv) ! 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(idx,apwalm,evecfv,evecsv,dmatk) & !$OMP PRIVATE(ispn,nst,ist,jst,ias,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) /= 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) ! index to occupied states nst=0 do ist=1,nstsv if (abs(occsv(ist,ik)) < epsocc) cycle nst=nst+1 idx(nst)=ist end do ! begin loop over atoms and species do ias=1,natmtot call gendmatk(tspndg,tlmdg,lmin,lmax,ias,nst,idx,ngk(:,ik),apwalm,evecfv, & evecsv,ld,dmatk) do ist=1,nst jst=idx(ist) wo=occsv(jst,ik)*wkpt(ik) !$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 > 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) end subroutine elk-9.6.8/src/PaxHeaders/curlrvf.f900000644000000000000000000000013214626155520014167 xustar0030 mtime=1717099344.686990167 30 atime=1717099342.761979795 30 ctime=1717099344.686990167 elk-9.6.8/src/curlrvf.f900000644002504400250440000000265714626155520016723 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) end subroutine elk-9.6.8/src/PaxHeaders/genzvclmt.f900000644000000000000000000000013214626155520014515 xustar0030 mtime=1717099344.688990178 30 atime=1717099342.764979811 30 ctime=1717099344.688990178 elk-9.6.8/src/genzvclmt.f900000644002504400250440000000164214626155520017242 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) end subroutine elk-9.6.8/src/PaxHeaders/genjtot.f900000644000000000000000000000013214626155520014156 xustar0030 mtime=1717099344.690990189 30 atime=1717099342.766979822 30 ctime=1717099344.690990189 elk-9.6.8/src/genjtot.f900000644002504400250440000000077014626155520016704 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2020 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 genjtot use modmain implicit none ! local variables integer i ! external functions real(8), external :: rfint if (.not.tjr) return ! compute the total current in the unit cell do i=1,3 jtot(i)=rfint(jrmt(:,:,i),jrir(:,i)) end do ! total current magnitude jtotm=sqrt(jtot(1)**2+jtot(2)**2+jtot(3)**2) end subroutine elk-9.6.8/src/PaxHeaders/symvec.f900000644000000000000000000000013214626155520014012 xustar0030 mtime=1717099344.692990199 30 atime=1717099342.769979838 30 ctime=1717099344.692990199 elk-9.6.8/src/symvec.f900000644002504400250440000000104214626155520016531 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,lspl real(8) vs(3),v(3),t1 ! make symmetric average vs(:)=0.d0 do isym=1,nsymcrys lspl=lsplsymc(isym) call r3mv(symlatc(:,:,lspl),vc,v) vs(:)=vs(:)+v(:) end do ! normalise t1=1.d0/dble(nsymcrys) vc(:)=t1*vs(:) end subroutine elk-9.6.8/src/PaxHeaders/checkwrite.f900000644000000000000000000000013014626155520014632 xustar0029 mtime=1717099344.69499021 30 atime=1717099342.772979855 29 ctime=1717099344.69499021 elk-9.6.8/src/checkwrite.f900000644002504400250440000000074514626155520017364 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2020 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 checkwrite(twrite) use modmain use moddelf implicit none ! arguments logical, intent(out) :: twrite ! check for WRITE file inquire(file='WRITE',exist=twrite) if (twrite) then write(*,'("Info(checkwrite): WRITE file exists")') ! delete the WRITE file call delfile('WRITE') end if end subroutine elk-9.6.8/src/PaxHeaders/genjprk.f900000644000000000000000000000013214626155520014144 xustar0030 mtime=1717099344.696990221 30 atime=1717099342.775979871 30 ctime=1717099344.696990221 elk-9.6.8/src/genjprk.f900000644002504400250440000000724614626155520016677 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 genjprk(ik,lock) use modmain use modomp implicit none ! arguments integer, intent(in) :: ik integer(omp_lock_kind), intent(inout) :: lock(natmtot) ! 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) real(8) rfmt(npcmtmax) complex(8) gwfmt(npcmtmax,3),zfmt1(npcmtmax),zfmt2(npcmtmax) ! allocatable arrays complex(8), allocatable :: apwalm(:,:,:,:,:),evecfv(:,:,:),evecsv(:,:) complex(8), allocatable :: wfmt(:,:,:,:),wfgk(:,:,:) complex(8), allocatable :: zfft1(:),zfft2(:) allocate(apwalm(ngkmax,apwordmax,lmmaxapw,natmtot,nspnfv)) allocate(evecfv(nmatmax,nstfv,nspnfv),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)) < epsocc) cycle nst=nst+1 idx(nst)=ist end do ! calculate the second-variational wavefunctions for occupied states allocate(wfmt(npcmtmax,natmtot,nspinor,nst),wfgk(ngkmax,nspinor,nst)) call genwfsv(.true.,.true.,nst,idx,ngdgc,igfc,ngk(:,ik),igkig(:,:,ik),apwalm, & evecfv,evecsv,wfmt,ngkmax,wfgk) deallocate(apwalm,evecfv,evecsv) !-------------------------------------------------! ! muffin-tin paramagnetic current density ! !-------------------------------------------------! 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),wcrcmt(:,:,is), & wfmt(:,ias,ispn,ist),npcmtmax,gwfmt) ! 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,gwfmt(:,i),zfmt2) ! compute the partial current density rfmt(1:npc)=aimag(zfmt1(1:npc)*zfmt2(1:npc)) call omp_set_lock(lock(ias)) jrmt(1:npc,ias,i)=jrmt(1:npc,ias,i)+wo*rfmt(1:npc) call omp_unset_lock(lock(ias)) end do end do end do end do end do deallocate(wfmt) !---------------------------------------------------! ! interstitial paramagnetic current density ! !---------------------------------------------------! allocate(zfft1(ngtc),zfft2(ngtc)) 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=igfc(igkig(igk,jspn,ik)) zfft1(ifg)=wfgk(igk,ispn,ist) end do call zfftifc(3,ngdgc,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=igfc(igkig(igk,jspn,ik)) z1=wfgk(igk,ispn,ist) zfft2(ifg)=vgkc(i,igk,jspn,ik)*cmplx(-aimag(z1),dble(z1),8) end do call zfftifc(3,ngdgc,1,zfft2) !$OMP CRITICAL(currentk_) jrir(1:ngtc,i)=jrir(1:ngtc,i)+wo*aimag(zfft1(1:ngtc)*zfft2(1:ngtc)) !$OMP END CRITICAL(currentk_) end do end do end do deallocate(wfgk,zfft1,zfft2) end subroutine elk-9.6.8/src/PaxHeaders/proj2d.f900000644000000000000000000000013214626155520013704 xustar0030 mtime=1717099344.698990232 30 atime=1717099342.777979881 30 ctime=1717099344.698990232 elk-9.6.8/src/proj2d.f900000644002504400250440000000254214626155520016431 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 < epslat).or.(t2 < epslat).or.(t3 < 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 end subroutine elk-9.6.8/src/PaxHeaders/genidxbse.f900000644000000000000000000000013214626155520014454 xustar0030 mtime=1717099344.700990243 30 atime=1717099342.780979898 30 ctime=1717099344.700990243 elk-9.6.8/src/genidxbse.f900000644002504400250440000000755614626155520017213 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 ! automatic arrays integer idx(nstsv) ! check if the BSE extra valence or conduction states are in range do i=1,nvxbse ist=istxbse(i) if ((ist < 1).or.(ist > 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 < 1).or.(jst > 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 <= 0).or.(ncbse <= 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 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) < efermi) then ntop=ist exit end if end do if ((ntop-nvbse0+1) < 1) then write(*,*) write(*,'("Error(genidxbse): not enough valence states, reduce nvbse")') write(*,*) stop end if if ((ntop+ncbse0) > 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) > 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 == 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) < 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 == 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 end subroutine elk-9.6.8/src/PaxHeaders/symrvfir.f900000644000000000000000000000013214626155520014365 xustar0030 mtime=1717099344.702990253 30 atime=1717099342.783979914 30 ctime=1717099344.702990253 elk-9.6.8/src/symrvfir.f900000644002504400250440000001020614626155520017106 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,ngdg,ngt,ngv,igf,ld,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) ! ngdg : G-vector grid sizes (in,integer(3)) ! ngt : total number of G-vectors (in,integer) ! ngv : number of G-vectors within cut-off (in,integer) ! igf : map from G-vector index to FFT array (in,integer(ngv)) ! ld : leading dimension (in,integer) ! rvfir : real interstitial vector function (inout,real(ld,*)) ! !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 integer, intent(in) :: ngdg(3),ngt,ngv,igf(ngv) integer, intent(in) :: ld real(8), intent(inout) :: rvfir(ld,*) ! 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) x1,x2,x3,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(ngt,nd),zfft2(ngt,nd)) ! Fourier transform vector function to G-space do i=1,nd zfft1(1:ngt,i)=rvfir(1:ngt,i) call zfftifc(3,ngdg,-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,ngv ifg=igf(ig) ! multiply the transpose of the inverse symmetry matrix with the G-vector if (lspl == 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=igf(ivgig(j1,j2,j3)) end if ! translation, spatial rotation and global spin rotation if (tv0) then ! zero translation vector if (lspn == 1) then ! global spin symmetry is the identity zfft2(jfg,:)=zfft2(jfg,:)+zfft1(ifg,:) else if (tnc) then ! non-collinear case x1=zfft1(ifg,1); x2=zfft1(ifg,2); x3=zfft1(ifg,3) zfft2(jfg,1)=zfft2(jfg,1)+sc(1,1)*x1+sc(1,2)*x2+sc(1,3)*x3 zfft2(jfg,2)=zfft2(jfg,2)+sc(2,1)*x1+sc(2,2)*x2+sc(2,3)*x3 zfft2(jfg,3)=zfft2(jfg,3)+sc(3,1)*x1+sc(3,2)*x2+sc(3,3)*x3 else ! collinear case zfft2(jfg,1)=zfft2(jfg,1)+sc(3,3)*zfft1(ifg,1) end if end if 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) if (lspn == 1) then zfft2(jfg,:)=zfft2(jfg,:)+z1*zfft1(ifg,:) else if (tnc) then x1=zfft1(ifg,1); x2=zfft1(ifg,2); x3=zfft1(ifg,3) zfft2(jfg,1)=zfft2(jfg,1)+z1*(sc(1,1)*x1+sc(1,2)*x2+sc(1,3)*x3) zfft2(jfg,2)=zfft2(jfg,2)+z1*(sc(2,1)*x1+sc(2,2)*x2+sc(2,3)*x3) zfft2(jfg,3)=zfft2(jfg,3)+z1*(sc(3,1)*x1+sc(3,2)*x2+sc(3,3)*x3) else zfft2(jfg,1)=zfft2(jfg,1)+sc(3,3)*z1*zfft1(ifg,1) end if 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,ngdg,1,zfft2(:,i)) rvfir(1:ngt,i)=t1*dble(zfft2(1:ngt,i)) end do deallocate(zfft1,zfft2) end subroutine !EOC elk-9.6.8/src/PaxHeaders/genjpr.f900000644000000000000000000000013114626155520013770 xustar0030 mtime=1717099344.704990264 29 atime=1717099342.78697993 30 ctime=1717099344.704990264 elk-9.6.8/src/genjpr.f900000644002504400250440000000430314626155520016513 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 genjpr use modmain use modmpi use modomp implicit none ! local variables integer ik,is,ias,n,i integer nrc,nrci,nthd ! automatic arrays integer(omp_lock_kind) lock(natmtot) ! set the current density to zero do i=1,3 do ias=1,natmtot is=idxis(ias) jrmt(1:npcmt(is),ias,i)=0.d0 end do end do jrir(1:ngtc,1:3)=0.d0 ! current density cannot be computed if wavefunctions do not exist if (iscl <= 0) return ! initialise the OpenMP locks do ias=1,natmtot call omp_init_lock(lock(ias)) end do 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) /= lp_mpi) cycle call genjprk(ik,lock) end do !$OMP END PARALLEL DO call freethd(nthd) ! destroy the OpenMP locks do ias=1,natmtot call omp_destroy_lock(lock(ias)) end do ! convert muffin-tin current density to spherical harmonics call holdthd(natmtot,nthd) !$OMP PARALLEL DO DEFAULT(SHARED) & !$OMP PRIVATE(is,nrc,nrci,i) & !$OMP NUM_THREADS(nthd) do ias=1,natmtot is=idxis(ias) nrc=nrcmt(is) nrci=nrcmti(is) do i=1,3 call rfshtip(nrc,nrci,jrmt(:,ias,i)) end do end do !$OMP END PARALLEL DO call freethd(nthd) ! symmetrise the current density call symrvf(.false.,.true.,nrcmt,nrcmti,npcmt,ngdgc,ngtc,ngvc,igfc,npmtmax, & jrmt,ngtot,jrir) ! convert muffin-tin and interstitial current density from coarse to fine grids call holdthd(6,nthd) !$OMP PARALLEL DEFAULT(SHARED) & !$OMP NUM_THREADS(nthd) !$OMP DO do i=1,3 call rfmtctof(jrmt(:,:,i)) end do !$OMP END DO NOWAIT !$OMP DO do i=1,3 call rfirctof(jrir(:,i),jrir(:,i)) end do !$OMP END DO !$OMP END PARALLEL call freethd(nthd) ! add current densities from each process and redistribute if (np_mpi > 1) then n=npmtmax*natmtot*3 call mpi_allreduce(mpi_in_place,jrmt,n,mpi_double_precision,mpi_sum,mpicom, & ierror) n=ngtot*3 call mpi_allreduce(mpi_in_place,jrir,n,mpi_double_precision,mpi_sum,mpicom, & ierror) end if ! synchronise MPI processes call mpi_barrier(mpicom,ierror) end subroutine elk-9.6.8/src/PaxHeaders/eveqnfvr.f900000644000000000000000000000013214626155520014340 xustar0030 mtime=1717099344.706990275 30 atime=1717099342.789979946 30 ctime=1717099344.706990275 elk-9.6.8/src/eveqnfvr.f900000644002504400250440000001670514626155520017073 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 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)^m Y_{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 info,nthd,nts real(8) v(3),vl,vu real(8) t1,t2,t3,t4 real(8) ts0,ts1 complex(8) h1,h2,o1,o2,z1 ! automatic arrays logical tr(nlotot),tp(nlotot) integer idx(nlotot),s(nlotot) integer iwork(5*nmatp),ifail(nmatp) real(8) w(nmatp),work(8*nmatp) complex(8) zp(nlotot) ! allocatable arrays real(8), allocatable :: rh(:),ro(:),rv(:,:) call timesec(ts0) 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*(vpc(1)*v(1)+vpc(2)*v(2)+vpc(3)*v(3)) 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(l*(l+1)-m+1,ilo,jas) if (ia /= ja) then ! sign of parity and conjugation operators if (mod(l+m,2) == 0) then s(i)=1 else s(i)=-1 end if if (ia < ja) then ! if ia < ja use the real part of the sum of matrix elements tr(i)=.true. else if (ia > 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) == 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) == 0) then ! l even if (m >= 0) then tr(i)=.true. else s(i)=-s(i) tr(i)=.false. end if else ! l odd if (m >= 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) > 1.d-8) then zp(i)=z1 tp(i)=.true. end if end do end do end do end do !---------------------------------! ! real Hamiltonian matrix ! !---------------------------------! allocate(rh(nmatp**2)) ! do j=1,ngp k=(j-1)*nmatp+1 rh(k:k+j-1)=dble(h(k:k+j-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 > m2) t2=-t2 t3=aimag(h(k3)) if (l2 > m1) t3=-t3 t4=aimag(h(k4)) if (l2 > 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 ro(k:k+j-1)=dble(o(k:k+j-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 > m2) t2=-t2 t3=aimag(o(k3)) if (l2 > m1) t3=-t3 t4=aimag(o(k4)) if (l2 > 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(rv(nmatp,nstfv)) ! enable MKL parallelism call holdthd(maxthdmkl,nthd) nts=mkl_set_num_threads_local(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,8*nmatp,iwork,ifail,info) nts=mkl_set_num_threads_local(0) call freethd(nthd) if (info /= 0) then write(*,*) write(*,'("Error(eveqnfvr): diagonalisation failed")') write(*,'(" DSYGVX returned INFO = ",I8)') info if (info > 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(rh,ro,rv) call timesec(ts1) !$OMP ATOMIC timefv=timefv+ts1-ts0 contains elemental integer function map(i,j) implicit none ! arguments integer, intent(in) :: i,j ! map from local-orbital indices to position in matrix if (i <= j) then map=ngp+i+(ngp+j-1)*nmatp else map=ngp+j+(ngp+i-1)*nmatp end if end function end subroutine !EOC elk-9.6.8/src/PaxHeaders/gentau.f900000644000000000000000000000013214626155520013767 xustar0030 mtime=1717099344.708990286 30 atime=1717099342.792979962 30 ctime=1717099344.708990286 elk-9.6.8/src/gentau.f900000644002504400250440000000643314626155520016517 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,npi,npc,n,nthd ! allocatable arrays real(8), allocatable :: rfmt(:,:),rfir(:) real(8), allocatable :: rvfmt(:,:,:),rvfir(:,:) ! tau cannot be computed if wavefunctions do not exist if (iscl <= 0) then taumt(:,:,:)=0.d0 tauir(:,:)=0.d0 return end if ! set the kinetic energy density to zero on the coarse grids do ispn=1,nspinor do ias=1,natmtot is=idxis(ias) taumt(1:npcmt(is),ias,ispn)=0.d0 end do end do tauir(1:ngtc,1:nspinor)=0.d0 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) /= lp_mpi) cycle call gentauk(ik) end do !$OMP END PARALLEL DO call freethd(nthd) ! convert taumt to spherical harmonics do ispn=1,nspinor do ias=1,natmtot is=idxis(ias) call rfshtip(nrcmt(is),nrcmti(is),taumt(:,ias,ispn)) end do end do allocate(rfmt(npcmtmax,natmtot)) ! symmetrise tau if (spinpol) then ! spin-polarised case: convert to scalar-vector form allocate(rvfmt(npcmtmax,natmtot,ndmag)) allocate(rvfir(ngtc,ndmag),rfir(ngtc)) 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(1:ngtc)=tauir(1:ngtc,1)+tauir(1:ngtc,2) rvfir(1:ngtc,1:ndmag-1)=0.d0 rvfir(1:ngtc,ndmag)=tauir(1:ngtc,1)-tauir(1:ngtc,2) call symrf(nrcmt,nrcmti,npcmt,ngdgc,ngtc,ngvc,igfc,npcmtmax,rfmt,rfir) call symrvf(.true.,ncmag,nrcmt,nrcmti,npcmt,ngdgc,ngtc,ngvc,igfc,npcmtmax,& rvfmt,ngtc,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:ngtc,1)=0.5d0*(rfir(1:ngtc)+rvfir(1:ngtc,ndmag)) tauir(1:ngtc,2)=0.5d0*(rfir(1:ngtc)-rvfir(1:ngtc,ndmag)) deallocate(rvfmt,rvfir,rfir) else ! spin-unpolarised case call symrf(nrcmt,nrcmti,npcmt,ngdgc,ngtc,ngvc,igfc,npmtmax,taumt,tauir) end if ! convert muffin-tin tau from coarse to fine radial mesh do ispn=1,nspinor call rfmtctof(taumt(:,:,ispn)) end do ! convert interstitial tau from coarse to fine grid do ispn=1,nspinor call rfirctof(tauir(:,ispn),tauir(:,ispn)) end do ! add tau from each process and redistribute if (np_mpi > 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) npi=npmti(is) ! add the core contribution taumt(1:np,ias,ispn)=taumt(1:np,ias,ispn)+taucr(1:np,ias,ispn) ! improve stability by smoothing tau call rfmtsm(msmgmt,nrmt(is),nrmti(is),taumt(:,ias,ispn)) end do end do deallocate(rfmt) ! synchronise MPI processes call mpi_barrier(mpicom,ierror) end subroutine elk-9.6.8/src/PaxHeaders/genjlgpr.f900000644000000000000000000000013214626155520014314 xustar0030 mtime=1717099344.710990296 30 atime=1717099342.795979979 30 ctime=1717099344.710990296 elk-9.6.8/src/genjlgpr.f900000644002504400250440000000211414626155520017034 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) end subroutine elk-9.6.8/src/PaxHeaders/writestrain.f900000644000000000000000000000013214626155520015057 xustar0030 mtime=1717099344.712990307 30 atime=1717099342.797979989 30 ctime=1717099344.712990307 elk-9.6.8/src/writestrain.f900000644002504400250440000000142314626155520017601 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',action='WRITE') 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)")') end subroutine elk-9.6.8/src/PaxHeaders/writefermi.f900000644000000000000000000000013214626155520014661 xustar0030 mtime=1717099344.714990318 30 atime=1717099342.800980005 30 ctime=1717099344.714990318 elk-9.6.8/src/writefermi.f900000644002504400250440000000106214626155520017402 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',action='WRITE') write(50,'(G18.10)') efermi close(50) end subroutine !EOC elk-9.6.8/src/PaxHeaders/rfmtctof.f900000644000000000000000000000013214626155520014330 xustar0030 mtime=1717099344.716990329 30 atime=1717099342.803980022 30 ctime=1717099344.716990329 elk-9.6.8/src/rfmtctof.f900000644002504400250440000000422014626155520017050 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 integer nr,nri,nro,iro integer nrc,nrci,nrco,irco integer i0,i1,nthd ! automatic arrays real(8) rfmt1(npcmtmax),fi(nrcmtmax),fo(nrmtmax) if (lradstp == 1) return call holdthd(natmtot,nthd) !$OMP PARALLEL DO DEFAULT(SHARED) & !$OMP PRIVATE(rfmt1,fi,fo,is) & !$OMP PRIVATE(nr,nri,nro,iro) & !$OMP PRIVATE(nrc,nrci,nrco,irco) & !$OMP PRIVATE(lm,i0,i1) & !$OMP NUM_THREADS(nthd) do ias=1,natmtot is=idxis(ias) nr=nrmt(is) nri=nrmti(is) nro=nr-nri iro=nri+1 nrc=nrcmt(is) nrci=nrcmti(is) nrco=nrc-nrci irco=nrci+1 ! copy the input function rfmt1(1:npcmt(is))=rfmt(1:npcmt(is),ias) ! interpolate up to lmaxi over entire muffin-tin do lm=1,lmmaxi i1=lmmaxi*(nrci-1)+lm fi(1:nrci)=rfmt1(lm:i1:lmmaxi) i0=i1+lmmaxi i1=lmmaxo*(nrc-irco)+i0 fi(irco:nrc)=rfmt1(i0:i1:lmmaxo) call rfinterp(nrc,rcmt(:,is),wcrcmt(:,:,is),fi,nr,rlmt(:,1,is),fo) i1=lmmaxi*(nri-1)+lm rfmt(lm:i1:lmmaxi,ias)=fo(1:nri) i0=i1+lmmaxi i1=lmmaxo*(nr-iro)+i0 rfmt(i0:i1:lmmaxo,ias)=fo(iro:nr) end do ! interpolate up to lmaxo on outer part of muffin-tin do lm=lmmaxi+1,lmmaxo i0=lmmaxi*nrci+lm i1=lmmaxo*(nrc-irco)+i0 fi(irco:nrc)=rfmt1(i0:i1:lmmaxo) call rfinterp(nrco,rcmt(irco,is),wcrcmt(:,irco,is),fi(irco),nro, & rsp(iro,is),fo(iro)) i0=lmmaxi*nri+lm i1=lmmaxo*(nr-iro)+i0 rfmt(i0:i1:lmmaxo,ias)=fo(iro:nr) end do end do !$OMP END PARALLEL DO call freethd(nthd) end subroutine !EOC elk-9.6.8/src/PaxHeaders/findsym.f900000644000000000000000000000013214626155520014155 xustar0030 mtime=1717099344.718990339 30 atime=1717099342.806980038 30 ctime=1717099344.718990339 elk-9.6.8/src/findsym.f900000644002504400250440000001264714626155520016711 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,lspl(48),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) complex(8) dmat(lmmaxdm,nspinor,lmmaxdm,nspinor) ! external functions real(8), external :: dznrm2 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 < 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 > 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 > 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 /= 0) then n=(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 dmat(:,:,:,:)=dmat(:,:,:,:)-dmftm(:,:,:,:,ias) t1=dznrm2(n,dmat,1)/dble(n) if (t1 > epsdmat) goto 40 end do end do 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 end subroutine !EOC elk-9.6.8/src/PaxHeaders/zfsht.f900000644000000000000000000000013014626155520013640 xustar0029 mtime=1717099344.72099035 30 atime=1717099342.809980054 29 ctime=1717099344.72099035 elk-9.6.8/src/zfsht.f900000644002504400250440000000261414626155520016367 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} and {\tt zbsht}. ! !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 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 i=lmmaxi*nri+1 call zgemm('N','N',lmmaxo,nr-nri,lmmaxo,zone,zfshto,lmmaxo,zfmt1(i),lmmaxo, & zzero,zfmt2(i),lmmaxo) end subroutine !EOC elk-9.6.8/src/PaxHeaders/rhonorm.f900000644000000000000000000000013114626155520014167 xustar0030 mtime=1717099344.722990361 29 atime=1717099342.81298007 30 ctime=1717099344.722990361 elk-9.6.8/src/rhonorm.f900000644002504400250440000000345414626155520016720 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,iro,i0,i1 real(8) t1,t2 if (.not.trhonorm) return ! check error in total charge t1=chgcalc/chgtot-1.d0 if (abs(t1) > 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) iro=nri+1 i1=lmmaxi*(nri-1)+1 rhomt(1:i1:lmmaxi,ias)=rhomt(1:i1:lmmaxi,ias)+t2 i0=i1+lmmaxi i1=lmmaxo*(nr-iro)+i0 rhomt(i0:i1:lmmaxo,ias)=rhomt(i0:i1:lmmaxo,ias)+t2 end do rhoir(1:ngtot)=rhoir(1:ngtot)+t1 ! add the difference to the charges t1=t1*(fourpi/3.d0) do is=1,nspecies t2=t1*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 end subroutine !EOC elk-9.6.8/src/PaxHeaders/genvchi0.f900000644000000000000000000000013214626155520014207 xustar0030 mtime=1717099344.724990372 30 atime=1717099342.815980086 30 ctime=1717099344.724990372 elk-9.6.8/src/genvchi0.f900000644002504400250440000001213214626155520016730 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,vqpl,gclgq,jlgqr,ylmgq,sfacgq,nm,vchi0) use modmain use modomp implicit none ! local variables logical, intent(in) :: t3hw integer, intent(in) :: ik integer(omp_lock_kind), intent(inout) :: lock(nwrf) real(8), intent(in) :: 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),ei,ej,eij,t1 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(4), allocatable :: wfmt(:,:,:,:),wfir(:,:,:) complex(4), allocatable :: wfmtq(:,:,:,:),wfirq(:,:,:) complex(4), allocatable :: crhomt(:,:),crhoir(:) complex(8), allocatable :: zrhoig(:),pmat(:,:,:),zw(:),b(:,:) ! check if q = 0 tq0=.false. if (sum(abs(vqpl(:))) < 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) > emaxrf) cycle nst=nst+1 idx(nst)=ist end do nstq=0 do ist=1,nstsv if (abs(evalsv(ist,jkq)-efermi) > emaxrf) cycle nstq=nstq+1 idxq(nstq)=ist 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_sp(.false.,.false.,nst,idx,ngdgc,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_sp(.false.,.false.,nstq,idxq,ngdgc,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(crhomt,crhoir,zrhoig,zw,b) & !$OMP PRIVATE(jst,kst,lst,ei,ej,eij,t1) & !$OMP PRIVATE(iw,ig,jg,z1,i,j,a) & !$OMP NUM_THREADS(nthd) allocate(crhomt(npcmtmax,natmtot),crhoir(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) ei=evalsv(kst,jk) do jst=1,nstq lst=idxq(jst) t1=wkptnr*omega*(occsv(kst,jk)-occsv(lst,jkq)) if (abs(t1) < 1.d-8) cycle ej=evalsv(lst,jkq) eij=ei-ej ! 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 gencrho(.true.,.true.,ngtc,wfmt(:,:,:,ist),wfir(:,:,ist), & wfmtq(:,:,:,jst),wfirq(:,:,jst),crhomt,crhoir) call zftcf(ngrf,jlgqr,ylmgq,ngrf,sfacgq,crhomt,crhoir,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:) do j=2,ngrf b(j,i)=conjg(b(i,j)) end do end do else ! use trace of 3 x 3 head of matrix t1=sum(dble(pmat(kst,lst,1:3))**2+aimag(pmat(kst,lst,1:3))**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 and wings of the 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(1:nwrf)=zw(1:nwrf)/wrf(1:nwrf) 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 ! add to the head of the response function 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(crhomt,crhoir,zrhoig,zw,b) !$OMP END PARALLEL call freethd(nthd) deallocate(wfmt,wfir,wfmtq,wfirq) if (tq0) deallocate(pmat) end subroutine elk-9.6.8/src/PaxHeaders/cfmtconj.f900000644000000000000000000000013214626155520014307 xustar0030 mtime=1717099344.726990383 30 atime=1717099342.818980102 30 ctime=1717099344.726990383 elk-9.6.8/src/cfmtconj.f900000644002504400250440000000376514626155520017044 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 cfmtconj(nr,nri,np,cfmt) use modmain implicit none ! arguments integer, intent(in) :: nr,nri,np complex(4), intent(inout) :: cfmt(np) ! local variables integer i ! automatic arrays complex(4) cfmt1(np) cfmt1(:)=cfmt(:) call cflmnconj(lmaxi,nri,lmmaxi,cfmt1,cfmt) i=lmmaxi*nri+1 call cflmnconj(lmaxo,nr-nri,lmmaxo,cfmt1(i),cfmt(i)) return contains !BOP ! !ROUTINE: cflmnconj ! !INTERFACE: pure subroutine cflmnconj(lmax,n,ld,cflm1,cflm2) ! !INPUT/OUTPUT PARAMETERS: ! lmax : maximum angular momentum (in,integer) ! n : number of functions to conjugate (in,integer) ! ld : leading dimension (in,integer) ! cflm1 : coefficients of input complex spherical harmonic expansion ! (in,complex((lmax+1)**2))) ! cflm2 : 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 $c_{lm}$, the routine ! returns $c'_{lm}=(-1)^m c^*_{l-m}$ so that ! $$ \sum_{lm}c'_{lm}Y_{lm}(\theta,\phi)=\left(\sum_{lm}c_{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,n,ld complex(4), intent(in) :: cflm1(ld,n) complex(4), intent(out) :: cflm2(ld,n) ! 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) == 0) then cflm2(lm1,:)=conjg(cflm1(lm2,:)) cflm2(lm2,:)=conjg(cflm1(lm1,:)) else cflm2(lm1,:)=-conjg(cflm1(lm2,:)) cflm2(lm2,:)=-conjg(cflm1(lm1,:)) end if end do ! m=0 case lm1=lm1+1 cflm2(lm1,:)=conjg(cflm1(lm1,:)) end do end subroutine !EOC end subroutine elk-9.6.8/src/PaxHeaders/stheta_sq.f900000644000000000000000000000013214626155520014477 xustar0030 mtime=1717099344.728990393 30 atime=1717099342.821980118 30 ctime=1717099344.728990393 elk-9.6.8/src/stheta_sq.f900000644002504400250440000000160014626155520017216 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: elemental 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 <= -0.5d0) then stheta_sq=0.d0 return end if if (x < 0.5d0) then stheta_sq=x+0.5d0 else stheta_sq=1.d0 end if end function !EOC elk-9.6.8/src/PaxHeaders/sdelta_lr.f900000644000000000000000000000013214626155520014455 xustar0030 mtime=1717099344.730990404 30 atime=1717099342.823980129 30 ctime=1717099344.730990404 elk-9.6.8/src/sdelta_lr.f900000644002504400250440000000063114626155520017177 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. elemental 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)) end function elk-9.6.8/src/PaxHeaders/stheta_lr.f900000644000000000000000000000013214626155520014471 xustar0030 mtime=1717099344.732990415 30 atime=1717099342.826980146 30 ctime=1717099344.732990415 elk-9.6.8/src/stheta_lr.f900000644002504400250440000000062114626155520017212 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. elemental 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.d0*x)/pi end function elk-9.6.8/src/PaxHeaders/findsymsite.f900000644000000000000000000000013214626155520015042 xustar0030 mtime=1717099344.734990426 30 atime=1717099342.829980162 30 ctime=1717099344.734990426 elk-9.6.8/src/findsymsite.f900000644002504400250440000000163614626155520017572 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 end subroutine elk-9.6.8/src/PaxHeaders/genlmirep.f900000644000000000000000000000013214626155520014466 xustar0030 mtime=1717099344.736990436 30 atime=1717099342.831980172 30 ctime=1717099344.736990436 elk-9.6.8/src/genlmirep.f900000644002504400250440000000427214626155520017215 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(:,:),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=l**2+1 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=l**2+1 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) end subroutine elk-9.6.8/src/PaxHeaders/writespecies.f900000644000000000000000000000013214626155520015212 xustar0030 mtime=1717099344.738990447 30 atime=1717099342.834980189 30 ctime=1717099344.738990447 elk-9.6.8/src/writespecies.f900000644002504400250440000000526114626155520017740 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) < 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) == n(jst)).and.(l(ist) == 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) == 0).or.(l(ist) < k(ist))) then if ((eval(ist) < esccut).or.(l(ist) >= 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) end subroutine elk-9.6.8/src/PaxHeaders/rhomagk.f900000644000000000000000000000013114626155520014133 xustar0030 mtime=1717099344.740990458 29 atime=1717099342.83898021 30 ctime=1717099344.740990458 elk-9.6.8/src/rhomagk.f900000644002504400250440000001467014626155520016666 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. !BOP ! !ROUTINE: rhomagk ! !INTERFACE: subroutine rhomagk(ngp,igpig,lock,wppt,occsvp,apwalm,evecfv,evecsv) ! !USES: use modmain use modomp ! !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)) ! lock : OpenMP lock for each atom (in,integer(natmtot)) ! wppt : weight of input p-point (in,real) ! occsvp : occupation number for each state (in,real(nstsv)) ! 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)) ! !DESCRIPTION: ! Generates the partial valence charge density and magnetisation from the ! eigenvectors at a particular $k$-point. In the muffin-tin region, the ! wavefunction is obtained in terms of its $(l,m)$-components from both the ! APW and local-orbital functions. Using a backward spherical harmonic ! transform (SHT), the wavefunction is converted to real-space and the density ! obtained from its modulus squared. A similar proccess is used for the ! intersitial density in which the wavefunction in real-space is obtained from ! a Fourier transform of the APW functions. See routines {\tt wfmtsv}, ! {\tt genshtmat} and {\tt eveqn}. ! ! !REVISION HISTORY: ! Created April 2003 (JKD) ! Removed conversion to spherical harmonics, January 2009 (JKD) ! Partially de-phased the muffin-tin magnetisation for spin-spirals, ! February 2009 (FC, FB & LN) ! Optimisations, July 2010 (JKD) !EOP !BOC implicit none ! arguments integer, intent(in) :: ngp(nspnfv),igpig(ngkmax,nspnfv) integer(omp_lock_kind), intent(inout) :: lock(natmtot) real(8), intent(in) :: wppt,occsvp(nstsv) complex(8), intent(in) :: apwalm(ngkmax,apwordmax,lmmaxapw,natmtot,nspnfv) complex(8), intent(in) :: evecfv(nmatmax,nstfv,nspnfv),evecsv(nstsv,nstsv) ! local variables integer ispn,jspn,nst,ist integer is,ias,npc,i,j,k integer n,igp,nthd real(8) wo,ts0,ts1 complex(8) z1 ! automatic arrays integer idx(nstsv) complex(8) wfir(ngtc,nspinor),wfgp(ngkmax) ! allocatable arrays complex(8), allocatable :: wfmt(:,:,:) call timesec(ts0) ! number of and index to occupied states nst=0 do ist=1,nstsv if (abs(occsvp(ist)) < epsocc) cycle nst=nst+1 idx(nst)=ist end do allocate(wfmt(npcmtmax,nspinor,nst)) call holdthd(nst,nthd) !----------------------------------------------! ! muffin-tin density and magnetisation ! !----------------------------------------------! !$OMP PARALLEL DEFAULT(SHARED) & !$OMP PRIVATE(wfir,wfgp,ias,is) & !$OMP PRIVATE(npc,i,j,k,wo) & !$OMP PRIVATE(ispn,jspn,n,ist) & !$OMP PRIVATE(z1,igp) & !$OMP NUM_THREADS(nthd) do ias=1,natmtot is=idxis(ias) npc=npcmt(is) !$OMP SINGLE call wfmtsv(.false.,lradstp,is,ias,nst,idx,ngp,apwalm,evecfv,evecsv,npcmtmax,& wfmt) !$OMP END SINGLE !$OMP DO do j=1,nst k=idx(j) wo=occsvp(k)*wppt ! add to density and magnetisation call omp_set_lock(lock(ias)) if (spinpol) then ! spin-polarised if (ncmag) then ! non-collinear call rmk1(npc,wo,wfmt(:,1,j),wfmt(:,2,j),rhomt(:,ias),magmt(:,ias,1), & magmt(:,ias,2),magmt(:,ias,3)) else ! collinear call rmk2(npc,wo,wfmt(:,1,j),wfmt(:,2,j),rhomt(:,ias),magmt(:,ias,1)) end if else ! spin-unpolarised call rmk3(npc,wo,wfmt(:,1,j),rhomt(:,ias)) end if call omp_unset_lock(lock(ias)) end do !$OMP END DO end do !------------------------------------------------! ! interstitial density and magnetisation ! !------------------------------------------------! !$OMP DO do j=1,nst k=idx(j) wo=occsvp(k)*wppt/omega if (tevecsv) then ! generate spinor wavefunction from second-variational eigenvectors do ispn=1,nspinor jspn=jspnfv(ispn) n=ngp(jspn) wfgp(1:n)=0.d0 do ist=1,nstfv i=(ispn-1)*nstfv+ist z1=evecsv(i,k) if (abs(dble(z1))+abs(aimag(z1)) > epsocc) then wfgp(1:n)=wfgp(1:n)+z1*evecfv(1:n,ist,jspn) end if end do wfir(:,ispn)=0.d0 do igp=1,n wfir(igfc(igpig(igp,jspn)),ispn)=wfgp(igp) end do ! Fourier transform wavefunction to real-space call zfftifc(3,ngdgc,1,wfir(:,ispn)) end do else ! spin-unpolarised wavefunction wfir(:,1)=0.d0 do igp=1,ngp(1) wfir(igfc(igpig(igp,1)),1)=evecfv(igp,k,1) end do call zfftifc(3,ngdgc,1,wfir) end if ! add to density and magnetisation !$OMP CRITICAL(rhomagk_) if (spinpol) then ! spin-polarised if (ncmag) then ! non-collinear call rmk1(ngtc,wo,wfir,wfir(:,2),rhoir,magir,magir(:,2),magir(:,3)) else ! collinear call rmk2(ngtc,wo,wfir,wfir(:,2),rhoir,magir) end if else ! spin-unpolarised call rmk3(ngtc,wo,wfir,rhoir) end if !$OMP END CRITICAL(rhomagk_) end do !$OMP END DO !$OMP END PARALLEL call freethd(nthd) deallocate(wfmt) call timesec(ts1) !$OMP ATOMIC timerho=timerho+ts1-ts0 return contains 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 real(8) a1,b1,a2,b2 wo2=2.d0*wo !$OMP SIMD PRIVATE(a1,b1,a2,b2,t1,t2) SIMDLEN(8) do i=1,n a1=dble(wf1(i)); b1=aimag(wf1(i)) a2=dble(wf2(i)); b2=aimag(wf2(i)) t1=a1**2+b1**2; t2=a2**2+b2**2 mag1(i)=mag1(i)+wo2*(a1*a2+b1*b2) mag2(i)=mag2(i)+wo2*(a1*b2-b1*a2) mag3(i)=mag3(i)+wo*(t1-t2) rho(i)=rho(i)+wo*(t1+t2) end do 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 !$OMP SIMD PRIVATE(t1,t2) SIMDLEN(8) do i=1,n t1=dble(wf1(i))**2+aimag(wf1(i))**2 t2=dble(wf2(i))**2+aimag(wf2(i))**2 mag(i)=mag(i)+wo*(t1-t2) rho(i)=rho(i)+wo*(t1+t2) end do 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) end subroutine end subroutine !EOC elk-9.6.8/src/PaxHeaders/symrvfmt.f900000644000000000000000000000013214626155520014373 xustar0030 mtime=1717099344.742990469 30 atime=1717099342.841980226 30 ctime=1717099344.742990469 elk-9.6.8/src/symrvfmt.f900000644002504400250440000000721214626155520017117 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,n integer nd,isym,lspl,lspn,i real(8) sc(3,3),t0,t1 real(8) x1,x2,x3,y1,y2,y3 ! 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(ld,natmmax,nd),rvfmt2(ld,nd)) t0=1.d0/dble(nsymcrys) do is=1,nspecies n=np(is) ! make copy of vector field for all atoms of current species do i=1,nd do ia=1,natoms(is) ias=idxas(ia,is) rvfmt1(1:n,ia,i)=rvfmt(1:n,ias,i) end do end do done(:)=.false. do ia=1,natoms(is) if (done(ia)) cycle ias=idxas(ia,is) rvfmt(1:n,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,n x1=rvfmt2(i,1); x2=rvfmt2(i,2); x3=rvfmt2(i,3) y1=sc(1,1)*x1+sc(1,2)*x2+sc(1,3)*x3 y2=sc(2,1)*x1+sc(2,2)*x2+sc(2,3)*x3 y3=sc(3,1)*x1+sc(3,2)*x2+sc(3,3)*x3 rvfmt(i,ias,1)=rvfmt(i,ias,1)+y1 rvfmt(i,ias,2)=rvfmt(i,ias,2)+y2 rvfmt(i,ias,3)=rvfmt(i,ias,3)+y3 end do else ! collinear case t1=sc(3,3) rvfmt(1:n,ias,1)=rvfmt(1:n,ias,1)+t1*rvfmt2(1:n,1) end if ! end loop over crystal symmetries end do ! normalise do i=1,nd rvfmt(1:n,ias,i)=t0*rvfmt(1:n,ias,i) 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,n x1=rvfmt(i,jas,1); x2=rvfmt(i,jas,2); x3=rvfmt(i,jas,3) y1=sc(1,1)*x1+sc(1,2)*x2+sc(1,3)*x3 y2=sc(2,1)*x1+sc(2,2)*x2+sc(2,3)*x3 y3=sc(3,1)*x1+sc(3,2)*x2+sc(3,3)*x3 rvfmt(i,jas,1)=y1; rvfmt(i,jas,2)=y2; rvfmt(i,jas,3)=y3 end do else ! collinear case t1=sc(3,3) rvfmt(1:n,jas,1)=t1*rvfmt(1:n,jas,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) end subroutine elk-9.6.8/src/PaxHeaders/wigner3jf.f900000644000000000000000000000013014626155520014400 xustar0029 mtime=1717099344.74499048 30 atime=1717099342.844980242 29 ctime=1717099344.74499048 elk-9.6.8/src/wigner3jf.f900000644002504400250440000000517414626155520017133 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,sm,t1 ! external functions real(8), external :: factn,factr ! check input variables if ((j12 < 0).or.(j22 < 0).or.(j32 < 0).or.(abs(m12) > j12).or. & (abs(m22) > j22).or.(abs(m32) > 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 == 0).and.(j22 == 0).and.(j32 == 0)) then wigner3jf=1.d0 return end if if ((j12 > 100).or.(j22 > 100).or.(j32 > 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) /= 0).or.(mod(jm2,2) /= 0).or.(mod(jm3,2) /= 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) /= 0).or.(mod(l22,2) /= 0).or.(mod(l32,2) /= 0).or. & (mod(l42,2) /= 0)) then wigner3jf=0.d0 return end if l1=l12/2 l2=l22/2 l3=l32/2 if ((m12+m22+m32 /= 0).or.(l1 < 0).or.(l2 < 0).or.(l3 < 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) /= 0) then sgn=-1.d0 else sgn=1.d0 end if sm=0.d0 do k=k1,k2 t1=sgn*factr(l1,l1-n2+k)*factr(l2,l2-n1+k)*factr(l3,l3-k) sm=sm+t1/(factn(k)*factn(n1-k)*factn(n2-k)) 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)*factn(jm1)*factn(jm2) wigner3jf=sm*sqrt(t1) end function !EOC elk-9.6.8/src/PaxHeaders/genhvec.f900000644000000000000000000000013014626155520014121 xustar0029 mtime=1717099344.74699049 30 atime=1717099342.847980259 29 ctime=1717099344.74699049 elk-9.6.8/src/genhvec.f900000644002504400250440000000611014626155520016643 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) < 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) == 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) == 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 > 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 == 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) end subroutine elk-9.6.8/src/PaxHeaders/ylmrot.f900000644000000000000000000000013214626155520014032 xustar0030 mtime=1717099344.748990501 30 atime=1717099342.849980269 30 ctime=1717099344.748990501 elk-9.6.8/src/ylmrot.f900000644002504400250440000000407114626155520016556 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 < 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 == -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 end subroutine !EOC elk-9.6.8/src/PaxHeaders/wxcplot.f900000644000000000000000000000013214626155520014204 xustar0030 mtime=1717099344.750990512 30 atime=1717099342.852980285 30 ctime=1717099344.750990512 elk-9.6.8/src/wxcplot.f900000644002504400250440000000253514626155520016733 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 (all(xcgrad /= [3,4,5])) then write(*,*) write(*,'("Error(wxcplot): meta-GGA 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 meta-GGA 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 meta-GGA 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 meta-GGA exchange-correlation potential written to & &WXC3D.OUT")') end select end subroutine elk-9.6.8/src/PaxHeaders/massnucl.f900000644000000000000000000000013214626155520014331 xustar0030 mtime=1717099344.752990523 30 atime=1717099342.855980302 30 ctime=1717099344.752990523 elk-9.6.8/src/massnucl.f900000644002504400250440000000373514626155520017063 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: elemental 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 <= 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 end function !EOC elk-9.6.8/src/PaxHeaders/gendmatk.f900000644000000000000000000000013214626155520014276 xustar0030 mtime=1717099344.754990533 30 atime=1717099342.858980318 30 ctime=1717099344.754990533 elk-9.6.8/src/gendmatk.f900000644002504400250440000000440014626155520017016 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,nst,idx,ngp,apwalm,evecfv, & evecsv,ld,dmat) use modmain implicit none ! arguments logical, intent(in) :: tspndg,tlmdg integer, intent(in) :: lmin,lmax,ias integer, intent(in) :: nst,idx(*),ngp(nspnfv) complex(8), intent(in) :: apwalm(ngkmax,apwordmax,lmmaxapw,natmtot,nspnfv) complex(8), intent(in) :: evecfv(nmatmax,nstfv,nspnfv),evecsv(nstsv,nstsv) integer, intent(in) :: ld complex(8), intent(out) :: dmat(ld,nspinor,ld,nspinor,nst) ! local variables integer ispn,jspn,ist,is integer nrc,nrci,irco integer l,lma,lmb,lm1,lm2 integer npci,ni,no,i1,i2 complex(8) zsm ! allocatable arrays complex(8), allocatable :: wfmt(:,:,:) if (lmin < 0) then write(*,*) write(*,'("Error(gendmatk): lmin < 0 : ",I8)') lmin write(*,*) stop end if if (lmax > lmaxo) then write(*,*) write(*,'("Error(gendmatk): lmax > lmaxo : ",2I8)') lmax,lmaxo write(*,*) stop end if is=idxis(ias) nrc=nrcmt(is) nrci=nrcmti(is) irco=nrci+1 npci=npcmti(is) ni=npci-1 no=npcmt(is)-npci-1 ! generate the second-variational wavefunctions allocate(wfmt(npcmtmax,nspinor,nst)) call wfmtsv(.true.,lradstp,is,ias,nst,idx,ngp,apwalm,evecfv,evecsv,npcmtmax, & wfmt) ! zero the density matrix dmat(:,:,:,:,:)=0.d0 ! loop over second-variational states do ist=1,nst do ispn=1,nspinor do jspn=1,nspinor if (tspndg.and.(ispn /= jspn)) cycle do l=lmin,lmax lma=l**2+1; lmb=lma+2*l do lm1=lma,lmb do lm2=lma,lmb if (tlmdg.and.(lm1 /= lm2)) cycle if (l <= lmaxi) then zsm=sum(wfmt(lm1:lm1+ni:lmmaxi,ispn,ist) & *conjg(wfmt(lm2:lm2+ni:lmmaxi,jspn,ist))*wrcmt(1:nrci,is)) else zsm=0.d0 end if i1=npci+lm1; i2=npci+lm2 zsm=zsm+sum(wfmt(i1:i1+no:lmmaxo,ispn,ist) & *conjg(wfmt(i2:i2+no:lmmaxo,jspn,ist))*wrcmt(irco:nrc,is)) dmat(lm1,ispn,lm2,jspn,ist)=zsm end do end do end do end do end do ! end loop over second-variational states end do deallocate(wfmt) end subroutine elk-9.6.8/src/PaxHeaders/rfplot.f900000644000000000000000000000013214626155520014012 xustar0030 mtime=1717099344.756990544 30 atime=1717099342.861980334 30 ctime=1717099344.756990544 elk-9.6.8/src/rfplot.f900000644002504400250440000000756214626155520016546 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,sm,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 < rmt2) then r=sqrt(t1) call genrlmv(lmaxo,v5,rlm) do ir=1,nr if (rsp(ir,is) >= r) then if (ir <= 3) then ir0=1 else if (ir > nr-2) then ir0=nr-3 else ir0=ir-2 end if r=max(r,rsp(1,is)) if (ir0 <= nri) then lmax=lmaxi else lmax=lmaxo end if sm=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) sm=sm+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 sm=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) sm=sm+dble(zfft(ifg)*cmplx(cos(t1),sin(t1),8)) end do 10 continue fp(ip)=sm end subroutine pure 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 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 ! evaluate the polynomial poly4=y0+t0*t1*(c1+t1*(c2+c3*t1)) end function end subroutine elk-9.6.8/src/PaxHeaders/straingkq.f900000644000000000000000000000013214626155520014507 xustar0030 mtime=1717099344.758990555 30 atime=1717099342.863980345 30 ctime=1717099344.758990555 elk-9.6.8/src/straingkq.f900000644002504400250440000000441214626155520017232 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 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 < 1).or.(istrain > nstrain)) return ! compute the strained lattice vectors avec(:,:)=avec0(:,:)+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) call r3mv(ainv,afieldc,afieldl) call symmetry ! 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 gencfrc 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) < 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) < 0) then do iq=1,nqptnr vc(:)=vqc(:,iq) call r3mv(tb,vc,vqc(:,iq)) end do call gengclq end if end subroutine elk-9.6.8/src/PaxHeaders/eveqnit.f900000644000000000000000000000013214626155520014157 xustar0030 mtime=1717099344.760990566 30 atime=1717099342.866980361 30 ctime=1717099344.760990566 elk-9.6.8/src/eveqnit.f900000644002504400250440000001265014626155520016705 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,igpig(ngkmax) real(8), intent(in) :: vpl(3),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 ns,ist,it,i integer is,ias,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 real(8), external :: ddot ns=2*nstfv if (iscl >= 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,is) & !$OMP NUM_THREADS(nthd) !$OMP SECTION ! Hamiltonian do i=1,nmatp h(1:i,i)=0.d0 end do do ias=1,natmtot is=idxis(ias) call hmlaa(tefvr,is,ias,ngp,apwalm(:,:,:,ias),nmatp,h) call hmlalo(is,ias,ngp,apwalm(:,:,:,ias),nmatp,h) call hmllolo(is,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 is=idxis(ias) call olpaa(tefvr,is,ngp,apwalm(:,:,:,ias),nmatp,o) call olpalo(is,ias,ngp,apwalm(:,:,:,ias),nmatp,o) call olplolo(is,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)) call holdthd(nstfv,nthd) ! iteration loop !$OMP PARALLEL DEFAULT(SHARED) & !$OMP PRIVATE(it,ist,t1) & !$OMP NUM_THREADS(nthd) do it=1,maxitefv !$OMP SINGLE rmax=0.d0 !$OMP END SINGLE !$OMP DO 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=ddot(2*nmatp,evecfv(:,ist),1,ov(:,ist),1) if (t1 > 0.d0) then t1=1.d0/sqrt(t1) call zdscal(nmatp,t1,evecfv(:,ist),1) call zdscal(nmatp,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=ddot(2*nmatp,evecfv(:,ist),1,hv(:,ist),1) if ((iscl <= 1).and.(it == 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) t1=-evalfv(ist) u(:,ist)=u(:,ist)+t1*ov(:,ist) ! 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=ddot(2*nmatp,u(:,ist),1,ou(:,ist),1) !$OMP ATOMIC rmax=max(rmax,t1) ! normalise the residual if (t1 > 0.d0) then t1=1.d0/sqrt(t1) call zdscal(nmatp,t1,u(:,ist),1) call zdscal(nmatp,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 DO ! compute the Hamiltonian and overlap matrices in the subspace formed by the ! eigenvectors and their residuals !$OMP DO 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 DO NOWAIT !$OMP DO 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 DO ! solve the generalised eigenvalue problem in the subspace (one thread only) !$OMP SINGLE call zhegv(1,'V','U',ns,hs,ns,os,ns,w,work,lwork,rwork,info) !$OMP END SINGLE if (info /= 0) exit ! construct the new eigenvectors !$OMP DO 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 DO !$OMP DO do ist=1,nstfv call zcopy(nmatp,ov(:,ist),1,evecfv(:,ist),1) end do !$OMP END DO ! check for convergence !$OMP SINGLE rmax=sqrt(abs(rmax)/dble(nmatp)) !$OMP END SINGLE if ((it >= minitefv).and.(rmax < epsefvit)) exit ! end iteration loop end do !$OMP END PARALLEL call freethd(nthd) deallocate(w,rwork,h,o,hv,ov) deallocate(u,hu,ou,hs,os,work) call timesec(ts1) !$OMP ATOMIC timefv=timefv+ts1-ts0 end subroutine elk-9.6.8/src/PaxHeaders/oepmain.f900000644000000000000000000000013214626155520014134 xustar0030 mtime=1717099344.762990577 30 atime=1717099342.869980377 30 ctime=1717099344.762990577 elk-9.6.8/src/oepmain.f900000644002504400250440000001300514626155520016655 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) resp,t1 ! automatic arrays real(8) rfmt2(npcmtmax) ! allocatable arrays real(8), allocatable :: rfmt1(:,:),rfir(:) real(8), allocatable :: rvfmt(:,:,:),rvfir(:,:) complex(8), allocatable :: vclcv(:,:,:,:),vclvv(:,:,:) ! external functions real(8), external :: rfint,rfinpc if (iscl <= 0) return ! calculate Coulomb matrix elements allocate(vclcv(ncrmax,natmtot,nstsv,nkpt),vclvv(nstsv,nstsv,nkpt)) call oepvcl(vclcv,vclvv) ! allocate local arrays allocate(rfmt1(npmtmax,natmtot),rfir(ngtot)) if (spinpol) then allocate(rvfmt(npmtmax,natmtot,ndmag),rvfir(ngtot,ndmag)) end if ! zero initial exchange potential and magnetic field vxmt(:,:)=0.d0 vxir(:)=0.d0 if (spinpol) then bxmt(:,:,:)=0.d0 bxir(:,:)=0.d0 end if !------------------------------! ! start iteration loop ! !------------------------------! do it=1,maxitoep if (mp_mpi.and.(mod(it,10) == 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 DO DEFAULT(SHARED) & !$OMP NUM_THREADS(nthd) do ik=1,nkpt ! distribute among MPI processes if (mod(ik-1,np_mpi) /= lp_mpi) cycle call oepresk(ik,vclcv,vclvv) end do !$OMP END PARALLEL DO call freethd(nthd) ! add residuals from each process and redistribute if (np_mpi > 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 DO DEFAULT(SHARED) & !$OMP PRIVATE(is,nrc,nrci,idm) & !$OMP NUM_THREADS(nthd) 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 PARALLEL DO call freethd(nthd) ! symmetrise the residuals call symrf(nrcmt,nrcmti,npcmt,ngridg,ngtot,ngvec,igfft,npmtmax,rfmt1,dvxir) if (spinpol) then call symrvf(.true.,ncmag,nrcmt,nrcmti,npcmt,ngridg,ngtot,ngvec,igfft, & npmtmax,rvfmt,ngtot,dbxir) end if ! magnitude of residuals resoep=rfinpc(npmtmax,rfmt1,dvxir,rfmt1,dvxir) do idm=1,ndmag t1=rfinpc(npmtmax,rvfmt(:,:,idm),dbxir(:,idm),rvfmt(:,:,idm),dbxir(:,idm)) resoep=resoep+t1 end do resoep=sqrt(resoep)/omega ! update the step size if (it >= 2) then ! check residual against previous value if (resoep < resp) then tauoep=tauoep+tau0oep else tauoep=tau0oep end if end if ! store previous residual resp=resoep ! update exchange potential and magnetic field call holdthd(natmtot,nthd) !$OMP PARALLEL DO DEFAULT(SHARED) & !$OMP PRIVATE(rfmt2,is,nrc,nrci,npc,idm) & !$OMP NUM_THREADS(nthd) 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 PARALLEL DO 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 DO DEFAULT(SHARED) & !$OMP PRIVATE(is,nrc,nrci,idm) & !$OMP NUM_THREADS(nthd) 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 PARALLEL DO 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,ngridg,ngtot,ngvec,igfft,npmtmax,vxcmt,vxcir) if (spinpol) then call symrvf(.true.,ncmag,nrmt,nrmti,npmt,ngridg,ngtot,ngvec,igfft,npmtmax, & bxcmt,ngtot,bxcir) end if deallocate(rfmt1,rfir,vclcv,vclvv) if (spinpol) deallocate(rvfmt,rvfir) ! set the constant part of the exchange potential equal to zero call rfint0(0.d0,vxcmt,vxcir) end subroutine elk-9.6.8/src/PaxHeaders/rdirac.f900000644000000000000000000000013214626155520013750 xustar0030 mtime=1717099344.764990587 30 atime=1717099342.872980393 30 ctime=1717099344.764990587 elk-9.6.8/src/rdirac.f900000644002504400250440000000711414626155520016475 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 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), external :: splint if (k <= 0) then write(*,*) write(*,'("Error(rdirac): k <= 0 : ",I8)') k write(*,*) stop end if if (k > n) then write(*,*) write(*,'("Error(rdirac): incompatible n and k : ",2I8)') n,k write(*,*) stop end if if ((k == n).and.(l /= k-1)) then write(*,*) write(*,'("Error(rdirac): incompatible n, k and l : ",3I8)') n,k,l write(*,*) stop end if if (k == l) then kpa=k else if (k == l+1) then kpa=-k else write(*,*) write(*,'("Error(rdirac): incompatible l and k : ",2I8)') l,k write(*,*) stop end if if (nr < 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 > 0) then eval=eval-de else eval=eval+de end if if (it > 1) then if ((nnd /= 0).or.(nndp /= 0)) then if (nnd*nndp <= 0) then de=de*0.5d0 else de=de*1.1d0 end if end if end if nndp=nnd if (de < eps*(abs(eval)+1.d0)) goto 10 end do write(*,*) write(*,'("Warning(rdirac): maximum iterations exceeded")') 10 continue ! find effective infinity and set wavefunction to zero after that point ! major component do ir=nr,2,-1 if ((g0(ir-1)*g0(ir) < 0.d0).or.(g1(ir-1)*g1(ir) < 0.d0)) then g0(ir:nr)=0.d0 exit end if end do ! minor component do ir=nr,2,-1 if ((f0(ir-1)*f0(ir) < 0.d0).or.(f1(ir-1)*f1(ir) < 0.d0)) then f0(ir:nr)=0.d0 exit end if end do ! 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 <= 0.d0) then write(*,*) write(*,'("Error(rdirac): zero wavefunction")') write(*,*) stop end if t1=1.d0/t1 g0(:)=t1*g0(:) f0(:)=t1*f0(:) end subroutine !EOC elk-9.6.8/src/PaxHeaders/bandstr.f900000644000000000000000000000013214626155520014141 xustar0030 mtime=1717099344.766990598 30 atime=1717099342.875980409 30 ctime=1717099344.766990598 elk-9.6.8/src/bandstr.f900000644002504400250440000001560614626155520016673 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: bandstr ! !INTERFACE: subroutine bandstr ! !USES: use modmain use modomp ! !DESCRIPTION: ! Produces a band structure along the path in reciprocal space which connects ! the vertices in the array {\tt vvlp1d}. The band structure is obtained from ! the second-variational eigenvalues and is written to the file {\tt BAND.OUT} ! with the Fermi energy set to zero. If required, band structures are plotted ! to files {\tt BAND\_Sss\_Aaaaa.OUT} for atom {\tt aaaa} of species {\tt ss}, ! which include the band characters for each $l$ component of that atom in ! columns 4 onwards. Column 3 contains the sum over $l$ of the characters. ! Vertex location lines are written to {\tt BANDLINES.OUT}. ! ! !REVISION HISTORY: ! Created June 2003 (JKD) !EOP !BOC implicit none ! local variables integer ik,ist,ispn,is,ia,ias integer lmax,lmmax,l,m,lm,iv,nthd real(8) emin,emax,sm,t1 character(256) fname ! allocatable arrays real(8), allocatable :: evalfv(:,:),e(:,:) ! low precision for band character array saves memory real(4), allocatable :: bc(:,:,:,:) complex(8), allocatable :: dmat(:,:,:,:,:),apwalm(:,:,:,:,:) complex(8), allocatable :: evecfv(:,:,:),evecsv(:,:) ! initialise universal variables call init0 call init1 ! allocate array for storing the eigenvalues allocate(e(nstsv,nkpt)) ! maximum angular momentum for band character lmax=min(3,lmaxo) lmmax=(lmax+1)**2 if (task == 21) then allocate(bc(0:lmax,natmtot,nstsv,nkpt)) else if (task == 22) then allocate(bc(lmmax,natmtot,nstsv,nkpt)) else if (task == 23) then allocate(bc(nspinor,natmtot,nstsv,nkpt)) end if ! read density and potentials from file call readstate ! Fourier transform Kohn-Sham potential to G-space call genvsig ! 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 emin=1.d5 emax=-1.d5 ! begin parallel loop over k-points call holdthd(nkpt,nthd) !$OMP PARALLEL DEFAULT(SHARED) & !$OMP PRIVATE(evalfv,evecfv,evecsv) & !$OMP PRIVATE(dmat,apwalm,ist,ispn) & !$OMP PRIVATE(ias,l,m,lm,sm) & !$OMP NUM_THREADS(nthd) allocate(evalfv(nstfv,nspnfv)) allocate(evecfv(nmatmax,nstfv,nspnfv),evecsv(nstsv,nstsv)) if (task >= 21) then allocate(dmat(lmmax,nspinor,lmmax,nspinor,nstsv)) allocate(apwalm(ngkmax,apwordmax,lmmaxapw,natmtot,nspnfv)) end if !$OMP DO do ik=1,nkpt !$OMP CRITICAL(bandstr_1) write(*,'("Info(bandstr): ",I6," of ",I6," k-points")') ik,nkpt !$OMP END CRITICAL(bandstr_1) ! solve the first- and second-variational eigenvalue equations call eveqn(ik,evalfv,evecfv,evecsv) do ist=1,nstsv ! subtract the Fermi energy e(ist,ik)=evalsv(ist,ik)-efermi !$OMP CRITICAL(bandstr_2) emin=min(emin,e(ist,ik)) emax=max(emax,e(ist,ik)) !$OMP END CRITICAL(bandstr_2) end do ! compute the band characters if required if (task >= 21) then ! 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 ! average band character over spin and m for all atoms do ias=1,natmtot ! generate the diagonal of the density matrix call gendmatk(.true.,.true.,0,lmax,ias,nstsv,[0],ngk(:,ik),apwalm,evecfv,& evecsv,lmmax,dmat) do ist=1,nstsv if (task == 21) then ! l character of band lm=0 do l=0,lmax sm=0.d0 do m=-l,l lm=lm+1 do ispn=1,nspinor sm=sm+dble(dmat(lm,ispn,lm,ispn,ist)) end do end do bc(l,ias,ist,ik)=real(sm) end do else if (task == 22) then ! (l,m) character of band lm=0 do l=0,lmax do m=-l,l lm=lm+1 sm=0.d0 do ispn=1,nspinor sm=sm+dble(dmat(lm,ispn,lm,ispn,ist)) end do bc(lm,ias,ist,ik)=real(sm) end do end do else ! spin character of band do ispn=1,nspinor sm=0.d0 lm=0 do l=0,lmax do m=-l,l lm=lm+1 sm=sm+dble(dmat(lm,ispn,lm,ispn,ist)) end do end do bc(ispn,ias,ist,ik)=real(sm) end do end if end do end do end if ! end loop over k-points end do !$OMP END DO deallocate(evalfv,evecfv,evecsv) if (task >= 21) deallocate(dmat,apwalm) !$OMP END PARALLEL call freethd(nthd) t1=(emax-emin)*0.5d0 emin=emin-t1 emax=emax+t1 ! output the band structure if (task == 20) then open(50,file='BAND.OUT',form='FORMATTED',action='WRITE') do ist=1,nstsv do ik=1,nkpt write(50,'(2G18.10)') dpp1d(ik),e(ist,ik) end do write(50,*) end do close(50) write(*,*) write(*,'("Info(bandstr):")') write(*,'(" band structure plot written to BAND.OUT")') else do is=1,nspecies do ia=1,natoms(is) ias=idxas(ia,is) write(fname,'("BAND_S",I2.2,"_A",I4.4,".OUT")') is,ia open(50,file=trim(fname),form='FORMATTED',action='WRITE') do ist=1,nstsv do ik=1,nkpt if (task == 21) then ! sum band character over l to find total atomic character sm=0.d0 do l=0,lmax sm=sm+bc(l,ias,ist,ik) end do write(50,'(2G18.10,5F12.6)') dpp1d(ik),e(ist,ik),sm, & (bc(l,ias,ist,ik),l=0,lmax) else if (task == 22) then write(50,'(2G18.10,16F12.6)') dpp1d(ik),e(ist,ik), & (bc(lm,ias,ist,ik),lm=1,lmmax) else write(50,'(2G18.10,2F12.6)') dpp1d(ik),e(ist,ik), & (bc(ispn,ias,ist,ik),ispn=1,nspinor) end if end do write(50,*) end do close(50) end do end do write(*,*) write(*,'("Info(bandstr):")') write(*,'(" Band structure plot written to BAND_Sss_Aaaaa.OUT")') write(*,'(" for all species and atoms")') write(*,*) write(*,'(" Columns in the file are :")') if (task == 21) then write(*,'(" distance, eigenvalue, total atomic character, l character & &(l = 0...",I1,")")') lmax else if (task == 22) then write(*,'(" distance, eigenvalue, (l,m) character & &(l = 0...",I1,", m = -l...l)")') lmax else write(*,'(" distance, eigenvalue, spin-up and spin-down characters")') end if end if write(*,*) write(*,'(" Fermi energy is at zero in plot")') ! output the vertex location lines open(50,file='BANDLINES.OUT',form='FORMATTED',action='WRITE') do iv=1,nvp1d write(50,'(2G18.10)') dvp1d(iv),emin write(50,'(2G18.10)') dvp1d(iv),emax write(50,*) end do close(50) write(*,*) write(*,'(" Vertex location lines written to BANDLINES.OUT")') deallocate(e) if (task >= 21) deallocate(bc) end subroutine !EOC elk-9.6.8/src/PaxHeaders/sfacinit.f900000644000000000000000000000013114626155520014303 xustar0030 mtime=1717099344.768990609 29 atime=1717099342.87798042 30 ctime=1717099344.768990609 elk-9.6.8/src/sfacinit.f900000644002504400250440000000351314626155520017030 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) <= -1.d6).and.(wsfac(2) >= 1.d6)) goto 10 ! make a copy of the core state occupation numbers allocate(occcr0(nstspmax,natmtot)) occcr0(:,:)=occcr(:,:) ! zero the core state occupation numbers 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) < wsfac(1)).or.(evalcr(ist,ias) > 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 occupation numbers occcr(:,:)=occcr0(:,:) deallocate(occcr0) ! 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 occupation numbers from file call getevalsv(filext,ik,vkl(:,ik),evalsv(:,ik)) call getoccsv(filext,ik,vkl(:,ik),occsv(:,ik)) ! zero occupation numbers for eigenvalues not in energy window do ist=1,nstsv if ((evalsv(ist,ik) < wsfac(1)).or.(evalsv(ist,ik) > 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 end subroutine elk-9.6.8/src/PaxHeaders/findscq.f900000644000000000000000000000013014626155520014131 xustar0029 mtime=1717099344.77099062 30 atime=1717099342.880980436 29 ctime=1717099344.77099062 elk-9.6.8/src/findscq.f900000644002504400250440000000677314626155520016672 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,nsc,vsc) use modmain use modphonon implicit none ! arguments integer, intent(in) :: iq 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)) < 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 < dmin).and.(t1 > 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)) < 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 /= 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 < 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)) < 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 /= 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 < 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 == 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 == 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 < 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-9.6.8/src/PaxHeaders/plot1d.f900000644000000000000000000000013014626155520013705 xustar0029 mtime=1717099344.77299063 30 atime=1717099342.883980453 29 ctime=1717099344.77299063 elk-9.6.8/src/plot1d.f900000644002504400250440000000354014626155520016433 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 < 1).or.(nf > 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=ip01d,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) fmin=fmin-t1 fmax=fmax+t1 do iv=1,nvp1d write(fnum2,'(2G18.10)') dvp1d(iv),fmin write(fnum2,'(2G18.10)') dvp1d(iv),fmax write(fnum2,*) end do deallocate(fp) end subroutine !EOC elk-9.6.8/src/PaxHeaders/plot2d.f900000644000000000000000000000013214626155520013710 xustar0030 mtime=1717099344.774990641 30 atime=1717099342.886980469 30 ctime=1717099344.774990641 elk-9.6.8/src/plot2d.f900000644002504400250440000000367314626155520016443 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 < 1).or.(nf > 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 == 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) end subroutine !EOC elk-9.6.8/src/PaxHeaders/plot3d.f900000644000000000000000000000013114626155520013710 xustar0030 mtime=1717099344.776990652 29 atime=1717099342.88898048 30 ctime=1717099344.776990652 elk-9.6.8/src/plot3d.f900000644002504400250440000000332714626155520016440 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 < 1).or.(nf > 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) end subroutine !EOC elk-9.6.8/src/PaxHeaders/init0.f900000644000000000000000000000013214626155520013527 xustar0030 mtime=1717099344.778990663 30 atime=1717099342.891980496 30 ctime=1717099344.778990663 elk-9.6.8/src/init0.f900000644002504400250440000005336014626155520016260 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 modgw 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 logical hybrid_ integer is,ia,ias,idu integer ist,nr,l,n,i integer xcspin_ real(8) hybridc_,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 > 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) ! write to VARIABLES.OUT if (wrtvars) then call writevars('lmaxapw',iv=lmaxapw) call writevars('lmaxi',iv=lmaxi) call writevars('lmaxo',iv=lmaxo) end if !------------------------------------! ! 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 if (wrtvars) then 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) end if !------------------------! ! spin variables ! !------------------------! if (spinsprl) then spinpol=.true. spinorb=.false. if (any(task == [5,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) < 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 /= 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/ULR requires second-variational eigenvectors if (any(task == [5,10,170,300,460,461,462,463,600,620,700,701]).or.ksgwrho) then tevecsv=.true. end if ! get exchange-correlation functional data call getxcdata(xctype,xcdescr,xcspin,xcgrad,hybrid0,hybridc) if ((spinpol).and.(xcspin == 0)) then write(*,*) write(*,'("Error(init0): requested spin-polarised run with & &spin-unpolarised")') write(*,'(" exchange-correlation functional")') write(*,*) stop end if ! set flag for hybrid functional if (task == 5) then hybrid=hybrid0 else hybrid=.false. 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)) > epslat).or.(abs(bfieldc0(2)) > epslat)) ndmag=3 do is=1,nspecies do ia=1,natoms(is) if ((abs(bfcmt0(1,ia,is)) > epslat).or. & (abs(bfcmt0(2,ia,is)) > 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 == 3) then ncmag=.true. else ncmag=.false. end if ! check for meta-GGA with non-collinearity if (any(xcgrad == [3,4,5]).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 /= 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 /= 1)) then 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 < 1.d0-1.d-4) then if (all(task /= [0,1,2,3,5,28,200,201,350,351])) then bfieldc(:)=0.d0 bfcmt(:,:,:)=0.d0 end if end if if (tmwrite.or.(ftmtype /= 0).or.(task == 400)) then if (.not.spinorb) then write(*,*) write(*,'("Error(init0): tensor moments require spin-orbit coupling & &enabled")') write(*,'(" set spinorb=.true.")') write(*,*) stop end if end if ! generate the fixed tensor moment density matrices if required if (ftmtype /= 0) call gendmftm ! write to VARIABLES.OUT if (wrtvars) then call writevars('nspinor',iv=nspinor) call writevars('ndmag',iv=ndmag) call writevars('sxcscf',rv=sxcscf) call writevars('bfieldc0',nv=3,rva=bfieldc0) end if !----------------------------------! ! 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 if (wrtvars) then 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',n1=is,nv=3*natoms(is),rva=atposl(:,:,is)) end do do is=1,nspecies call writevars('atposc',n1=is,nv=3*natoms(is),rva=atposc(:,:,is)) end do end if !-------------------------------! ! vector fields E and A ! !-------------------------------! tefield=.false. if (any(abs(efieldc(:)) > epslat)) then ! no shift of the atomic positions tshift=.false. ! electric field vector in lattice coordinates call r3mv(ainv,efieldc,efieldl) ! potential at maximum distance vmaxefc=dmaxefc*norm2(efieldc(:)) ! allocate array for average electric field in each muffin-tin if (allocated(efcmt)) deallocate(efcmt) allocate(efcmt(3,natmtot)) ! set the E-field flag tefield=.true. end if tafield=.false. if (any(abs(afieldc(:)) > 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 == [460,461,462,463,480,481,485])) then ! read time-dependent A-field from file call readafieldt tafieldt=.true. ! zero the induced A-field and its time derivative afindt(:,:)=0.d0 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 < 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 if (wrtvars) then call writevars('spze',nv=nspecies,rva=spze) call writevars('chgcr',nv=nspecies,rva=chgcr) call writevars('chgexs',rv=chgexs) call writevars('chgval',rv=chgtot) end if !-------------------------! ! G-vector arrays ! !-------------------------! ! determine gkmax from rgkmax if (nspecies == 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 t1=sum(natoms(1:nspecies)*rmt(1:nspecies))/dble(natmtot) gkmax=rgkmax/t1 case(1:) ! use user-specified muffin-tin radius if (isgkmax <= 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 > 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 ! G-vector variables for coarse grid with |G| < 2 gkmax call gengvc ! generate the characteristic function on the coarse grid call gencfrc ! write to VARIABLES.OUT if (wrtvars) then 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) end if !-------------------------! ! 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 j(r) should be calculated if (any(task == [371,372,373]).or.tafield.or.tdjr1d.or.tdjr2d.or.tdjr3d) then tjr=.true. end if ! allocate current density arrays if (allocated(jrmt)) deallocate(jrmt) if (allocated(jrir)) deallocate(jrir) if (tjr) then allocate(jrmt(npmtmax,natmtot,3),jrir(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)) ! exchange-correlation and dipole magnetic fields if (allocated(bxcmt)) deallocate(bxcmt) if (allocated(bxcir)) deallocate(bxcir) if (allocated(bdmt)) deallocate(bdmt) if (allocated(bdir)) deallocate(bdir) if (spinpol) then allocate(bxcmt(npmtmax,natmtot,ndmag),bxcir(ngtot,ndmag)) if (tbdip) allocate(bdmt(npmtmax,natmtot,ndmag),bdir(ngtot,ndmag)) end if ! combined target array for Kohn-Sham potential and magnetic field if (allocated(vsbs)) deallocate(vsbs) n=npmtmax*natmtot+ngtot if (spinpol) n=n+(npcmtmax*natmtot+ngtot)*ndmag allocate(vsbs(n)) ! zero the array vsbs(:)=0.d0 ! associate pointer arrays with target vsmt(1:npmtmax,1:natmtot) => vsbs(1:) i=npmtmax*natmtot+1 vsir(1:ngtot) => vsbs(i:) if (spinpol) then i=i+ngtot bsmt(1:npcmtmax,1:natmtot,1:ndmag) => vsbs(i:) i=i+npcmtmax*natmtot*ndmag bsir(1:ngtot,1:ndmag) => vsbs(i:) end if ! effective Kohn-Sham potential in G-space if (allocated(vsig)) deallocate(vsig) allocate(vsig(ngvec)) ! kinetic energy density and meta-GGA exchange-correlation potential if (allocated(taumt)) deallocate(taumt) if (allocated(tauir)) deallocate(tauir) if (allocated(taucr)) deallocate(taucr) if (allocated(wxcmt)) deallocate(wxcmt) if (allocated(wxcir)) deallocate(wxcir) if (any(xcgrad == [3,4,5])) then allocate(taumt(npmtmax,natmtot,nspinor),tauir(ngtot,nspinor)) allocate(taucr(npmtmax,natmtot,nspinor)) allocate(wxcmt(npmtmax,natmtot),wxcir(ngtot)) ! approximate kinetic energy density functional used to compute the functional ! derivative δτ(r')/δρ(r) for meta-GGA call getxcdata(ktype,kdescr,xcspin_,kgrad,hybrid_,hybridc_) 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 should be used if (abs(sxcscf-1.d0) > 1.d-6) then tssxc=.true. else tssxc=.false. end if ! spin-spiral phase factors if (ssdph) then if (allocated(zqss)) deallocate(zqss) allocate(zqss(natmtot)) do ias=1,natmtot is=idxis(ias) ia=idxia(ias) t1=-0.5d0*dot_product(vqcss(:),atposc(:,ia,is)) zqss(ias)=cmplx(cos(t1),sin(t1),8) end do end if !-------------------------! ! force variables ! !-------------------------! if (tforce) then if (allocated(forcehf)) deallocate(forcehf) allocate(forcehf(3,natmtot)) if (allocated(forcetot)) deallocate(forcetot) allocate(forcetot(3,natmtot)) end if !-------------------------------------------------! ! DFT+U and fixed tensor moment variables ! !-------------------------------------------------! if ((dftu /= 0).or.(ftmtype /= 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 ! matrix elements in spherical coordinates for TDDFT+U if (any(task == [460,461,462,463,478])) then if (allocated(vmatmti)) deallocate(vmatmti) allocate(vmatmti(lmmaxi,lmmaxi,nspinor,nspinor,natmtot)) if (allocated(vmatmto)) deallocate(vmatmto) allocate(vmatmto(lmmaxo,lmmaxo,nspinor,nspinor,natmtot)) end if ! 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 /= 0) then if (any(task == [5,300,600,610,620,640])) then write(*,*) write(*,'("Error(init0): DFT+U does not work with task ",I8)') task write(*,*) stop end if ! DFT+U energy for each atom if (allocated(engyadu)) deallocate(engyadu) allocate(engyadu(natmmax,ndftu)) ! flag the muffin-tin potential matrices which are non-zero do idu=1,ndftu is=isldu(1,idu) if (is > nspecies) then write(*,*) write(*,'("Error(init0): invalid species number : ",I8)') is write(*,*) stop end if l=isldu(2,idu) do ia=1,natoms(is) ias=idxas(ia,is) tvmmt(l,ias)=.true. end do end do ! zero the initial values of screening length lamdu0(:)=0.d0 ! write to VARIABLES.OUT if (wrtvars) then call writevars('udufix',nv=ndftu,rva=udufix) end if end if if (ftmtype /= 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 ! find the maximum size of the spherical Bessel function array over all species call findnjcmax ! 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 end subroutine !EOC elk-9.6.8/src/PaxHeaders/readstate.f900000644000000000000000000000013214626155520014460 xustar0030 mtime=1717099344.781990679 30 atime=1717099342.895980517 30 ctime=1717099344.781990679 elk-9.6.8/src/readstate.f900000644002504400250440000002353014626155520017205 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 :: wcrmt_(:,:,:),wcrcmt_(:,:,:) 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(100,file='STATE'//trim(filext),form='UNFORMATTED',action='READ', & status='OLD',iostat=ios) if (ios /= 0) then write(*,*) write(*,'("Error(readstate): error opening ",A)') 'STATE'//trim(filext) write(*,*) stop end if read(100) version_ if (version_(1) < 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(:) /= 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(100) spinpol_ read(100) nspecies_ if (nspecies /= nspecies_) then write(*,*) write(*,'("Error(readstate): differing nspecies")') write(*,'(" current : ",I4)') nspecies write(*,'(" STATE.OUT : ",I4)') nspecies_ write(*,*) stop end if read(100) lmmaxo_ lmmax=min(lmmaxo,lmmaxo_) read(100) nrmtmax_ read(100) nrcmtmax_ allocate(rsp_(nrmtmax_,nspecies)) allocate(rcmt_(nrcmtmax_,nspecies)) do is=1,nspecies read(100) natoms_ if (natoms(is) /= 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(100) nrmt_(is) read(100) rsp_(1:nrmt_(is),is) read(100) nrcmt_(is) read(100) rcmt_(1:nrcmt_(is),is) end do read(100) ngridg_ read(100) ngvec_ read(100) ndmag_ if ((spinpol_).and.(ndmag_ /= 1).and.(ndmag_ /= 3)) then write(*,*) write(*,'("Error(readstate): invalid ndmag in STATE.OUT : ",I8)') ndmag_ write(*,*) stop end if read(100) nspinor_ read(100) fsmtype_ if ((version_(1) > 2).or.(version_(2) >= 3)) then read(100) ftmtype_ else ftmtype_=0 end if read(100) dftu_ read(100) lmmaxdm_ if ((version_(1) > 5).or.((version_(1) == 5).and.(version_(2) >= 1))) then read(100) xcgrad_ else xcgrad_=0 end if if ((version_(1) > 10).or.((version_(1) == 9).and.(version_(2) >= 6))) then read(100) efermi else call readfermi end if ngtot_=ngridg_(1)*ngridg_(2)*ngridg_(3) ! map from old interstitial grid to new allocate(mapir(ngtot)) 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)) jr=j3*ngridg_(2)*ngridg_(1)+j2*ngridg_(1)+j1+1 ir=i3*ngridg(2)*ngridg(1)+i2*ngridg(1)+i1+1 mapir(ir)=jr end do end do end do ! determine the spline coefficient weights on the old radial mesh allocate(wcrmt_(12,nrmtmax_,nspecies)) allocate(wcrcmt_(12,nrcmtmax_,nspecies)) do is=1,nspecies call wspline(nrmt_(is),rsp_(:,is),wcrmt_(:,:,is)) call wspline(nrcmt_(is),rcmt_(:,is),wcrcmt_(:,:,is)) 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(100) 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(100) rfmt_,rfir_ call rgfmt(vclmt) vclir(:)=rfir_(mapir(:)) ! read the exchange-correlation potential, regrid and pack read(100) rfmt_,rfir_ call rgfmt(vxcmt) vxcir(:)=rfir_(mapir(:)) ! read the Kohn-Sham effective potential, regrid and pack if ((version_(1) > 2).or.(version_(2) >= 2)) then read(100) rfmt_,rfir_ else allocate(vsig_(ngvec_)) read(100) 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 == 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(100) rvfmt_,rvfir_ call rgvfmt(magmt) call rgvir(magir) read(100) rvfmt_,rvfir_ call rgvfmt(bxcmt) call rgvir(bxcir) read(100) rvfcmt_,rvfir_ call rgvfcmt(bsmt) call rgvir(bsir) deallocate(rvfmt_,rvfir_,rvfcmt_) ! read fixed spin moment effective fields if (fsmtype_ /= 0) then allocate(bfsmcmt_(3,natmtot)) read(100) bfsmc read(100) bfsmcmt_ if (fsmtype /= 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 < 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 (any(xcgrad == [3,4,5])) then if (any(xcgrad_ == [3,4,5])) then read(100) rfmt_,rfir_ call rgfmt(wxcmt) wxcir(:)=rfir_(mapir(:)) else wxcmt(:,:)=0.d0 wxcir(:)=0.d0 end if end if deallocate(wcrmt_,wcrcmt_,rfmt_,rfir_,rfmt,fi,fo) ! read DFT+U potential matrix in each muffin-tin if (((dftu /= 0).and.(dftu_ /= 0)).or. & ((ftmtype /= 0).and.(ftmtype_ /= 0))) then allocate(vmatmt_(lmmaxdm_,nspinor_,lmmaxdm_,nspinor_,natmtot)) read(100) vmatmt_ lmmax=min(lmmaxdm,lmmaxdm_) vmatmt(:,:,:,:,:)=0.d0 if (nspinor == nspinor_) then vmatmt(1:lmmax,:,1:lmmax,:,:)=vmatmt_(1:lmmax,:,1:lmmax,:,:) else if ((nspinor == 1).and.(nspinor_ == 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 /= 0).and.(ftmtype_ /= 0)) then allocate(vmftm_(lmmaxdm_,nspinor_,lmmaxdm_,nspinor_,natmtot)) read(100) vmftm_ lmmax=min(lmmaxdm,lmmaxdm_) vmftm_(:,:,:,:,:)=0.d0 if (nspinor == nspinor_) then vmftm(1:lmmax,:,1:lmmax,:,:)=vmftm_(1:lmmax,:,1:lmmax,:,:) else if ((nspinor == 1).and.(nspinor_ == 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(100) 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),wcrmt_(:,:,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 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 == 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),wcrmt_(:,:,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 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 == 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),wcrcmt_(:,:,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 end subroutine subroutine rgvir(rvfir) implicit none ! arguments real(8), intent(out) :: rvfir(ngtot,ndmag) do idm=1,ndmag jdm=mapidm(idm) if (jdm /= 0) then rvfir(:,idm)=rvfir_(mapir(:),jdm) else rvfir(:,idm)=0.d0 end if end do end subroutine end subroutine !EOC elk-9.6.8/src/PaxHeaders/eveqnhf.f900000644000000000000000000000013014626155520014136 xustar0029 mtime=1717099344.78399069 30 atime=1717099342.898980533 29 ctime=1717099344.78399069 elk-9.6.8/src/eveqnhf.f900000644002504400250440000001461214626155520016666 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,nst integer ist1,ist2,ist3,jst3 integer iv(3),iq,ig,nthd real(8) vc(3),t1 complex(8) z1 ! automatic arrays integer idx(nstsv) real(8) vgqc(3,ngvc),gqc(ngvc),gclgq(ngvc) ! allocatable arrays real(8), allocatable :: jlgqrmt(:,:,:) complex(8), allocatable :: apwalm(:,:,:,:),evecfv(:,:),evecsv(:,:) complex(8), allocatable :: ylmgq(:,:),sfacgq(:,:) complex(8), allocatable :: h(:,:),v(:,:),kmat(:,:) complex(4), allocatable :: wfmt1(:,:,:,:),wfir1(:,:,:) complex(4), allocatable :: wfmt2(:,:,:,:),wfir2(:,:,:) complex(4), allocatable :: crhomt(:,:,:),crhoir(:,:) complex(4), allocatable :: cvclmt(:,:),cvclir(:) ! external functions complex(8), external :: zcfinp !$OMP CRITICAL(eveqnhf_) write(*,'("Info(eveqnhf): ",I6," of ",I6," k-points")') ikp,nkpt !$OMP END CRITICAL(eveqnhf_) ! allocate local arrays 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(h(nstsv,nstsv),v(nstsv,nstsv)) allocate(wfmt1(npcmtmax,natmtot,nspinor,nstsv),wfir1(ngtc,nspinor,nstsv)) allocate(wfmt2(npcmtmax,natmtot,nspinor,nstsv),wfir2(ngtc,nspinor,nstsv)) allocate(crhomt(npcmtmax,natmtot,nstsv),crhoir(ngtc,nstsv)) ! get the first-variational eigenvectors from file for input reduced k-point call getevecfv(filext,ikp,vkl(:,ikp),vgkl(:,:,1,ikp),evecfv) ! find the matching coefficients call match(ngk(1,ikp),vgkc(:,:,1,ikp),gkc(:,1,ikp),sfacgk(:,:,1,ikp),apwalm) ! calculate the wavefunctions for all states of the input k-point call genwfsv_sp(.false.,.true.,nstsv,[0],ngdgc,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 cftwfir(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 ! 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(:) if (any(mod(iv(:),ngridk(:)) /= 0)) cycle iv(:)=iv(:)/ngridk(:) iq=ivqiq(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(.true.,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 occupied states nst=0 do ist3=1,nstsv if (abs(occsv(ist3,jk)) < epsocc) cycle nst=nst+1 idx(nst)=ist3 end do ! calculate the wavefunctions for occupied states call genwfsv_sp(.false.,.false.,nst,idx,ngdgc,igfc,ngk(1,ik),igkig(:,1,ik), & apwalm,evecfv,evecsv,wfmt2,ngtc,wfir2) call holdthd(nstsv,nthd) !$OMP PARALLEL DEFAULT(SHARED) & !$OMP PRIVATE(cvclmt,cvclir) & !$OMP PRIVATE(ist1,ist2,ist3,jst3,t1,z1) & !$OMP NUM_THREADS(nthd) allocate(cvclmt(npcmtmax,natmtot),cvclir(ngtc)) do ist3=1,nst jst3=idx(ist3) ! calculate the complex overlap densities for all states (T. McQueen) !$OMP DO do ist1=1,nstsv call gencrho(.true.,.true.,ngtc,wfmt2(:,:,:,ist3),wfir2(:,:,ist3), & wfmt1(:,:,:,ist1),wfir1(:,:,ist1),crhomt(:,:,ist1),crhoir(:,ist1)) end do !$OMP END DO t1=wqptnr*occsv(jst3,jk)/occmax !$OMP DO do ist2=1,nstsv ! calculate the Coulomb potential call gencvclmt(nrcmt,nrcmti,nrcmtmax,rlcmt,wprcmt,npcmtmax, & crhomt(:,:,ist2),cvclmt) call cpotcoul(nrcmt,nrcmti,npcmt,nrcmtmax,rlcmt,ngdgc,igfc,ngvc,gqc, & gclgq,ngvc,jlgqrmt,ylmgq,sfacgq,crhoir(:,ist2),npcmtmax,cvclmt,cvclir) cvclir(:)=cvclir(:)*cfrc(:) do ist1=1,ist2 z1=zcfinp(crhomt(:,:,ist1),crhoir(:,ist1),cvclmt,cvclir) v(ist1,ist2)=v(ist1,ist2)-t1*z1 end do end do !$OMP END DO end do deallocate(cvclmt,cvclir) !$OMP END PARALLEL call freethd(nthd) ! end loop over non-reduced k-point set end do deallocate(jlgqrmt,ylmgq,sfacgq,apwalm,evecfv) deallocate(wfmt1,wfir1,wfmt2,wfir2,crhomt,crhoir) ! 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 eveqnzh(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) end subroutine elk-9.6.8/src/PaxHeaders/zbsht.f900000644000000000000000000000013114626155520013635 xustar0030 mtime=1717099344.785990701 29 atime=1717099342.90198055 30 ctime=1717099344.785990701 elk-9.6.8/src/zbsht.f900000644002504400250440000000261614626155520016365 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} and {\tt zfsht}. ! ! !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 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 i=lmmaxi*nri+1 call zgemm('N','N',lmmaxo,nr-nri,lmmaxo,zone,zbshto,lmmaxo,zfmt1(i),lmmaxo, & zzero,zfmt2(i),lmmaxo) end subroutine !EOC elk-9.6.8/src/PaxHeaders/i3mtv.f900000644000000000000000000000013214626155520013546 xustar0030 mtime=1717099344.787990711 30 atime=1717099342.904980566 30 ctime=1717099344.787990711 elk-9.6.8/src/i3mtv.f900000644002504400250440000000143714626155520016275 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: pure 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) end subroutine !EOC elk-9.6.8/src/PaxHeaders/spline.f900000644000000000000000000000013214626155520013776 xustar0030 mtime=1717099344.789990722 30 atime=1717099342.907980582 30 ctime=1717099344.789990722 elk-9.6.8/src/spline.f900000644002504400250440000000564614626155520016533 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 <= 0) then write(*,*) write(*,'("Error(spline): n <= 0 : ",I8)') n write(*,*) stop end if if (n == 1) then cf(:,1)=0.d0 return end if if (n == 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 == 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 == 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 end subroutine !EOC elk-9.6.8/src/PaxHeaders/gauntyry.f900000644000000000000000000000013214626155520014366 xustar0030 mtime=1717099344.791990733 30 atime=1717099342.910980598 30 ctime=1717099344.791990733 elk-9.6.8/src/gauntyry.f900000644002504400250440000000302114626155520017104 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), external :: gaunt if (m2 > 0) then if (mod(m2,2) == 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 < 0) then if (mod(m2,2) == 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 end function !EOC elk-9.6.8/src/PaxHeaders/findnjcmax.f900000644000000000000000000000013214626155520014625 xustar0030 mtime=1717099344.793990744 30 atime=1717099342.912980609 30 ctime=1717099344.793990744 elk-9.6.8/src/findnjcmax.f900000644002504400250440000000074414626155520017354 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 > njcmax) njcmax=n end do end subroutine elk-9.6.8/src/PaxHeaders/gndstate.f900000644000000000000000000000013214626155520014315 xustar0030 mtime=1717099344.795990754 30 atime=1717099342.915980625 30 ctime=1717099344.795990754 elk-9.6.8/src/gndstate.f900000644002504400250440000003045014626155520017041 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2002-2013 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: gndstate ! !INTERFACE: subroutine gndstate ! !USES: use modmain use moddftu use modulr use modgw use modmpi use modomp use modvars use modramdisk ! !DESCRIPTION: ! Computes the self-consistent Kohn-Sham ground-state. General information is ! written to the file {\tt INFO.OUT}. First- and second-variational ! eigenvalues, eigenvectors and occupation numbers are written to the ! unformatted files {\tt EVALFV.OUT}, {\tt EVALSV.OUT}, {\tt EVECFV.OUT}, ! {\tt EVECSV.OUT} and {\tt OCCSV.OUT}. The density, magnetisation, Kohn-Sham ! potential and magnetic field are written to {\tt STATE.OUT}. ! ! !REVISION HISTORY: ! Created October 2002 (JKD) ! Added MPI, August 2010 (JKD) !EOP !BOC implicit none ! local variables logical twrite integer ik,nmix,nwork real(8) dv,etp,de,timetot ! allocatable arrays real(8), allocatable :: work(:) ! initialise global variables call init0 call init1 ! initialise q-vector-dependent variables if required if ((xctype(1) < 0).or.ksgwrho) call init2 ! initialise GW variables if required if (ksgwrho) call init3 wrtdsk0=wrtdsk ! apply strain to the G, k, G+k and q-vectors if required call straingkq if (task == 0) trdstate=.false. if (task == 1) trdstate=.true. ! only the MPI master process should write files if (mp_mpi) then ! write the real and reciprocal lattice vectors to file call writelat ! write symmetry matrices to file call writesym ! output the k-point set to file call writekpts ! write lattice vectors and atomic positions to file open(50,file='GEOMETRY'//trim(filext),form='FORMATTED') call writegeom(50) close(50) ! write interatomic distances to file open(50,file='IADIST'//trim(filext),form='FORMATTED') call writeiad(50) close(50) ! open INFO.OUT file open(60,file='INFO'//trim(filext),form='FORMATTED') ! write out general information to INFO.OUT call writeinfo(60) write(60,*) ! 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 RMSDVS.OUT open(65,file='RMSDVS'//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') ! open RESIDUAL.OUT if (xctype(1) < 0) open(69,file='RESIDUAL'//trim(filext),form='FORMATTED') end if iscl=0 if (trdstate) then ! read the Kohn-Sham potential and fields from file call readstate if (mp_mpi) then write(60,'("Potential read in from STATE.OUT")') end if else ! initialise the density and magnetisation from atomic data call rhoinit call maginit ! compute the Kohn-Sham potential and magnetic field call potks(.true.) if (mp_mpi) then write(60,'("Kohn-Sham potential initialised from atomic data")') end if end if if (mp_mpi) flush(60) call genvsig ! size of mixing vector nmix=size(vsbs) ! determine the size of the mixer work array nwork=-1 call mixerifc(mixtype,nmix,vsbs,dv,nwork,vsbs) allocate(work(nwork)) ! initialise the mixer iscl=0 call mixerifc(mixtype,nmix,vsbs,dv,nwork,work) ! set the stop signal to .false. tstop=.false. ! 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,'("+--------------------+")') end if if (iscl >= maxscl) then if (mp_mpi) then write(60,*) write(60,'("Reached self-consistent loops maximum")') end if if (maxscl > 1) then write(*,*) write(*,'("Warning(gndstate): failed to reach self-consistency after ", & &I4," loops")') iscl end if tlast=.true. end if if (mp_mpi) flush(60) ! always write the eigenvectors to disk on the last loop if (tlast) wrtdsk=.true. ! generate the core wavefunctions and densities call gencore ! find the new linearisation energies call linengy ! write out the linearisation energies if (mp_mpi) call writelinen ! 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 if (mp_mpi) then if (autoswidth) then write(60,*) write(60,'("New smearing width : ",G18.10)') swidth end if ! write the occupation numbers to file do ik=1,nkpt call putoccsv(filext,ik,occsv(:,ik)) end do ! write eigenvalues to file call writeeval ! write the Fermi energy to file call writefermi end if ! synchronise MPI processes call mpi_barrier(mpicom,ierror) ! generate the density and magnetisation if (ksgwrho) then ! density calculated from the GW approximation call gwrhomag else ! density calculated directly from the Kohn-Sham states call rhomag end if ! DFT+U or fixed tensor moment calculation if ((dftu /= 0).or.(ftmtype /= 0)) then ! generate the muffin-tin density matrix used for computing the potential matrix call gendmatmt ! write the FTM tensor moments to file if (ftmtype /= 0) call writeftm ! generate the DFT+U or FTM muffin-tin potential matrices call genvmatmt end if if (dftu /= 0) then if (mp_mpi) then ! write the DFT+U matrices to file call writedftu ! calculate and write tensor moments to file if (tmwrite) call writetm3 end if end if ! compute the Kohn-Sham potential and magnetic field call potks(.true.) ! mix the old effective potential and field with the new call mixerifc(mixtype,nmix,vsbs,dv,nwork,work) ! calculate and add the fixed spin moment effective field (after mixing) call bfieldfsm call addbfsm ! Fourier transform Kohn-Sham potential to G-space call genvsig ! reduce the external magnetic fields if required if (reducebf < 1.d0) then bfieldc(:)=bfieldc(:)*reducebf bfcmt(:,:,:)=bfcmt(:,:,:)*reducebf end if ! 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 Kohn-Sham indirect band gap write(64,'(G22.12)') bandgap(1) flush(64) ! output effective fields for fixed spin moment calculations if (fsmtype /= 0) call writefsm(60) ! write the average electric field in each muffin-tin if (tefield) call writeefield(60) ! check for existence of the WRITE file call checkwrite(twrite) ! check self-consistent loop number modulo nwrite if (nwrite >= 1) then if (mod(iscl,nwrite) == 0) twrite=.true. end if ! write STATE.OUT file if required if (twrite) then call writestate write(60,*) write(60,'("Wrote STATE.OUT")') end if ! write OEP step size and residual if (xctype(1) < 0) then write(60,*) write(60,'("OEP iterative solver step size : ",G18.10)') tauoep write(60,'("Magnitude of OEP residual : ",G18.10)') resoep write(69,'(G18.10)') resoep flush(69) end if end if ! exit self-consistent loop if required if (tlast) goto 10 ! check for convergence if (iscl >= 2) then de=abs(engytot-etp) if (mp_mpi) then write(60,*) write(60,'("RMS change in Kohn-Sham potential (target) : ",G18.10," (",& &G18.10,")")') dv,epspot write(65,'(G18.10)') dv flush(65) write(60,'("Absolute change in total energy (target) : ",G18.10," (",& &G18.10,")")') de,epsengy write(66,'(G18.10)') de flush(66) if ((dv < epspot).and.(de < epsengy)) then write(60,*) write(60,'("Convergence targets achieved")') tlast=.true. end if end if end if ! average the current and previous total energies and store if (iscl > 1) then etp=0.75d0*engytot+0.25d0*etp else etp=engytot end if ! check for STOP file call checkstop if (tstop) tlast=.true. ! broadcast tlast from master process to all other processes call mpi_bcast(tlast,1,mpi_logical,0,mpicom,ierror) ! output the current total CPU time timetot=timeinit+timemat+timefv+timesv+timerho+timepot+timefor if (mp_mpi) then write(60,*) write(60,'("Time (CPU seconds) : ",F12.2)') timetot end if ! 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,'("+------------------------------+")') ! write density and potentials to file only if maxscl > 1 if (maxscl > 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 paramagnetic current density and total current if required if (tjr) then call genjpr call genjtot if (mp_mpi) then write(60,*) write(60,'("Total paramagnetic current per unit cell")') write(60,'(3G18.10)') jtot write(60,'(" magnitude : ",G18.10)') jtotm 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 the RESIDUAL.OUT file if (xctype(1) < 0) close(69) ! write to VARIABLES.OUT if required if (wrtvars) then call writevars('engytot',rv=engytot) call writevars('fermidos',rv=fermidos) call writevars('bandgap',nv=2,rva=bandgap) if (spinpol) then call writevars('momtot',nv=ndmag,rva=momtot) call writevars('momtotm',rv=momtotm) call writevars('mommt',nv=3*natmtot,rva=mommt) end if if (tforce) then call writevars('forcetot',nv=3*natmtot,rva=forcetot) end if end if end if deallocate(work) wrtdsk=wrtdsk0 ! synchronise MPI processes call mpi_barrier(mpicom,ierror) end subroutine !EOC elk-9.6.8/src/PaxHeaders/sstask.f900000644000000000000000000000013214626155520014014 xustar0030 mtime=1717099344.798990771 30 atime=1717099342.919980647 30 ctime=1717099344.798990771 elk-9.6.8/src/sstask.f900000644002504400250440000000165414626155520016544 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') goto 10 end if end do iqss=0 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 == 0) then fext='.OUT' else call ssfext(iqss,fext) end if end subroutine elk-9.6.8/src/PaxHeaders/fermisurf.f900000644000000000000000000000013214626155520014506 xustar0030 mtime=1717099344.800990781 30 atime=1717099342.921980657 30 ctime=1717099344.800990781 elk-9.6.8/src/fermisurf.f900000644002504400250440000001011114626155520017222 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,nst,ist integer ist0,ist1,jst0,jst1 integer i1,i2,i3,nf,f integer np,i,nthd real(8) e0,e1,prd,v(3) ! allocatable arrays real(8), allocatable :: evalfv(:,:),vpc(:,:) complex(8), allocatable :: evecfv(:,:,:),evecsv(:,:) ! initialise universal variables call init0 ! no k-point reduction for the collinear case reducek0=reducek if (ndmag == 1) reducek=0 call init1 ! read density and potentials from file call readstate ! Fourier transform Kohn-Sham potential to G-space call genvsig ! 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 do ik=1,nkpt call sort(nstsv,evalsv(:,ik)) end do end if ! generate the plotting point grid in Cartesian coordinates (this has the same ! arrangement as the k-point grid) np=np3d(1)*np3d(2)*np3d(3) allocate(vpc(3,np)) call plotpt3d(vpc) do i=1,np v(:)=vpc(:,i) call r3mv(bvec,v,vpc(:,i)) end do ! number of files to plot (2 for collinear magnetism, 1 otherwise) if (ndmag == 1) then nf=2 else nf=1 end if do f=1,nf if (nf == 2) then if (f == 1) then open(50,file='FERMISURF_UP.OUT',form='FORMATTED',action='WRITE') jst0=1; jst1=nstfv else open(50,file='FERMISURF_DN.OUT',form='FORMATTED',action='WRITE') jst0=nstfv+1; jst1=2*nstfv end if else open(50,file='FERMISURF.OUT',form='FORMATTED',action='WRITE') 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 < efermi).and.(e1 > efermi)) then ist0=min(ist0,ist); ist1=max(ist1,ist) end if end do nst=ist1-ist0+1 if (task == 100) then ! write product of eigenstates minus the Fermi energy write(50,'(3I6," : grid size")') np3d(:) i=0 do i3=0,ngridk(3)-1 do i2=0,ngridk(2)-1 do i1=0,ngridk(1)-1 i=i+1 ik=ivkik(i1,i2,i3) prd=product(evalsv(ist0:ist1,ik)-efermi) write(50,'(4G18.10)') vpc(:,i),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 i=0 do i3=0,ngridk(3)-1 do i2=0,ngridk(2)-1 do i1=0,ngridk(1)-1 i=i+1 ik=ivkik(i1,i2,i3) write(50,'(3G18.10,40F14.8)') vpc(:,i),evalsv(ist0:ist1,ik)-efermi end do end do end do end if close(50) end do write(*,*) write(*,'("Info(fermisurf):")') if (ndmag == 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 == 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 deallocate(vpc) ! restore original parameters reducek=reducek0 end subroutine elk-9.6.8/src/PaxHeaders/spiralsc.f900000644000000000000000000000013214626155520014324 xustar0030 mtime=1717099344.802990792 30 atime=1717099342.924980673 30 ctime=1717099344.802990792 elk-9.6.8/src/spiralsc.f900000644002504400250440000000456014626155520017053 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 use modmain use modmpi use moddelf implicit none ! local variables integer nq,iq,jq real(8) q ! store original parameters natoms0(:)=natoms(:) avec0(:,:)=avec(:,:) atposl0(:,:,:)=atposl(:,:,:) bfcmt00(:,:,:)=bfcmt0(:,:,:) mommtfix0(:,:,:)=mommtfix(:,:,:) autokpt0=autokpt ngridk0(:)=ngridk ! initialise universal variables call init0 ! initialise q-point dependent variables call init2 ! store original parameters atposc0(:,:,:)=atposc(:,:,:) 10 continue call sstask(80,filext) ! if nothing more to do then restore input parameters and return if (iqss == 0) then filext='.OUT' natoms(:)=natoms0(:) avec(:,:)=avec0(:,:) atposl(:,:,:)=atposl0(:,:,:) bfcmt0(:,:,:)=bfcmt00(:,:,:) mommtfix(:,:,:)=mommtfix0(:,:,:) autokpt=autokpt0 ngridk(:)=ngridk0(:) return end if ! spiral dry run: just generate empty SS files if (task == 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 == 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=ivqiq(ivq(1,iq),ivq(2,iq),ivq(3,iq)) if (jq == iqss) then write(80,'(3G18.10)') vql(:,iq) write(80,'(3G18.10)') vqc(:,iq) write(80,*) end if end do close(80) end if ! delete the eigenvector files call delfiles(evec=.true.) ! synchronise MPI processes call mpi_barrier(mpicom,ierror) goto 10 end subroutine elk-9.6.8/src/PaxHeaders/atom.f900000644000000000000000000000013114626155520013443 xustar0030 mtime=1717099344.804990803 29 atime=1717099342.92798069 30 ctime=1717099344.804990803 elk-9.6.8/src/atom.f900000644002504400250440000001372014626155520016171 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) 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 <= 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 == 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 t1=sum(occ(:)*(rwf(ir,1,:)**2+rwf(ir,2,:)**2)) fr1(ir)=t1 fr2(ir)=t1*ri(ir) rho(ir)=(1.d0/fourpi)*t1*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 == 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,nr,rho=rho,grho=grho,g2rho=g2rho,g3rho=g3rho,ex=ex,ec=ec,& vx=vx,vc=vc) else ! LDA functional call xcifc(xctype,nr,rho=rho,ex=ex,ec=ec,vx=vx,vc=vc) end if ! self-consistent potential vr(:)=vh(:)+vx(:)+vc(:) ! determine change in potential t1=sum((vr(:)-vrp(:))**2) dv=sqrt(t1)/dble(nr) if (iscl > 2) then ! reduce beta if change in potential is diverging if (dv > 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 > 2).and.(dv < 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 == 1) deallocate(grho,g2rho,g3rho) return contains pure subroutine splintwp(n,wp,f,g) implicit none ! arguments integer, intent(in) :: n real(8), intent(in) :: wp(*),f(n) real(8), intent(out) :: g(n) ! local variables integer i,j real(8) sm g(1)=0.d0 sm=wp(5)*f(1)+wp(6)*f(2)+wp(7)*f(3)+wp(8)*f(4) g(2)=sm do i=2,n-2 j=i*4+1 sm=sm+wp(j)*f(i-1)+wp(j+1)*f(i)+wp(j+2)*f(i+1)+wp(j+3)*f(i+2) g(i+1)=sm end do j=(n-1)*4+1 g(n)=sm+wp(j)*f(n-3)+wp(j+1)*f(n-2)+wp(j+2)*f(n-1)+wp(j+3)*f(n) end subroutine end subroutine !EOC elk-9.6.8/src/PaxHeaders/maginit.f900000644000000000000000000000013214626155520014134 xustar0030 mtime=1717099344.806990814 30 atime=1717099342.930980706 30 ctime=1717099344.806990814 elk-9.6.8/src/maginit.f900000644002504400250440000000211214626155520016652 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 > 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,1:ndmag)=0.d0 end if end do ! initialise interstitial magnetisation v(:)=bfieldc(:) t1=sqrt(v(1)**2+v(2)**2+v(3)**2) if (t1 > 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(1:ngtot,idm)=t1*rhoir(1:ngtot) end do else magir(1:ngtot,1:ndmag)=0.d0 end if end subroutine elk-9.6.8/src/PaxHeaders/exxengyk.f900000644000000000000000000000013214626155520014346 xustar0030 mtime=1717099344.808990824 30 atime=1717099342.932980717 30 ctime=1717099344.808990824 elk-9.6.8/src/exxengyk.f900000644002504400250440000001464314626155520017100 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,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(4), allocatable :: wfmt1(:,:,:,:),wfir1(:,:,:),wfcr(:,:) complex(4), allocatable :: wfmt2(:,:,:,:),wfir2(:,:,:) complex(4), allocatable :: crhomt(:,:),crhoir(:) complex(4), allocatable :: cvclmt(:,:),cvclir(:) ! external functions complex(8), external :: zcfinp,zcfmtinp ! get the eigenvectors from file for input reduced k-point allocate(evecfv(nmatmax,nstfv),evecsv(nstsv,nstsv)) call getevecfv(filext,ikp,vkl(:,ikp),vgkl(:,:,:,ikp),evecfv) call getevecsv(filext,ikp,vkl(:,ikp),evecsv) ! find the matching coefficients allocate(apwalm(ngkmax,apwordmax,lmmaxapw,natmtot)) 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) > efermi) cycle nst1=nst1+1 idx(nst1)=ist 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_sp(.false.,.false.,nst1,idx,ngdgc,igfc,ngk(1,ikp),igkig(:,1,ikp), & apwalm,evecfv,evecsv,wfmt1,ngtc,wfir1) ! allocate local arrays allocate(vgqc(3,ngvc),gqc(ngvc),gclgq(ngvc)) allocate(jlgqrmt(0:lnpsd,ngvc,nspecies)) allocate(ylmgq(lmmaxo,ngvc),sfacgq(ngvc,natmtot)) allocate(wfmt2(npcmtmax,natmtot,nspinor,nstsv)) allocate(wfir2(ngtc,nspinor,nstsv)) allocate(crhomt(npcmtmax,natmtot),crhoir(ngtc)) allocate(cvclmt(npcmtmax,natmtot),cvclir(ngtc)) ! 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(:) if (any(mod(iv(:),ngridk(:)) /= 0)) cycle iv(:)=iv(:)/ngridk(:) iq=ivqiq(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(.true.,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) > efermi) cycle nst2=nst2+1 idx(nst2)=jst end do ! calculate the wavefunctions for occupied states call genwfsv_sp(.false.,.false.,nst2,idx,ngdgc,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 gencrho(.true.,.true.,ngtc,wfmt2(:,:,:,jst),wfir2(:,:,jst), & wfmt1(:,:,:,ist),wfir1(:,:,ist),crhomt,crhoir) ! calculate the Coulomb potential call gencvclmt(nrcmt,nrcmti,nrcmtmax,rlcmt,wprcmt,npcmtmax,crhomt,cvclmt) call cpotcoul(nrcmt,nrcmti,npcmt,nrcmtmax,rlcmt,ngdgc,igfc,ngvc,gqc, & gclgq,ngvc,jlgqrmt,ylmgq,sfacgq,crhoir,npcmtmax,cvclmt,cvclir) cvclir(:)=cvclir(:)*cfrc(:) z1=zcfinp(crhomt,crhoir,cvclmt,cvclir) ex=ex-0.5d0*occmax*wkpt(ikp)*wqptnr*dble(z1) end do end do ! 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)) ! 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 crho2(npc,wfcr,wfcr(:,2),wfmt1(:,ias,1,ist), & wfmt1(:,ias,2,ist),crhomt(:,ias)) else call crho1(npc,wfcr,wfmt1(:,ias,1,ist),crhomt(:,ias)) end if call cfshtip(nrc,nrci,crhomt(:,ias)) ! calculate the Coulomb potential call cpotclmt(nrc,nrci,nrcmtmax,rlcmt(:,:,is),wprcmt(:,:,is), & crhomt(:,ias),cvclmt(:,ias)) z1=zcfmtinp(nrc,nrci,wrcmt(:,is),crhomt(:,ias),cvclmt(:,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) deallocate(crhomt,crhoir,cvclmt,cvclir) return contains pure subroutine crho1(n,wf1,wf2,crho) implicit none integer, intent(in) :: n complex(4), intent(in) :: wf1(n),wf2(n) complex(4), intent(out) :: crho(n) crho(:)=conjg(wf1(:))*wf2(:) end subroutine pure subroutine crho2(n,wf11,wf12,wf21,wf22,crho) implicit none integer, intent(in) :: n complex(4), intent(in) :: wf11(n),wf12(n),wf21(n),wf22(n) complex(4), intent(out) :: crho(n) crho(:)=conjg(wf11(:))*wf21(:)+conjg(wf12(:))*wf22(:) end subroutine end subroutine elk-9.6.8/src/PaxHeaders/moke.f900000644000000000000000000000013214626155520013437 xustar0030 mtime=1717099344.810990835 30 atime=1717099342.935980733 30 ctime=1717099344.810990835 elk-9.6.8/src/moke.f900000644002504400250440000000412014626155520016156 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 /= 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 /= 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) > 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) > 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) end subroutine elk-9.6.8/src/PaxHeaders/hmlrad.f900000644000000000000000000000013214626155520013753 xustar0030 mtime=1717099344.812990846 30 atime=1717099342.938980749 30 ctime=1717099344.812990846 elk-9.6.8/src/hmlrad.f900000644002504400250440000001301014626155520016470 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,i0,i1 integer l1,l2,l3,lm2 integer io,jo,ilo,jlo real(8) sm ! begin loops over atoms and species call holdthd(natmtot,nthd) !$OMP PARALLEL DO DEFAULT(SHARED) & !$OMP PRIVATE(is,nr,nri,iro) & !$OMP PRIVATE(l1,l2,l3,io,jo,sm) & !$OMP PRIVATE(lm2,i0,i1,ilo,jlo) & !$OMP NUM_THREADS(nthd) do ias=1,natmtot is=idxis(ias) nr=nrmt(is) nri=nrmti(is) iro=nri+1 !---------------------------! ! 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 == l3) then sm=sum(apwfr(1:nr,1,io,l1,ias)*apwfr(1:nr,2,jo,l3,ias) & *wrmt(1:nr,is)) haa(1,jo,l3,io,l1,ias)=sm/y00 else haa(1,jo,l3,io,l1,ias)=0.d0 end if if (l1 >= l3) then do l2=1,lmaxi do lm2=l2**2+1,(l2+1)**2 i1=lmmaxi*(nri-1)+lm2 sm=sum(apwfr(1:nri,1,io,l1,ias)*apwfr(1:nri,1,jo,l3,ias) & *wrmt(1:nri,is)*vsmt(lm2:i1:lmmaxi,ias)) i0=i1+lmmaxi i1=lmmaxo*(nr-iro)+i0 sm=sm+sum(apwfr(iro:nr,1,io,l1,ias)*apwfr(iro:nr,1,jo,l3,ias) & *wrmt(iro:nr,is)*vsmt(i0:i1:lmmaxo,ias)) haa(lm2,jo,l3,io,l1,ias)=sm haa(lm2,io,l1,jo,l3,ias)=sm end do end do do l2=lmaxi+1,lmaxo do lm2=l2**2+1,(l2+1)**2 i0=lmmaxi*nri+lm2 i1=lmmaxo*(nr-iro)+i0 sm=sum(apwfr(iro:nr,1,io,l1,ias)*apwfr(iro:nr,1,jo,l3,ias) & *wrmt(iro:nr,is)*vsmt(i0:i1:lmmaxo,ias)) haa(lm2,jo,l3,io,l1,ias)=sm haa(lm2,io,l1,jo,l3,ias)=sm 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 == l3) then sm=sum(lofr(1:nr,1,ilo,ias)*apwfr(1:nr,2,io,l3,ias)*wrmt(1:nr,is)) hloa(1,io,l3,ilo,ias)=sm/y00 else hloa(1,io,l3,ilo,ias)=0.d0 end if do l2=1,lmaxi do lm2=l2**2+1,(l2+1)**2 i1=lmmaxi*(nri-1)+lm2 sm=sum(lofr(1:nri,1,ilo,ias)*apwfr(1:nri,1,io,l3,ias) & *wrmt(1:nri,is)*vsmt(lm2:i1:lmmaxi,ias)) i0=i1+lmmaxi i1=lmmaxo*(nr-iro)+i0 sm=sm+sum(lofr(iro:nr,1,ilo,ias)*apwfr(iro:nr,1,io,l3,ias) & *wrmt(iro:nr,is)*vsmt(i0:i1:lmmaxo,ias)) hloa(lm2,io,l3,ilo,ias)=sm end do end do do l2=lmaxi+1,lmaxo do lm2=l2**2+1,(l2+1)**2 i0=lmmaxi*nri+lm2 i1=lmmaxo*(nr-iro)+i0 sm=sum(lofr(iro:nr,1,ilo,ias)*apwfr(iro:nr,1,io,l3,ias) & *wrmt(iro:nr,is)*vsmt(i0:i1:lmmaxo,ias)) hloa(lm2,io,l3,ilo,ias)=sm 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 == l3) then sm=sum(lofr(1:nr,1,ilo,ias)*lofr(1:nr,2,jlo,ias)*wrmt(1:nr,is)) hlolo(1,jlo,ilo,ias)=sm/y00 else hlolo(1,jlo,ilo,ias)=0.d0 end if do l2=1,lmaxi do lm2=l2**2+1,(l2+1)**2 i1=lmmaxi*(nri-1)+lm2 sm=sum(lofr(1:nri,1,ilo,ias)*lofr(1:nri,1,jlo,ias)*wrmt(1:nri,is) & *vsmt(lm2:i1:lmmaxi,ias)) i0=i1+lmmaxi i1=lmmaxo*(nr-iro)+i0 sm=sm+sum(lofr(iro:nr,1,ilo,ias)*lofr(iro:nr,1,jlo,ias) & *wrmt(iro:nr,is)*vsmt(i0:i1:lmmaxo,ias)) hlolo(lm2,jlo,ilo,ias)=sm end do end do do l2=lmaxi+1,lmaxo do lm2=l2**2+1,(l2+1)**2 i0=lmmaxi*nri+lm2 i1=lmmaxo*(nr-iro)+i0 sm=sum(lofr(iro:nr,1,ilo,ias)*lofr(iro:nr,1,jlo,ias)*wrmt(iro:nr,is) & *vsmt(i0:i1:lmmaxo,ias)) hlolo(lm2,jlo,ilo,ias)=sm end do end do end do end do ! end loops over atoms and species end do !$OMP END PARALLEL DO call freethd(nthd) end subroutine !EOC elk-9.6.8/src/PaxHeaders/dos.f900000644000000000000000000000013214626155520013271 xustar0030 mtime=1717099344.814990857 30 atime=1717099342.941980765 30 ctime=1717099344.814990857 elk-9.6.8/src/dos.f900000644002504400250440000002562514626155520016025 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 ! allocatable arrays ! low precision for band/spin character array saves memory real(4), allocatable :: bc(:,:,:,:,:),sc(:,:,:) real(8), allocatable :: w(:),e(:,:,:),f(:,:),g(:) real(8), allocatable :: dt(:,:),dp(:,:,:),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 <= epslat) then write(*,*) write(*,'("Error(dos): spin-quantisation axis (sqados) has zero length")') write(*,*) stop end if v1(:)=v1(:)/t1 if (v1(3) >= 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 == 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 for all states call gendmatk(.false.,.false.,0,lmaxdos,ias,nstsv,[0],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',action='WRITE') 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(lmaxdos+1,nthd) !$OMP PARALLEL DEFAULT(SHARED) & !$OMP PRIVATE(f,g,lm,ik,jk,ist) & !$OMP NUM_THREADS(nthd) allocate(f(nstsv,nkptnr),g(nwplot)) !$OMP DO do l=0,lmaxdos do lm=l**2+1,(l+1)**2 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 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',action='WRITE') 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',action='WRITE') 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=l*(l+1)+m+1 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',action='WRITE') 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) end subroutine !EOC elk-9.6.8/src/PaxHeaders/findprimcell.f900000644000000000000000000000013214626155520015154 xustar0030 mtime=1717099344.817990873 30 atime=1717099342.944980781 30 ctime=1717099344.817990873 elk-9.6.8/src/findprimcell.f900000644002504400250440000000746614626155520017713 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) == 1) return if (natoms(js) < 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 < 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 < epslat).and.(t2 < 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 == 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) < 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 > epslat) then if (dp(i) < 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) > epslat) then if (dp(i) < 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 < 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) end subroutine !EOC elk-9.6.8/src/PaxHeaders/plotpt2d.f900000644000000000000000000000013214626155520014254 xustar0030 mtime=1717099344.819990884 30 atime=1717099342.947980797 30 ctime=1717099344.819990884 elk-9.6.8/src/plotpt2d.f900000644002504400250440000000277314626155520017007 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 < epslat).or.(d2 < 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 < 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 end subroutine elk-9.6.8/src/PaxHeaders/sfacrho.f900000644000000000000000000000013214626155520014131 xustar0030 mtime=1717099344.821990894 30 atime=1717099342.951980819 30 ctime=1717099344.821990894 elk-9.6.8/src/sfacrho.f900000644002504400250440000000510314626155520016652 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)) <= epslat).and. & (abs(v(2)-iv(2)) <= epslat).and. & (abs(v(3)-iv(3)) <= 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) end subroutine !EOC elk-9.6.8/src/PaxHeaders/bdipole.f900000644000000000000000000000013214626155520014122 xustar0030 mtime=1717099344.823990905 30 atime=1717099342.954980835 30 ctime=1717099344.823990905 elk-9.6.8/src/bdipole.f900000644002504400250440000000522614626155520016651 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) rfmt(npcmtmax) ! allocatable arrays real(8), allocatable :: rvfmt(:,:,:),rvfir(:,:) 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 (tjr) call genjr ! 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) ! multiply by prefactor rvfmt(:,:,:)=cb*rvfmt(:,:,:) rvfir(:,:)=cb*rvfir(:,:) ! add the current density if required if (tjr) then t1=1.d0/solsc rvfmt(:,:,:)=rvfmt(:,:,:)+t1*jrmt(:,:,:) rvfir(:,:)=rvfir(:,:)+t1*jrir(:,:) 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,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 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),rfmt) ! convert to spherical coordinates call rbshtip(nrc,nrci,rfmt) bsmt(1:npc,ias,idm)=bsmt(1:npc,ias,idm)+cb*rfmt(1:npc) end do end do do idm=1,3 bsir(:,idm)=bsir(:,idm)+cb*bdir(:,idm)*cfunir(:) end do deallocate(rvfmt,rvfir) deallocate(zrhomt,zrhoir,zvclmt,zvclir) end subroutine elk-9.6.8/src/PaxHeaders/dielectric.f900000644000000000000000000000013214626155520014613 xustar0030 mtime=1717099344.826990921 30 atime=1717099342.956980846 30 ctime=1717099344.826990921 elk-9.6.8/src/dielectric.f900000644002504400250440000001223514626155520017340 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 modmpi use modomp use modtest ! !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,ioc,i,j,nthd real(8) w1,w2,wplas,x real(8) ei,ej,eji,t1,t2 complex(8) eta,z1 character(256) fname ! allocatable arrays real(8), allocatable :: w(:) complex(8), allocatable :: pmat(:,:,:),sigma(:) ! external functions real(8), external :: sdelta ! initialise universal variables call init0 call init1 ! read Fermi energy from file call readfermi ! get the eigenvalues and occupation numbers from file call readevalsv call readoccsv ! allocate local arrays allocate(w(nwplot),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 ioc=1,noptcomp i=optcomp(1,ioc) j=optcomp(2,ioc) 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(ei,ej,eji,z1,t1,x) & !$OMP REDUCTION(+:wplas,sigma) & !$OMP NUM_THREADS(nthd) allocate(pmat(nstsv,nstsv,3)) !$OMP DO do ik=1,nkptnr ! distribute among MPI processes if (mod(ik-1,np_mpi) /= lp_mpi) cycle !$OMP CRITICAL(dielectric_) write(*,'("Info(dielectric): ",I6," of ",I6," k-points")') ik,nkptnr !$OMP END CRITICAL(dielectric_) ! 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 ei=evalsv(ist,jk) ! conduction states do jst=1,nstsv ej=evalsv(jst,jk) eji=ej-ei z1=pmat(ist,jst,i)*conjg(pmat(ist,jst,j)) if (abs(eji) > 1.d-8) then t1=occsv(ist,jk)*(1.d0-occsv(jst,jk)/occmax)/eji sigma(:)=sigma(:)+t1*(z1/(w(:)-eji+eta)+conjg(z1)/(w(:)+eji+eta)) end if ! add to the plasma frequency if (intraband) then if (i == j) then if (ist == jst) then x=(ei-efermi)/swidth t1=wkptnr*dble(z1)*sdelta(stype,x)/swidth wplas=wplas+t1 end if end if end if end do end do end do !$OMP END DO deallocate(pmat) !$OMP END PARALLEL call freethd(nthd) ! multiply response function by prefactor z1=zi*wkptnr/omega sigma(:)=z1*sigma(:) ! add response function and plasma frequency from each process and redistribute if (np_mpi > 1) then call mpi_allreduce(mpi_in_place,sigma,nwplot,mpi_double_complex,mpi_sum, & mpicom,ierror) call mpi_allreduce(mpi_in_place,wplas,1,mpi_double_precision,mpi_sum, & mpicom,ierror) end if ! intraband contribution if (intraband) then if (i == 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 == 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) ! end loop over tensor components end do if (mp_mpi) then 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 ioc=1,noptcomp write(*,'(" i = ",I1,", j = ",I1)') optcomp(1:2,ioc) end do end if ! write sigma to test file if required call writetest(121,'optical conductivity',nv=nwplot,tol=1.d-2,zva=sigma) deallocate(w,sigma) end subroutine !EOC elk-9.6.8/src/PaxHeaders/elfplot.f900000644000000000000000000000013214626155520014151 xustar0030 mtime=1717099344.828990932 30 atime=1717099342.959980862 30 ctime=1717099344.828990932 elk-9.6.8/src/elfplot.f900000644002504400250440000001300314626155520016670 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 ! allocatable arrays real(8), allocatable :: gwf2mt(:,:),gwf2ir(:) real(8), allocatable :: rfmt(:),grfmt(:,:) real(8), allocatable :: rfir(:),grfir(:) real(8), allocatable :: elfmt(:,:),elfir(:) complex(8), allocatable :: zfft1(:),zfft2(:) ! initialise universal variables call init0 call init1 ! allocate local arrays allocate(gwf2mt(npmtmax,natmtot),gwf2ir(ngtot)) allocate(rfmt(npmtmax),grfmt(npmtmax,3)) allocate(rfir(ngtot),grfir(ngtot)) allocate(elfmt(npmtmax,natmtot),elfir(ngtot)) allocate(zfft1(nfgrz),zfft2(nfgrz)) ! read density and potentials from file call readstate ! generate the core wavefunctions and densities call gencore ! find the new linearisation energies call linengy ! generate the APW radial functions call genapwfr ! generate the local-orbital radial functions call genlofr ! get the occupation numbers from file call readoccsv ! set the wavefunction gradient squared to zero gwf2mt(:,:)=0.d0 gwf2ir(:)=0.d0 do ik=1,nkpt ! add to the valence wavefunction gradient squared call gradwf2(ik,gwf2mt,gwf2ir) end do ! convert muffin-tin gradient squared to spherical harmonics do ias=1,natmtot is=idxis(ias) call rfshtip(nrcmt(is),nrcmti(is),gwf2mt(:,ias)) end do ! symmetrise the wavefunction gradient squared call symrf(nrcmt,nrcmti,npcmt,ngdgc,ngtc,ngvc,igfc,npmtmax,gwf2mt,gwf2ir) ! convert back to spherical coordinates do ias=1,natmtot is=idxis(ias) call rbshtip(nrcmt(is),nrcmti(is),gwf2mt(:,ias)) end do ! convert from coarse to fine muffin-tin radial mesh call rfmtctof(gwf2mt) ! convert from coarse to fine interstitial grid call rfirctof(gwf2ir,gwf2ir) ! 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),rfmt) ! compute the gradient of the density call gradrfmt(nr,nri,rlmt(:,-1,is),wcrmt(:,:,is),rhomt(:,ias),npmtmax,grfmt) ! convert gradient to spherical coordinates do i=1,3 call rbshtip(nr,nri,grfmt(:,i)) end do do i=1,npmt(is) r=abs(rfmt(i)) ! square of gradient of rho t1=grfmt(i,1)**2+grfmt(i,2)**2+grfmt(i,3)**2 ! D for inhomogeneous density t1=(1.d0/2.d0)*(gwf2mt(i,ias)-(1.d0/4.d0)*t1/r) ! D0 for uniform electron gas t2=(3.d0/5.d0)*((6.d0*pi**2)**(2.d0/3.d0))*(r/2.d0)**(5.d0/3.d0) ! ELF function elfmt(i,ias)=1.d0/(1.d0+(t1/t2)**2) end do ! convert ELF from spherical coordinates to spherical harmonics call rfshtip(nr,nri,elfmt(:,ias)) end do !--------------------------! ! interstitial ELF ! !--------------------------! ! Fourier transform density to G-space call rzfftifc(3,ngridg,-1,rhoir,zfft1) ! calculate the square of gradient of rho grfir(:)=0.d0 do i=1,3 do ifg=1,nfgrz ig=igrzf(ifg) if (ig <= ngvc) then zfft2(ifg)=vgc(i,ig)*cmplx(-aimag(zfft1(ifg)),dble(zfft1(ifg)),8) else zfft2(ifg)=0.d0 end if end do ! Fourier transform gradient to real-space call rzfftifc(3,ngridg,1,rfir,zfft2) do ir=1,ngtot grfir(ir)=grfir(ir)+rfir(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 ! 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,rfmt,grfmt,rfir,grfir) deallocate(elfmt,elfir,zfft1,zfft2) end subroutine !EOC elk-9.6.8/src/PaxHeaders/vclcore.f900000644000000000000000000000013214626155520014141 xustar0030 mtime=1717099344.830990943 30 atime=1717099342.962980878 30 ctime=1717099344.830990943 elk-9.6.8/src/vclcore.f900000644002504400250440000000546514626155520016675 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(4), 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 ! automatic arrays complex(4) wfcr(npcmtmax,2),cfmt(npcmtmax) complex(8) v(nstsv,nstsv) ! allocatable arrays complex(4), allocatable :: crhomt(:,:) ! external functions complex(8), external :: zcfmtinp allocate(crhomt(npcmtmax,nstsv)) call holdthd(nstsv,nthd) v(:,:)=0.d0 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) !$OMP PARALLEL DEFAULT(SHARED) & !$OMP PRIVATE(cfmt,ist1,ist2) & !$OMP NUM_THREADS(nthd) !$OMP DO do ist1=1,nstsv ! calculate the complex overlap density in spherical harmonics if (spinpol) then call crho2(npc,wfcr,wfcr(:,2),wfmt(:,ias,1,ist1), & wfmt(:,ias,2,ist1),cfmt) else call crho1(npc,wfcr,wfmt(:,ias,1,ist1),cfmt) end if call cfsht(nrc,nrci,cfmt,crhomt(:,ist1)) end do !$OMP END DO !$OMP DO do ist2=1,nstsv call cpotclmt(nrc,nrci,nrcmtmax,rlcmt(:,:,is),wprcmt(:,:,is), & crhomt(:,ist2),cfmt) do ist1=1,ist2 v(ist1,ist2)=v(ist1,ist2)-zcfmtinp(nrc,nrci,wrcmt(:,is), & crhomt(:,ist1),cfmt) end do end do !$OMP END DO !$OMP END PARALLEL end do end if end do end do end do call freethd(nthd) do ist1=1,nstsv ! set the lower triangular part of the matrix do ist2=1,ist1-1 v(ist1,ist2)=conjg(v(ist2,ist1)) end do ! make the diagonal elements real v(ist1,ist1)=dble(v(ist1,ist1)) end do ! scale the Coulomb matrix elements in the case of a hybrid functional if (hybrid) v(:,:)=hybridc*v(:,:) ! add to input matrix vmat(:,:)=vmat(:,:)+v(:,:) deallocate(crhomt) return contains pure subroutine crho1(n,wf1,wf2,crho) implicit none integer, intent(in) :: n complex(4), intent(in) :: wf1(n),wf2(n) complex(4), intent(out) :: crho(n) crho(:)=conjg(wf1(:))*wf2(:) end subroutine pure subroutine crho2(n,wf11,wf12,wf21,wf22,crho) implicit none integer, intent(in) :: n complex(4), intent(in) :: wf11(n),wf12(n),wf21(n),wf22(n) complex(4), intent(out) :: crho(n) crho(:)=conjg(wf11(:))*wf21(:)+conjg(wf12(:))*wf22(:) end subroutine end subroutine elk-9.6.8/src/PaxHeaders/zfmtwr.f900000644000000000000000000000013214626155520014035 xustar0030 mtime=1717099344.832990954 30 atime=1717099342.965980894 30 ctime=1717099344.832990954 elk-9.6.8/src/zfmtwr.f900000644002504400250440000000123414626155520016557 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2020 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. pure subroutine zfmtwr(nr,nri,wr,zfmt) use modmain implicit none ! arguments integer, intent(in) :: nr,nri real(8), intent(in) :: wr(nr) complex(8), intent(inout) :: zfmt(*) ! local variables integer n,ir,i i=1 if (lmaxi == 1) then do ir=1,nri zfmt(i:i+3)=wr(ir)*zfmt(i:i+3) i=i+4 end do else n=lmmaxi-1 do ir=1,nri zfmt(i:i+n)=wr(ir)*zfmt(i:i+n) i=i+lmmaxi end do end if n=lmmaxo-1 do ir=nri+1,nr zfmt(i:i+n)=wr(ir)*zfmt(i:i+n) i=i+lmmaxo end do end subroutine elk-9.6.8/src/PaxHeaders/zvcldisp.f900000644000000000000000000000013214626155520014342 xustar0030 mtime=1717099344.834990964 30 atime=1717099342.968980911 30 ctime=1717099344.834990964 elk-9.6.8/src/zvcldisp.f900000644002504400250440000000122014626155520017057 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2020 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 zvcldisp(zvclmt) use modmain use modtddft implicit none ! arguments complex(8), intent(inout) :: zvclmt(npmtmax,natmtot) ! local variables integer is,ia,ias,np,i real(8) t1 do is=1,nspecies np=npmt(is) do ia=1,natoms(is) ias=idxas(ia,is) do i=1,3 t1=-atdvc(i,0,ia,is) ! add the gradient of the Coulomb potential of the nucleus plus static density zvclmt(1:np,ias)=zvclmt(1:np,ias)+t1*gvnsmt(1:np,i,ias) end do end do end do end subroutine elk-9.6.8/src/PaxHeaders/vecfbz.f900000644000000000000000000000013214626155520013763 xustar0030 mtime=1717099344.836990975 30 atime=1717099342.970980921 30 ctime=1717099344.836990975 elk-9.6.8/src/vecfbz.f900000644002504400250440000000270614626155520016512 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 < 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) end subroutine !EOC elk-9.6.8/src/PaxHeaders/lopzflmn.f900000644000000000000000000000013214626155520014345 xustar0030 mtime=1717099344.838990986 30 atime=1717099342.973980938 30 ctime=1717099344.838990986 elk-9.6.8/src/lopzflmn.f900000644002504400250440000000220114626155520017062 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2020 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. pure subroutine lopzflmn(lmax,n,ld,zflm,zlflm1,zlflm2,zlflm3) implicit none ! arguments integer, intent(in) :: lmax,n,ld complex(8), intent(in) :: zflm(ld,n) complex(8), intent(out) :: zlflm1(ld,n),zlflm2(ld,n),zlflm3(ld,n) ! local variables integer l,m,lm,i real(8) t1 complex(8) z1 lm=0 do l=0,lmax do m=-l,l lm=lm+1 if (m == -l) then zlflm1(lm,:)=0.d0 zlflm2(lm,:)=0.d0 end if if (m < l) then t1=0.5d0*sqrt(dble((l-m)*(l+m+1))) do i=1,n z1=t1*zflm(lm,i) zlflm1(lm+1,i)=z1 zlflm2(lm+1,i)=cmplx(aimag(z1),-dble(z1),8) end do end if if (m > -l) then t1=0.5d0*sqrt(dble((l+m)*(l-m+1))) do i=1,n z1=t1*zflm(lm,i) zlflm1(lm-1,i)=zlflm1(lm-1,i)+z1 zlflm2(lm-1,i)=zlflm2(lm-1,i)+cmplx(-aimag(z1),dble(z1),8) end do end if if (m /= 0) then zlflm3(lm,:)=dble(m)*zflm(lm,:) else zlflm3(lm,:)=0.d0 end if end do end do end subroutine elk-9.6.8/src/PaxHeaders/zpotclmt.f900000644000000000000000000000013214626155520014360 xustar0030 mtime=1717099344.840990997 30 atime=1717099342.976980954 30 ctime=1717099344.840990997 elk-9.6.8/src/zpotclmt.f900000644002504400250440000000645314626155520017112 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: pure 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 lm,npi,i0,i real(8) t0 complex(8) z1 ! automatic arrays complex(8) f1(nr),f2(nr),f3(nr) nro=nr-nri iro=nri+1 npi=lmmaxi*nri do l=0,lmaxi l1=l+2 l2=-l+1 l3=-l-1 t0=fourpi/dble(2*l+1) do lm=l**2+1,(l+1)**2 do ir=1,nri i=lm+lmmaxi*(ir-1) f1(ir)=rl(ir,l1)*zrhomt(i) f2(ir)=rl(ir,l2)*zrhomt(i) end do i0=lm+npi do ir=iro,nr i=i0+lmmaxo*(ir-iro) f1(ir)=rl(ir,l1)*zrhomt(i) f2(ir)=rl(ir,l2)*zrhomt(i) end do call splintwp(nr,wpr,f1,f3) call splintwp(nr,wpr,f2,f1) z1=f1(nr) do ir=1,nri i=lm+lmmaxi*(ir-1) zvclmt(i)=t0*(rl(ir,l3)*f3(ir)+rl(ir,l)*(z1-f1(ir))) end do do ir=iro,nr i=i0+lmmaxo*(ir-iro) zvclmt(i)=t0*(rl(ir,l3)*f3(ir)+rl(ir,l)*(z1-f1(ir))) 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 lm=l**2+1,(l+1)**2 i0=lm+npi do ir=iro,nr i=i0+lmmaxo*(ir-iro) f1(ir)=rl(ir,l1)*zrhomt(i) f2(ir)=rl(ir,l2)*zrhomt(i) end do call splintwp(nro,wpr(1,iro),f1(iro),f3(iro)) call splintwp(nro,wpr(1,iro),f2(iro),f1(iro)) z1=f1(nr) do ir=iro,nr i=i0+lmmaxo*(ir-iro) zvclmt(i)=t0*(rl(ir,l3)*f3(ir)+rl(ir,l)*(z1-f1(ir))) end do end do end do return contains pure subroutine splintwp(n,wp,f,g) implicit none ! arguments integer, intent(in) :: n real(8), intent(in) :: wp(*) complex(8), intent(in) :: f(n) complex(8), intent(out) :: g(n) ! local variables integer i,j complex(8) zsm g(1)=0.d0 zsm=wp(5)*f(1)+wp(6)*f(2)+wp(7)*f(3)+wp(8)*f(4) g(2)=zsm do i=2,n-2 j=i*4+1 zsm=zsm+wp(j)*f(i-1)+wp(j+1)*f(i)+wp(j+2)*f(i+1)+wp(j+3)*f(i+2) g(i+1)=zsm end do j=(n-1)*4+1 g(n)=zsm+wp(j)*f(n-3)+wp(j+1)*f(n-2)+wp(j+2)*f(n-1)+wp(j+3)*f(n) end subroutine end subroutine !EOC elk-9.6.8/src/PaxHeaders/readfermi.f900000644000000000000000000000013114626155520014441 xustar0030 mtime=1717099344.842991008 29 atime=1717099342.97998097 30 ctime=1717099344.842991008 elk-9.6.8/src/readfermi.f900000644002504400250440000000157214626155520017171 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',action='READ', & status='OLD',iostat=ios) if (ios /= 0) then write(*,*) write(*,'("Error(readfermi): error opening ",A)') 'EFERMI'//trim(filext) write(*,*) stop end if read(50,*,iostat=ios) efermi if (ios /= 0) then write(*,*) write(*,'("Error(readfermi): error reading Fermi energy from EFERMI.OUT")') write(*,*) stop end if close(50) end subroutine !EOC elk-9.6.8/src/PaxHeaders/gensdmat.f900000644000000000000000000000013214626155520014306 xustar0030 mtime=1717099344.844991018 30 atime=1717099342.982980986 30 ctime=1717099344.844991018 elk-9.6.8/src/gensdmat.f900000644002504400250440000000212314626155520017026 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: pure 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 end subroutine !EOC elk-9.6.8/src/PaxHeaders/symrfmt.f900000644000000000000000000000013214626155520014205 xustar0030 mtime=1717099344.846991029 30 atime=1717099342.984980997 30 ctime=1717099344.846991029 elk-9.6.8/src/symrfmt.f900000644002504400250440000000350214626155520016727 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 n,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 n=np(is) ! make a copy of the input function do ia=1,natoms(is) ias=idxas(ia,is) rfmt1(1:n,ia)=rfmt(1:n,ias) end do done(:)=.false. ! loop over atoms do ia=1,natoms(is) if (done(ia)) cycle ias=idxas(ia,is) rfmt(1:n,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:n,ias)=rfmt(1:n,ias)+rfmt2(1:n) end do ! normalise rfmt(1:n,ias)=t0*rfmt(1:n,ias) 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) end subroutine elk-9.6.8/src/PaxHeaders/sphcrd.f900000644000000000000000000000013014626155520013765 xustar0029 mtime=1717099344.84899104 30 atime=1717099342.987981013 29 ctime=1717099344.84899104 elk-9.6.8/src/sphcrd.f900000644002504400250440000000222214626155520016507 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: sphcrd ! !INTERFACE: pure subroutine sphcrd(v,r,tp) ! !INPUT/OUTPUT PARAMETERS: ! v : input vector (in,real(3)) ! r : length of v (out,real) ! tp : (theta, phi) coordinates (out,real(2)) ! !DESCRIPTION: ! Returns the spherical coordinates $(r,\theta,\phi)$ of a vector ! $$ {\bf v}=(r\sin(\theta)\cos(\phi), r\sin(\theta)\sin(\phi), ! r\cos(\theta)). $$ ! ! !REVISION HISTORY: ! Created October 2002 (JKD) !EOP !BOC implicit none ! arguments real(8), intent(in) :: v(3) real(8), intent(out) :: r,tp(2) ! local variables real(8), parameter :: eps=1.d-14 real(8) t1 r=sqrt(v(1)**2+v(2)**2+v(3)**2) if (r > eps) then t1=v(3)/r if (t1 >= 1.d0) then tp(1)=0.d0 else if (t1 <= -1.d0) then tp(1)=3.1415926535897932385d0 else tp(1)=acos(t1) end if if ((abs(v(1)) > eps).or.(abs(v(2)) > eps)) then tp(2)=atan2(v(2),v(1)) else tp(2)=0.d0 end if else tp(1)=0.d0 tp(2)=0.d0 end if end subroutine !EOC elk-9.6.8/src/PaxHeaders/gencrm.f900000644000000000000000000000013214626155520013757 xustar0030 mtime=1717099344.850991051 30 atime=1717099342.990981029 30 ctime=1717099344.850991051 elk-9.6.8/src/gencrm.f900000644002504400250440000000235714626155520016510 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 gencrm(n,wf11,wf12,wf21,wf22,crho,ld,cmag) use modmain implicit none ! arguments integer, intent(in) :: n complex(4), intent(in) :: wf11(n),wf12(n),wf21(n),wf22(n) complex(4), intent(out) :: crho(n) integer, intent(in) :: ld complex(4), intent(out) :: cmag(ld,ndmag) ! local variables integer i complex(4) c11,c12,c21,c22,c1,c2 if (ncmag) then ! non-collinear case !$OMP SIMD PRIVATE(c11,c12,c21,c22,c1,c2) SIMDLEN(8) do i=1,n c11=wf11(i); c12=wf12(i) c21=wf21(i); c22=wf22(i) ! up-dn spin density c1=conjg(c11)*c22 ! dn-up spin density c2=conjg(c12)*c21 ! x-component: up-dn + dn-up cmag(i,1)=c1+c2 ! y-component: i*(dn-up - up-dn) c1=c2-c1 cmag(i,2)=cmplx(-aimag(c1),real(c1),4) c1=conjg(c11)*c21 c2=conjg(c12)*c22 ! z-component: up-up - dn-dn cmag(i,3)=c1-c2 ! density: up-up + dn-dn crho(i)=c1+c2 end do else ! collinear case !$OMP SIMD PRIVATE(c1,c2) SIMDLEN(8) do i=1,n c1=conjg(wf11(i))*wf21(i) c2=conjg(wf12(i))*wf22(i) cmag(i,1)=c1-c2 crho(i)=c1+c2 end do end if end subroutine elk-9.6.8/src/PaxHeaders/rminv.f900000644000000000000000000000013214626155520013637 xustar0030 mtime=1717099344.853991067 30 atime=1717099342.993981045 30 ctime=1717099344.853991067 elk-9.6.8/src/rminv.f900000644002504400250440000000143014626155520016357 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 /= 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 /= 0) then write(*,*) write(*,'("Error(rminv): unable to invert matrix")') write(*,'(" DGETRI returned INFO = ",I8)') info write(*,*) stop end if end subroutine elk-9.6.8/src/PaxHeaders/rtozfmt.f900000644000000000000000000000013214626155520014211 xustar0030 mtime=1717099344.854991072 30 atime=1717099342.995981056 30 ctime=1717099344.854991072 elk-9.6.8/src/rtozfmt.f900000644002504400250440000000416514626155520016741 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. pure 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 i call rtozflmn(lmaxi,nri,lmmaxi,rfmt,zfmt) i=lmmaxi*nri+1 call rtozflmn(lmaxo,nr-nri,lmmaxo,rfmt(i),zfmt(i)) return contains !BOP ! !ROUTINE: rtozflmn ! !INTERFACE: pure subroutine rtozflmn(lmax,n,ld,rflm,zflm) ! !INPUT/OUTPUT PARAMETERS: ! lmax : maximum angular momentum (in,integer) ! n : number of functions to convert (in,integer) ! ld : leading dimension (in,integer) ! rflm : coefficients of real spherical harmonic expansion (in,real(ld,n)) ! zflm : coefficients of complex spherical harmonic expansion ! (out,complex(ld,n)) ! !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,n,ld real(8), intent(in) :: rflm(ld,n) complex(8), intent(out) :: zflm(ld,n) ! 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) /= 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) /= 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 end subroutine !EOC end subroutine elk-9.6.8/src/PaxHeaders/genwfsvp.f900000644000000000000000000000013214626155520014343 xustar0030 mtime=1717099344.857991088 30 atime=1717099342.998981072 30 ctime=1717099344.857991088 elk-9.6.8/src/genwfsvp.f900000644002504400250440000000376114626155520017074 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(*),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) ! automatic arrays real(8) vgpl(3,ngkmax,nspnfv),vgpc(3,ngkmax),gpc(ngkmax) ! allocatable arrays complex(8), allocatable :: sfacgp(:,:),apwalm(:,:,:,:,:) complex(8), allocatable :: evecfv(:,:,:),evecsv(:,:) 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 == 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(ngvc,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(sfacgp) ! get the first- and second-variational eigenvectors from file allocate(evecfv(nmatmax,nstfv,nspnfv),evecsv(nstsv,nstsv)) call getevecfv(filext,0,vpl,vgpl,evecfv) 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) end subroutine elk-9.6.8/src/PaxHeaders/genwfsvp_sp.f900000644000000000000000000000013214626155520015045 xustar0030 mtime=1717099344.859991099 30 atime=1717099343.001981088 30 ctime=1717099344.859991099 elk-9.6.8/src/genwfsvp_sp.f900000644002504400250440000000374714626155520017602 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2022 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 genwfsvp_sp(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(*),ngdg(3),igf(*) real(8), intent(in) :: vpl(3) integer, intent(out) :: ngp(nspnfv),igpig(ngkmax,nspnfv) complex(4), intent(out) :: wfmt(npcmtmax,natmtot,nspinor,nst) integer, intent(in) :: ld complex(4), intent(out) :: wfir(ld,nspinor,nst) ! local variables integer ispn real(8) vl(3),vc(3) ! automatic arrays real(8) vgpl(3,ngkmax,nspnfv),vgpc(3,ngkmax),gpc(ngkmax) ! allocatable arrays complex(8), allocatable :: sfacgp(:,:),apwalm(:,:,:,:,:) complex(8), allocatable :: evecfv(:,:,:),evecsv(:,:) 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 == 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(ngvc,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(sfacgp) ! get the first- and second-variational eigenvectors from file allocate(evecfv(nmatmax,nstfv,nspnfv),evecsv(nstsv,nstsv)) call getevecfv(filext,0,vpl,vgpl,evecfv) call getevecsv(filext,0,vpl,evecsv) ! calculate the second-variational wavefunctions call genwfsv_sp(tsh,tgp,nst,idx,ngdg,igf,ngp,igpig,apwalm,evecfv,evecsv,wfmt, & ld,wfir) deallocate(apwalm,evecfv,evecsv) end subroutine elk-9.6.8/src/PaxHeaders/rdiracint.f900000644000000000000000000000013014626155520014461 xustar0029 mtime=1717099344.86199111 30 atime=1717099343.004981105 29 ctime=1717099344.86199111 elk-9.6.8/src/rdiracint.f900000644002504400250440000001077414626155520017216 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: pure 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 ! 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 < 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)) > rsc).or.(abs(g1(ir)) > rsc).or. & (abs(f0(ir)) > rsc).or.(abs(f1(ir)) > 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) < 0.d0) nn=nn+1 end do return contains pure 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) end function pure 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))) end function end subroutine !EOC elk-9.6.8/src/PaxHeaders/rotzflm.f900000644000000000000000000000013214626155520014201 xustar0030 mtime=1717099344.863991121 30 atime=1717099343.007981121 30 ctime=1717099344.863991121 elk-9.6.8/src/rotzflm.f900000644002504400250440000000544514626155520016733 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,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 < 0) then write(*,*) write(*,'("Error(rotzflm): lmin < 0 : ",I8)') lmin write(*,*) stop end if if (lmin > lmax) then write(*,*) write(*,'("Error(rotzflm): lmin > lmax : ",2I8)') lmin,lmax write(*,*) stop end if if (n == 0) return if (n < 0) then write(*,*) write(*,'("Error(rotzflm): n < 0 : ",I8)') n write(*,*) stop end if ! find the determinant det=rot(1,1)*(rot(2,2)*rot(3,3)-rot(3,2)*rot(2,3)) & +rot(2,1)*(rot(3,2)*rot(1,3)-rot(1,2)*rot(3,3)) & +rot(3,1)*(rot(1,2)*rot(2,3)-rot(2,2)*rot(1,3)) ! calculate the Euler angles of the proper rotation if (det > 0.d0) then p=1 call roteuler(rot,ang) else p=-1 call roteuler(-rot(:,:),ang) end if ! 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 end subroutine !EOC elk-9.6.8/src/PaxHeaders/latvstep.f900000644000000000000000000000013214626155520014346 xustar0030 mtime=1717099344.865991131 30 atime=1717099343.010981137 30 ctime=1717099344.865991131 elk-9.6.8/src/latvstep.f900000644002504400250440000000200714626155520017067 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 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 > 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 ! compute the new unit cell volume call reciplat(avec,bvec,omega,omegabz) ! preserve the volume if required (added by Ronald Cohen) if (latvopt == 2) then t1=(omega0/omega)**(1.d0/3.d0) avec(:,:)=t1*avec(:,:) omega=omega0 end if ! each MPI process should have numerically identical lattice vectors call mpi_bcast(avec,9,mpi_double_precision,0,mpicom,ierror) end subroutine elk-9.6.8/src/PaxHeaders/gradzfmt.f900000644000000000000000000000013214626155520014322 xustar0030 mtime=1717099344.868991148 30 atime=1717099343.012981148 30 ctime=1717099344.868991148 elk-9.6.8/src/gradzfmt.f900000644002504400250440000001375214626155520017054 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,ri,wcr,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) ! ri : 1/r on the radial mesh (in,real(nr)) ! wcr : weights for spline coefficients on radial mesh (in,real(12,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 gradient formula (see, for example, V. Devanathan, ! {\em Angular Momentum Techniques In Quantum Mechanics}) ! \begin{align*} ! \nabla f_{lm}(r)Y_{lm}(\hat{\bf r})&=-\sqrt{\frac{l+1}{2l+1}} ! \left(\frac{d}{dr}-\frac{l}{r}\right)f_{lm}(r) ! {\bf Y}_{lm}^{l+1}(\hat{\bf r})\\ ! &+\sqrt{\frac{l}{2l+1}}\left(\frac{d}{dr}+\frac{l+1}{r}\right)f_{lm}(r) ! {\bf Y}_{lm}^{l-1}(\hat{\bf r}), ! \end{align*} ! where the vector spherical harmonics are determined from Clebsch-Gordan ! coefficients as follows: ! $$ {\bf Y}_{lm}^{l'}(\hat{\bf r})=\sum_{m'\mu} ! \begin{bmatrix} l' & 1 & l \\ m' & \mu & m \end{bmatrix} ! Y_{lm}(\hat{\bf r})\hat{\bf e}^{\mu} $$ ! and the (contravariant) spherical unit vectors are given by ! $$ \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}}. $$ ! ! !REVISION HISTORY: ! Rewritten May 2009 (JKD) ! Modified, February 2020 (JKD) !EOP !BOC implicit none ! arguments integer, intent(in) :: nr,nri real(8), intent(in) :: ri(nr),wcr(12,nr) complex(8), intent(in) :: zfmt(*) integer, intent(in) :: ld complex(8), intent(out) :: gzfmt(ld,3) ! local variables integer nro,iro,ir,mu integer np,npi,i,i1,j integer l,m,lm,lm1 ! 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), external :: clebgor nro=nr-nri iro=nri+1 npi=lmmaxi*nri np=npi+lmmaxo*nro !----------------------------------------! ! compute the radial derivatives ! !----------------------------------------! do lm=1,lmmaxi i=lm do ir=1,nri f1(ir)=dble(zfmt(i)) f2(ir)=aimag(zfmt(i)) i=i+lmmaxi end do do ir=iro,nr f1(ir)=dble(zfmt(i)) f2(ir)=aimag(zfmt(i)) i=i+lmmaxo end do call splined(nr,wcr,f1,g1) call splined(nr,wcr,f2,g2) i=lm do ir=1,nri drmt(i)=cmplx(g1(ir),g2(ir),8) i=i+lmmaxi end do do ir=iro,nr drmt(i)=cmplx(g1(ir),g2(ir),8) i=i+lmmaxo end do end do do lm=lmmaxi+1,lmmaxo i=npi+lm do ir=iro,nr f1(ir)=dble(zfmt(i)) f2(ir)=aimag(zfmt(i)) i=i+lmmaxo end do call splined(nro,wcr(1,iro),f1(iro),g1(iro)) call splined(nro,wcr(1,iro),f2(iro),g2(iro)) i=npi+lm do ir=iro,nr drmt(i)=cmplx(g1(ir),g2(ir),8) i=i+lmmaxo end do end do !-----------------------------------------------------! ! compute the gradient in the spherical basis ! !-----------------------------------------------------! ! zero the gradient array gzfmt(1:np,:)=0.d0 ! inner part of muffin-tin lm=0 do l=0,lmaxi t1=-sqrt(dble(l+1)/dble(2*l+1)) if (l > 0) then t2=sqrt(dble(l)/dble(2*l+1)) else t2=0.d0 end if do m=-l,l lm=lm+1 j=1 do mu=-1,1 if (mu == 0) j=3 if (mu == 1) j=2 if (l+1 <= lmaxi) then ! index to (l,m) is l*(l+1)+m+1, therefore index to (l+1,m-mu) is lm1=(l+1)*(l+2)+(m-mu)+1 t3=t1*clebgor(l+1,1,l,m-mu,mu,m) i=lm; i1=lm1 do ir=1,nri gzfmt(i1,j)=gzfmt(i1,j)+t3*(drmt(i)-dble(l)*ri(ir)*zfmt(i)) i=i+lmmaxi; i1=i1+lmmaxi end do end if if (abs(m-mu) <= l-1) then ! index to (l-1,m-mu) lm1=(l-1)*l+(m-mu)+1 t3=t2*clebgor(l-1,1,l,m-mu,mu,m) i=lm; i1=lm1 do ir=1,nri gzfmt(i1,j)=gzfmt(i1,j)+t3*(drmt(i)+dble(l+1)*ri(ir)*zfmt(i)) i=i+lmmaxi; i1=i1+lmmaxi end do end if end do end do end do ! outer part of muffin-tin lm=0 do l=0,lmaxo t1=-sqrt(dble(l+1)/dble(2*l+1)) if (l > 0) then t2=sqrt(dble(l)/dble(2*l+1)) else t2=0.d0 end if do m=-l,l lm=lm+1 j=1 do mu=-1,1 if (mu == 0) j=3 if (mu == 1) j=2 if (l+1 <= lmaxo) then lm1=(l+1)*(l+2)+(m-mu)+1 t3=t1*clebgor(l+1,1,l,m-mu,mu,m) i=npi+lm; i1=npi+lm1 do ir=iro,nr gzfmt(i1,j)=gzfmt(i1,j)+t3*(drmt(i)-dble(l)*ri(ir)*zfmt(i)) i=i+lmmaxo; i1=i1+lmmaxo end do end if if (abs(m-mu) <= l-1) then lm1=(l-1)*l+(m-mu)+1 t3=t2*clebgor(l-1,1,l,m-mu,mu,m) i=npi+lm; i1=npi+lm1 do ir=iro,nr gzfmt(i1,j)=gzfmt(i1,j)+t3*(drmt(i)+dble(l+1)*ri(ir)*zfmt(i)) i=i+lmmaxo; i1=i1+lmmaxo end do end if end do end do end do !---------------------------------------------------! ! convert from spherical to Cartesian basis ! !---------------------------------------------------! ! note that the gradient transforms as a covariant vector, i.e. y -> -y i=0 do ir=1,nri do lm=1,lmmaxi i=i+1 z1=gzfmt(i,1) gzfmt(i,1)=c1*(z1-gzfmt(i,2)) z1=c1*(z1+gzfmt(i,2)) gzfmt(i,2)=cmplx(aimag(z1),-dble(z1),8) end do end do do ir=iro,nr do lm=1,lmmaxo i=i+1 z1=gzfmt(i,1) gzfmt(i,1)=c1*(z1-gzfmt(i,2)) z1=c1*(z1+gzfmt(i,2)) gzfmt(i,2)=cmplx(aimag(z1),-dble(z1),8) end do end do end subroutine !EOC elk-9.6.8/src/PaxHeaders/eveqnfv.f900000644000000000000000000000013214626155520014156 xustar0030 mtime=1717099344.870991159 30 atime=1717099343.015981164 30 ctime=1717099344.870991159 elk-9.6.8/src/eveqnfv.f900000644002504400250440000000463014626155520016703 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) end subroutine !EOC elk-9.6.8/src/PaxHeaders/cfsht.f900000644000000000000000000000013114626155520013612 xustar0030 mtime=1717099344.872991169 29 atime=1717099343.01898118 30 ctime=1717099344.872991169 elk-9.6.8/src/cfsht.f900000644002504400250440000000130714626155520016336 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2021 J. K. Dewhurst, S. Sharma and E. K. U. Gross. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. subroutine cfsht(nr,nri,cfmt1,cfmt2) use modmain implicit none ! arguments integer, intent(in) :: nr,nri complex(4), intent(in) :: cfmt1(*) complex(4), intent(out) :: cfmt2(*) ! local variables integer i ! transform the inner part of the muffin-tin call cgemm('N','N',lmmaxi,nri,lmmaxi,cone,cfshti,lmmaxi,cfmt1,lmmaxi,czero, & cfmt2,lmmaxi) ! transform the outer part of the muffin-tin i=lmmaxi*nri+1 call cgemm('N','N',lmmaxo,nr-nri,lmmaxo,cone,cfshto,lmmaxo,cfmt1(i),lmmaxo, & czero,cfmt2(i),lmmaxo) end subroutine elk-9.6.8/src/PaxHeaders/wfmtsv_sp.f900000644000000000000000000000013014626155520014532 xustar0029 mtime=1717099344.87499118 30 atime=1717099343.021981196 29 ctime=1717099344.87499118 elk-9.6.8/src/wfmtsv_sp.f900000644002504400250440000001062214626155520017257 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2021 J. K. Dewhurst, S. Sharma and E. K. U. Gross. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. subroutine wfmtsv_sp(tsh,is,ias,nst,idx,ngp,apwalm,evecfv,evecsv,ld,wfmt) use modmain use modomp implicit none ! arguments logical, intent(in) :: tsh integer, intent(in) :: is,ias,nst,idx(*),ngp(nspnfv) complex(8), intent(in) :: apwalm(ngkmax,apwordmax,lmmaxapw,natmtot,nspnfv) complex(8), intent(in) :: evecfv(nmatmax,nstfv,nspnfv),evecsv(nstsv,nstsv) integer, intent(in) :: ld complex(4), intent(out) :: wfmt(ld,nspinor,nst) ! local variables logical tasv integer io,ilo,ispn,jspn integer nrc,nrci,nrco,iro integer l,lm,npc,npci integer n,p,i,j,k,nthd complex(8) zq(2),z1 ! automatic arrays complex(8) x(nstfv,nspnfv),y(nlmwf(is),nspinor,nst) ! external functions complex(8), external :: zdotu iro=nrmti(is)+lradstp nrc=nrcmt(is) nrci=nrcmti(is) nrco=nrc-nrci npc=npcmt(is) npci=npcmti(is) ! de-phasing factor for spin-spirals if (ssdph) then zq(1)=zqss(ias) zq(2)=conjg(zq(1)) end if ! check if all the second-variational wavefunctions should be calculated if (idx(1) == 0) then tasv=.true. else tasv=.false. end if call holdthd(nst,nthd) !-----------------------! ! APW functions ! !-----------------------! !$OMP PARALLEL DEFAULT(SHARED) & !$OMP PRIVATE(p,l,lm,io,ispn,jspn) & !$OMP PRIVATE(n,i,j,k,z1,ilo) & !$OMP NUM_THREADS(nthd) p=0 do l=0,lmaxo do lm=l**2+1,(l+1)**2 do io=1,apword(l,is) p=p+1 if (tevecsv) then do jspn=1,nspnfv n=ngp(jspn) !$OMP DO do j=1,nstfv x(j,jspn)=zdotu(n,evecfv(:,j,jspn),1,apwalm(:,io,lm,ias,jspn),1) end do !$OMP END DO end do ! loop only over required states !$OMP DO do j=1,nst ! index to state in evecsv if (tasv) then; k=j; else; k=idx(j); end if y(p,1,j)=zdotu(nstfv,evecsv(1,k),1,x,1) if (spinpol) then jspn=jspnfv(2) y(p,2,j)=zdotu(nstfv,evecsv(nstfv+1,k),1,x(1,jspn),1) end if end do !$OMP END DO else !$OMP DO do j=1,nst if (tasv) then; k=j; else; k=idx(j); end if y(p,1,j)=zdotu(ngp(1),evecfv(:,k,1),1,apwalm(:,io,lm,ias,1),1) end do !$OMP END DO end if end do end do end do !$OMP DO do j=1,nst wfmt(1:npc,:,j)=0.e0 do ispn=1,nspinor p=0 do l=0,lmaxo do lm=l**2+1,(l+1)**2 i=npci+lm do io=1,apword(l,is) p=p+1 z1=y(p,ispn,j) if (ssdph) z1=z1*zq(ispn) if (l <= lmaxi) then call cfzrf(nrci,z1,apwfr(1,1,io,l,ias),lmmaxi,wfmt(lm,ispn,j)) end if call cfzrf(nrco,z1,apwfr(iro,1,io,l,ias),lmmaxo,wfmt(i,ispn,j)) end do end do end do end do end do !$OMP END DO !---------------------------------! ! local-orbital functions ! !---------------------------------! p=0 do ilo=1,nlorb(is) l=lorbl(ilo,is) do lm=l**2+1,(l+1)**2 p=p+1 i=idxlo(lm,ilo,ias) if (tevecsv) then do jspn=1,nspnfv n=ngp(jspn) x(1:nstfv,jspn)=evecfv(n+i,1:nstfv,jspn) end do !$OMP DO do j=1,nst if (tasv) then; k=j; else; k=idx(j); end if y(p,1,j)=zdotu(nstfv,evecsv(1,k),1,x,1) if (spinpol) then jspn=jspnfv(2) y(p,2,j)=zdotu(nstfv,evecsv(nstfv+1,k),1,x(1,jspn),1) end if end do !$OMP END DO else do j=1,nst if (tasv) then; k=j; else; k=idx(j); end if y(p,1,j)=evecfv(ngp(1)+i,k,1) end do end if end do end do !$OMP DO do j=1,nst do ispn=1,nspinor p=0 do ilo=1,nlorb(is) l=lorbl(ilo,is) do lm=l**2+1,(l+1)**2 p=p+1 i=npci+lm z1=y(p,ispn,j) if (ssdph) z1=z1*zq(ispn) if (l <= lmaxi) then call cfzrf(nrci,z1,lofr(1,1,ilo,ias),lmmaxi,wfmt(lm,ispn,j)) end if call cfzrf(nrco,z1,lofr(iro,1,ilo,ias),lmmaxo,wfmt(i,ispn,j)) end do end do ! convert to spherical coordinates if required if (.not.tsh) call cbshtip(nrc,nrci,wfmt(:,ispn,j)) end do end do !$OMP END DO !$OMP END PARALLEL call freethd(nthd) return contains pure subroutine cfzrf(n,z,rf,ld,cf) implicit none ! arguments integer, intent(in) :: n complex(8), intent(in) :: z real(8), intent(in) :: rf(lradstp,n) integer, intent(in) :: ld complex(4), intent(inout) :: cf(ld,n) cf(1,:)=cf(1,:)+z*rf(1,:) end subroutine end subroutine elk-9.6.8/src/PaxHeaders/wfirsv.f900000644000000000000000000000013214626155520014024 xustar0030 mtime=1717099344.876991191 30 atime=1717099343.024981212 30 ctime=1717099344.876991191 elk-9.6.8/src/wfirsv.f900000644002504400250440000000427514626155520016556 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2021 J. K. Dewhurst, S. Sharma and E. K. U. Gross. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. subroutine wfirsv(tgp,nst,idx,ngdg,igf,ngp,igpig,evecfv,evecsv,ld,wfir) use modmain use modomp implicit none ! arguments logical, intent(in) :: tgp integer, intent(in) :: nst,idx(*),ngdg(3),igf(*) integer, intent(in) :: ngp(nspnfv),igpig(ngkmax,nspnfv) complex(8), intent(in) :: evecfv(nmatmax,nstfv,nspnfv),evecsv(nstsv,nstsv) integer, intent(in) :: ld complex(8), intent(out) :: wfir(ld,nspinor,nst) ! local variables integer ist,ispn,jspn integer n,igp,i,j,k,nthd real(8) t0 complex(8) z1 ! automatic arrays complex(8) wfgp(ngkmax) t0=1.d0/sqrt(omega) call holdthd(nst,nthd) !$OMP PARALLEL DO DEFAULT(SHARED) & !$OMP PRIVATE(wfgp,k,i,ispn,jspn) & !$OMP PRIVATE(n,ist,z1,igp) & !$OMP NUM_THREADS(nthd) do j=1,nst ! index to state in evecsv if (idx(1) == 0) then; k=j; else; k=idx(j); end if if (tevecsv) then ! generate spinor wavefunction from second-variational eigenvectors i=0 do ispn=1,nspinor jspn=jspnfv(ispn) n=ngp(jspn) if (tgp) then wfir(1:n,ispn,j)=0.d0 else wfgp(1:n)=0.d0 end if do ist=1,nstfv i=i+1 z1=evecsv(i,k) if (abs(dble(z1))+abs(aimag(z1)) < epsocc) cycle if (tgp) then ! wavefunction in G+p-space wfir(1:n,ispn,j)=wfir(1:n,ispn,j)+z1*evecfv(1:n,ist,jspn) else ! wavefunction in real-space z1=t0*z1 wfgp(1:n)=wfgp(1:n)+z1*evecfv(1:n,ist,jspn) end if end do ! Fourier transform wavefunction to real-space if required if (.not.tgp) then wfir(:,ispn,j)=0.d0 do igp=1,n wfir(igf(igpig(igp,jspn)),ispn,j)=wfgp(igp) end do call zfftifc(3,ngdg,1,wfir(:,ispn,j)) end if end do else ! spin-unpolarised wavefunction n=ngp(1) if (tgp) then wfir(1:n,1,j)=evecfv(1:n,k,1) else wfir(:,1,j)=0.d0 do igp=1,n wfir(igf(igpig(igp,1)),1,j)=t0*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) end subroutine elk-9.6.8/src/PaxHeaders/wfirsv_sp.f900000644000000000000000000000013214626155520014526 xustar0030 mtime=1717099344.878991202 30 atime=1717099343.026981223 30 ctime=1717099344.878991202 elk-9.6.8/src/wfirsv_sp.f900000644002504400250440000000426014626155520017252 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2022 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 wfirsv_sp(tgp,nst,idx,ngdg,igf,ngp,igpig,evecfv,evecsv,ld,wfir) use modmain use modomp implicit none ! arguments logical, intent(in) :: tgp integer, intent(in) :: nst,idx(*),ngdg(3),igf(*) integer, intent(in) :: ngp(nspnfv),igpig(ngkmax,nspnfv) complex(8), intent(in) :: evecfv(nmatmax,nstfv,nspnfv),evecsv(nstsv,nstsv) integer, intent(in) :: ld complex(4), intent(out) :: wfir(ld,nspinor,nst) ! local variables integer ist,ispn,jspn integer n,igp,i,j,k,nthd real(8) t0 complex(8) z1 ! automatic arrays complex(4) wfgp(ngkmax) t0=1.d0/sqrt(omega) call holdthd(nst,nthd) !$OMP PARALLEL DO DEFAULT(SHARED) & !$OMP PRIVATE(wfgp,k,i,ispn,jspn) & !$OMP PRIVATE(n,ist,z1,igp) & !$OMP NUM_THREADS(nthd) do j=1,nst ! index to state in evecsv if (idx(1) == 0) then; k=j; else; k=idx(j); end if if (tevecsv) then ! generate spinor wavefunction from second-variational eigenvectors i=0 do ispn=1,nspinor jspn=jspnfv(ispn) n=ngp(jspn) if (tgp) then wfir(1:n,ispn,j)=0.e0 else wfgp(1:n)=0.e0 end if do ist=1,nstfv i=i+1 z1=evecsv(i,k) if (abs(dble(z1))+abs(aimag(z1)) < epsocc) cycle if (tgp) then ! wavefunction in G+p-space wfir(1:n,ispn,j)=wfir(1:n,ispn,j)+z1*evecfv(1:n,ist,jspn) else ! wavefunction in real-space z1=t0*z1 wfgp(1:n)=wfgp(1:n)+z1*evecfv(1:n,ist,jspn) end if end do ! Fourier transform wavefunction to real-space if required if (.not.tgp) then wfir(:,ispn,j)=0.e0 do igp=1,n wfir(igf(igpig(igp,jspn)),ispn,j)=wfgp(igp) end do call cfftifc(3,ngdg,1,wfir(:,ispn,j)) end if end do else ! spin-unpolarised wavefunction n=ngp(1) if (tgp) then wfir(1:n,1,j)=evecfv(1:n,k,1) else wfir(:,1,j)=0.e0 do igp=1,n wfir(igf(igpig(igp,1)),1,j)=t0*evecfv(igp,k,1) end do call cfftifc(3,ngdg,1,wfir(:,1,j)) end if end if end do !$OMP END PARALLEL DO call freethd(nthd) end subroutine elk-9.6.8/src/PaxHeaders/genwfsv_sp.f900000644000000000000000000000013214626155520014665 xustar0030 mtime=1717099344.880991212 30 atime=1717099343.029981239 30 ctime=1717099344.880991212 elk-9.6.8/src/genwfsv_sp.f900000644002504400250440000000235414626155520017413 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2021 J. K. Dewhurst, S. Sharma and E. K. U. Gross. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. subroutine genwfsv_sp(tsh,tgp,nst,idx,ngdg,igf,ngp,igpig,apwalm,evecfv,evecsv, & wfmt,ld,wfir) use modmain use modomp implicit none ! arguments logical, intent(in) :: tsh,tgp integer, intent(in) :: nst,idx(*),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(4), intent(out) :: wfmt(npcmtmax,natmtot,nspinor,nst) integer, intent(in) :: ld complex(4), intent(out) :: wfir(ld,nspinor,nst) ! local variables integer is,ias,ldmt,nthd if (nst <= 0) return ! muffin-tin wavefunction ldmt=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 wfmtsv_sp(tsh,is,ias,nst,idx,ngp,apwalm,evecfv,evecsv,ldmt, & wfmt(1,ias,1,1)) end do !$OMP END PARALLEL DO call freethd(nthd) ! interstitial wavefunction call wfirsv_sp(tgp,nst,idx,ngdg,igf,ngp,igpig,evecfv,evecsv,ld,wfir) end subroutine elk-9.6.8/src/PaxHeaders/ggamt_4.f900000644000000000000000000000013214626155520014026 xustar0030 mtime=1717099344.882991223 30 atime=1717099343.032981255 30 ctime=1717099344.882991223 elk-9.6.8/src/ggamt_4.f900000644002504400250440000000251414626155520016552 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2020 J. K. Dewhurst, S. Sharma and E. K. U. Gross. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. subroutine ggamt_4(is,np,gvrho,vx,vc,wx,wc,dtdr,dtdgr2) use modmain implicit none ! arguments integer, intent(in) :: is,np real(8), intent(in) :: gvrho(np,3) real(8), intent(inout) :: vx(np),vc(np) real(8), intent(in) :: wx(np),wc(np) real(8), intent(in) :: dtdr(np),dtdgr2(np) ! local variables integer nr,nri,i ! automatic arrays real(8) grfmt(np,3),rfmt1(np),rfmt2(np),rfmt3(np) nr=nrmt(is) nri=nrmti(is) !------------------! ! exchange ! !------------------! vx(1:np)=vx(1:np)+wx(1:np)*dtdr(1:np) rfmt1(1:np)=wx(1:np)*dtdgr2(1:np) do i=1,3 rfmt2(1:np)=rfmt1(1:np)*gvrho(1:np,i) call rfsht(nr,nri,rfmt2,rfmt3) call gradrfmt(nr,nri,rlmt(:,-1,is),wcrmt(:,:,is),rfmt3,np,grfmt) call rbsht(nr,nri,grfmt(:,i),rfmt2) vx(1:np)=vx(1:np)-2.d0*rfmt2(1:np) end do !---------------------! ! correlation ! !---------------------! vc(1:np)=vc(1:np)+wc(1:np)*dtdr(1:np) rfmt1(1:np)=wc(1:np)*dtdgr2(1:np) do i=1,3 rfmt2(1:np)=rfmt1(1:np)*gvrho(1:np,i) call rfsht(nr,nri,rfmt2,rfmt3) call gradrfmt(nr,nri,rlmt(:,-1,is),wcrmt(:,:,is),rfmt3,np,grfmt) call rbsht(nr,nri,grfmt(:,i),rfmt2) vc(1:np)=vc(1:np)-2.d0*rfmt2(1:np) end do end subroutine elk-9.6.8/src/PaxHeaders/ggair_4.f900000644000000000000000000000013214626155520014020 xustar0030 mtime=1717099344.884991234 30 atime=1717099343.035981272 30 ctime=1717099344.884991234 elk-9.6.8/src/ggair_4.f900000644002504400250440000000265014626155520016545 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2021 J. K. Dewhurst, S. Sharma and E. K. U. Gross. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. subroutine ggair_4(gvrho,vx,vc,wx,wc,dtdr,dtdgr2) use modmain implicit none ! arguments real(8), intent(in) :: gvrho(ngtot,3) real(8), intent(inout) :: vx(ngtot),vc(ngtot) real(8), intent(in) :: wx(ngtot),wc(ngtot) real(8), intent(in) :: dtdr(ngtot),dtdgr2(ngtot) ! local variables integer ig,ifg,i ! allocatable arrays real(8), allocatable :: rfir1(:),rfir2(:) complex(8), allocatable :: zfft(:) allocate(rfir1(ngtot),rfir2(ngtot),zfft(nfgrz)) !------------------! ! exchange ! !------------------! vx(:)=vx(:)+wx(:)*dtdr(:) rfir1(:)=wx(:)*dtdgr2(:) do i=1,3 rfir2(:)=rfir1(:)*gvrho(:,i) call rzfftifc(3,ngridg,-1,rfir2,zfft) do ifg=1,nfgrz ig=igrzf(ifg) zfft(ifg)=vgc(i,ig)*cmplx(-aimag(zfft(ifg)),dble(zfft(ifg)),8) end do call rzfftifc(3,ngridg,1,rfir2,zfft) vx(:)=vx(:)-2.d0*rfir2(:) end do !---------------------! ! correlation ! !---------------------! vc(:)=vc(:)+wc(:)*dtdr(:) rfir1(:)=wc(:)*dtdgr2(:) do i=1,3 rfir2(:)=rfir1(:)*gvrho(:,i) call rzfftifc(3,ngridg,-1,rfir2,zfft) do ifg=1,nfgrz ig=igrzf(ifg) zfft(ifg)=vgc(i,ig)*cmplx(-aimag(zfft(ifg)),dble(zfft(ifg)),8) end do call rzfftifc(3,ngridg,1,rfir2,zfft) vc(:)=vc(:)-2.d0*rfir2(:) end do deallocate(rfir1,rfir2,zfft) end subroutine elk-9.6.8/src/PaxHeaders/trzhmm.f900000644000000000000000000000013214626155520014025 xustar0030 mtime=1717099344.886991245 30 atime=1717099343.037981282 30 ctime=1717099344.886991245 elk-9.6.8/src/trzhmm.f900000644002504400250440000000201214626155520016542 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2021 J. K. Dewhurst, S. Sharma and 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: trzhmm ! !INTERFACE: pure real(8) function trzhmm(n,a,b) ! !INPUT/OUTPUT PARAMETERS: ! n : order of matrix (in,integer) ! a : Hermitian matrix A (in,complex(n,n)) ! b : Hermitian matrix B (in,complex(n,n)) ! !DESCRIPTION: ! Calculates the trace of the product of two Hermitian matrices, $\tr(AB)$. ! Only the upper triangular parts of $A$ and $B$ are referenced. ! ! !REVISION HISTORY: ! Created December 2021 (JKD) !EOP !BOC implicit none ! arguments integer, intent(in) :: n complex(8), intent(in) :: a(n,n),b(n,n) ! local variables integer i,j real(8) sm sm=0.d0 ! off-diagonal contribution (use upper triangular part) do j=1,n do i=1,j-1 sm=sm+dble(a(i,j)*conjg(b(i,j))) end do end do sm=sm*2.d0 ! diagonal contribution do i=1,n sm=sm+dble(a(i,i))*dble(b(i,i)) end do trzhmm=sm end function !EOC elk-9.6.8/src/PaxHeaders/gengvec.f900000644000000000000000000000013214626155520014122 xustar0030 mtime=1717099344.888991255 30 atime=1717099343.040981298 30 ctime=1717099344.888991255 elk-9.6.8/src/gengvec.f900000644002504400250440000000643514626155520016654 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,ifg,n1 integer i1,i2,i3,j1,j2,j3 real(8) v1(3),v2(3),v3(3) ! allocatable arrays integer, allocatable :: idx(:),ivg1(:,:) real(8), allocatable :: vgc1(:,:),gc1(:) if (gmaxvr < 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) ! number of complex FFT elements for real-complex transforms n1=ngridg(1)/2+1 nfgrz=n1*ngridg(2)*ngridg(3) ! 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(igrzf)) deallocate(igrzf) allocate(igrzf(nfgrz)) if (allocated(vgc)) deallocate(vgc) allocate(vgc(3,ngtot)) if (allocated(gc)) deallocate(gc) allocate(gc(ngtot)) ! allocate local arrays allocate(idx(ngtot),ivg1(3,ngtot)) allocate(vgc1(3,ngtot),gc1(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 ivg1(1,ig)=i1 ivg1(2,ig)=i2 ivg1(3,ig)=i3 ! G-vector in Cartesian coordinates vgc1(:,ig)=v3(:) ! length of each G-vector gc1(ig)=sqrt(v3(1)**2+v3(2)**2+v3(3)**2) end do end do end do ! sort by vector length call sortidx(ngtot,gc1,idx) ! reorder arrays do ig=1,ngtot jg=idx(ig) ivg(1:3,ig)=ivg1(1:3,jg) gc(ig)=gc1(jg) vgc(1:3,ig)=vgc1(1:3,jg) end do ! find the number of vectors with |G| < gmaxvr ngvec=1 do ig=2,ngtot if (gc(ig) > 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 >= 0) then j1=i1 else j1=ngridg(1)+i1 end if if (i2 >= 0) then j2=i2 else j2=ngridg(2)+i2 end if if (i3 >= 0) then j3=i3 else j3=ngridg(3)+i3 end if igfft(ig)=j3*ngridg(2)*ngridg(1)+j2*ngridg(1)+j1+1 ! map from G-vector index to real-complex FFT index and vice versa if (i1 >= 0) then ifg=j3*ngridg(2)*n1+j2*n1+j1+1 igrzf(ifg)=ig end if end do deallocate(idx,ivg1,vgc1,gc1) end subroutine !EOC elk-9.6.8/src/PaxHeaders/wigner3j.f900000644000000000000000000000013214626155520014234 xustar0030 mtime=1717099344.890991266 30 atime=1717099343.043981315 30 ctime=1717099344.890991266 elk-9.6.8/src/wigner3j.f900000644002504400250440000000501714626155520016761 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,sm,t1 ! external functions real(8), external :: factn,factr ! check input variables if ((j1 < 0).or.(j2 < 0).or.(j3 < 0).or.(abs(m1) > j1).or.(abs(m2) > j2) & .or.(abs(m3) > 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 == 0).and.(j2 == 0).and.(j3 == 0)) then wigner3j=1.d0 return end if if ((j1 > 50).or.(j2 > 50).or.(j3 > 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 /= 0).or.(l1 < 0).or.(l2 < 0).or.(l3 < 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) /= 0) then sgn=-1.d0 else sgn=1.d0 end if sm=0.d0 do k=k1,k2 t1=sgn*factr(l1,l1-n2+k)*factr(l2,l2-n1+k)*factr(l3,l3-k) sm=sm+t1/(factn(k)*factn(n1-k)*factn(n2-k)) 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)*factn(j1-m1)*factn(j2-m2) wigner3j=sm*sqrt(t1) end function !EOC elk-9.6.8/src/PaxHeaders/gengvc.f900000644000000000000000000000013214626155520013755 xustar0030 mtime=1717099344.892991277 30 atime=1717099343.046981331 30 ctime=1717099344.892991277 elk-9.6.8/src/gengvc.f900000644002504400250440000000224614626155520016503 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 gengvc use modmain implicit none ! local variables integer ig,i1,i2,i3,j1,j2,j3 real(8) gk2 ! find optimal grid size for |G| < 2 gkmax gk2=2.d0*gkmax+epslat ngdgc(:)=int(gk2*sqrt(avec(1,:)**2+avec(2,:)**2+avec(3,:)**2)/pi)+1 ! find next largest FFT-compatible grid size (radices 2, 3, 5 and 7) call nfftifc(4,ngdgc(1)) call nfftifc(4,ngdgc(2)) call nfftifc(4,ngdgc(3)) ! total number of points in coarse grid ngtc=ngdgc(1)*ngdgc(2)*ngdgc(3) ! find the number of vectors with |G| < 2 gkmax ngvc=ngvec do ig=2,ngvec if (gc(ig) > gk2) then ngvc=ig-1 exit end if end do ! Fourier transform index if (allocated(igfc)) deallocate(igfc) allocate(igfc(ngvc)) do ig=1,ngvc i1=ivg(1,ig) i2=ivg(2,ig) i3=ivg(3,ig) if (i1 >= 0) then j1=i1 else j1=ngdgc(1)+i1 end if if (i2 >= 0) then j2=i2 else j2=ngdgc(2)+i2 end if if (i3 >= 0) then j3=i3 else j3=ngdgc(3)+i3 end if igfc(ig)=j3*ngdgc(2)*ngdgc(1)+j2*ngdgc(1)+j1+1 end do end subroutine elk-9.6.8/src/PaxHeaders/potnucl.f900000644000000000000000000000013214626155520014170 xustar0030 mtime=1717099344.894991288 30 atime=1717099343.048981342 30 ctime=1717099344.894991288 elk-9.6.8/src/potnucl.f900000644002504400250440000000305714626155520016717 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 & r 2 gkmax if (trimvg) call trimrfg(vxcir) ! 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(1:ngtot)=vclir(1:ngtot)+vxcir(1:ngtot) ! generate the effective magnetic fields call genbs call timesec(ts1) timepot=timepot+ts1-ts0 end subroutine !EOC elk-9.6.8/src/PaxHeaders/mtdmin.f900000644000000000000000000000013214626155520013774 xustar0030 mtime=1717099344.909991369 30 atime=1717099343.067981444 30 ctime=1717099344.909991369 elk-9.6.8/src/mtdmin.f900000644002504400250440000000337714626155520016530 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: pure 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) d2,d2m,r,r2,rm,dr,drm real(8) v1,v2,v3,w1,w2,w3 is=1 js=1 drm=1.d8 do i1=-1,1; do i2=-1,1; do i3=-1,1 v1=i1*avec(1,1)+i2*avec(1,2)+i3*avec(1,3) v2=i1*avec(2,1)+i2*avec(2,2)+i3*avec(2,3) v3=i1*avec(3,1)+i2*avec(3,2)+i3*avec(3,3) do ks=1,nspecies do ka=1,natoms(ks) w1=v1+atposc(1,ka,ks) w2=v2+atposc(2,ka,ks) w3=v3+atposc(3,ka,ks) do ls=1,nspecies r=rmt(ks)+rmt(ls) r2=r**2 do la=1,natoms(ls) if ((i1 /= 0).or.(i2 /= 0).or.(i3 /= 0).or. & (ks /= ls).or.(ka /= la)) then d2=(w1-atposc(1,la,ls))**2 & +(w2-atposc(2,la,ls))**2 & +(w3-atposc(3,la,ls))**2 dr=d2-r2 if (dr < drm-epslat) then is=ks js=ls rm=r d2m=d2 drm=dr end if end if end do end do end do end do end do; end do; end do dmin=sqrt(d2m)-rm end subroutine !EOC elk-9.6.8/src/PaxHeaders/rfcopy.f900000644000000000000000000000013114626155520014005 xustar0030 mtime=1717099344.912991385 29 atime=1717099343.07098146 30 ctime=1717099344.912991385 elk-9.6.8/src/rfcopy.f900000644002504400250440000000104514626155520016530 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 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(:) end subroutine elk-9.6.8/src/PaxHeaders/rhomagv.f900000644000000000000000000000013214626155520014147 xustar0030 mtime=1717099344.914991396 30 atime=1717099343.073981476 30 ctime=1717099344.914991396 elk-9.6.8/src/rhomagv.f900000644002504400250440000000632114626155520016673 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2020 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 rhomagv use modmain use modmpi use modomp implicit none ! local variables integer ik,ispn,idm integer is,ias,n,nthd ! automatic arrays integer(omp_lock_kind) lock(natmtot) ! allocatable arrays complex(8), allocatable :: apwalm(:,:,:,:,:),evecfv(:,:,:),evecsv(:,:) ! 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(1:ngtc)=0.d0 do idm=1,ndmag do ias=1,natmtot is=idxis(ias) magmt(1:npcmt(is),ias,idm)=0.d0 end do magir(1:ngtc,idm)=0.d0 end do ! initialise the OpenMP locks do ias=1,natmtot call omp_init_lock(lock(ias)) 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) /= 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 PRIVATE(idm) & !$OMP NUM_THREADS(nthd) !$OMP SECTION ! symmetrise the density call symrf(nrcmt,nrcmti,npcmt,ngdgc,ngtc,ngvc,igfc,npmtmax,rhomt,rhoir) ! convert the muffin-tin density from coarse to fine radial mesh call rfmtctof(rhomt) ! convert the interstitial density from coarse to fine grid call rfirctof(rhoir,rhoir) !$OMP SECTION if (spinpol) then ! symmetrise the magnetisation call symrvf(.true.,ncmag,nrcmt,nrcmti,npcmt,ngdgc,ngtc,ngvc,igfc,npmtmax, & magmt,ngtot,magir) ! convert the muffin-tin magnetisation from coarse to fine radial mesh do idm=1,ndmag call rfmtctof(magmt(:,:,idm)) end do ! convert the interstitial magnetisation from coarse to fine grid do idm=1,ndmag call rfirctof(magir(:,idm),magir(:,idm)) end do end if !$OMP END PARALLEL SECTIONS call freethd(nthd) ! add densities from each process and redistribute if (np_mpi > 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 end subroutine elk-9.6.8/src/PaxHeaders/eveqn.f900000644000000000000000000000013214626155520013622 xustar0030 mtime=1717099344.916991406 30 atime=1717099343.075981487 30 ctime=1717099344.916991406 elk-9.6.8/src/eveqn.f900000644002504400250440000000414714626155520016352 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. !BOP ! !ROUTINE: eveqn subroutine eveqn(ik,evalfv,evecfv,evecsv) ! !USES: use modmain ! !INPUT/OUTPUT PARAMETERS: ! ik : k-point number (in,integer) ! evalfv : first-variational eigenvalues (out,real(nstfv)) ! evecfv : first-variational eigenvectors (out,complex(nmatmax,nstfv)) ! evecsv : second-variational eigenvectors (out,complex(nstsv,nstsv)) ! !DESCRIPTION: ! Solves the first- and second-variational eigenvalue equations. See routines ! {\tt match}, {\tt eveqnfv}, {\tt eveqnss} and {\tt eveqnsv}. ! ! !REVISION HISTORY: ! Created March 2004 (JKD) !EOP !BOC implicit none ! arguments integer, intent(in) :: ik real(8), intent(out) :: evalfv(nstfv,nspnfv) complex(8), intent(out) :: evecfv(nmatmax,nstfv,nspnfv),evecsv(nstsv,nstsv) ! local variables integer jspn ! allocatable arrays complex(8), allocatable :: apwalm(:,:,:,:,:) allocate(apwalm(ngkmax,apwordmax,lmmaxapw,natmtot,nspnfv)) ! loop over first-variational spins (nspnfv=2 for spin-spirals only) do jspn=1,nspnfv ! find the matching coefficients call match(ngk(jspn,ik),vgkc(:,:,jspn,ik),gkc(:,jspn,ik), & sfacgk(:,:,jspn,ik),apwalm(:,:,:,:,jspn)) ! solve the first-variational eigenvalue equation if (tefvit) then ! iteratively call eveqnit(nmat(jspn,ik),ngk(jspn,ik),igkig(:,jspn,ik),vkl(:,ik), & vgkl(:,:,jspn,ik),vgkc(:,:,jspn,ik),apwalm(:,:,:,:,jspn),evalfv(:,jspn), & evecfv(:,:,jspn)) else ! directly call eveqnfv(nmat(jspn,ik),ngk(jspn,ik),igkig(:,jspn,ik),vkc(:,ik), & vgkc(:,:,jspn,ik),apwalm(:,:,:,:,jspn),evalfv(:,jspn),evecfv(:,:,jspn)) end if end do if (spinsprl) then ! solve the spin-spiral second-variational eigenvalue equation call eveqnss(ngk(:,ik),igkig(:,:,ik),apwalm,evalfv,evecfv,evalsv(:,ik),evecsv) else ! solve the second-variational eigenvalue equation call eveqnsv(ngk(1,ik),igkig(:,1,ik),vgkc(:,:,1,ik),apwalm,evalfv,evecfv, & evalsv(:,ik),evecsv) end if deallocate(apwalm) end subroutine !EOC elk-9.6.8/src/PaxHeaders/genffacgp.f900000644000000000000000000000013214626155520014424 xustar0030 mtime=1717099344.918991417 30 atime=1717099343.078981503 30 ctime=1717099344.918991417 elk-9.6.8/src/genffacgp.f900000644002504400250440000000202314626155520017143 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: genffacgp ! !INTERFACE: pure subroutine genffacgp(is,gpc,ffacgp) ! !USES: use modmain ! !INPUT/OUTPUT PARAMETERS: ! is : species number (in,integer) ! gpc : length of G+p-vectors (in,real(ngtot)) ! ffacgp : form factors (out,real(ngtot)) ! !DESCRIPTION: ! Generates the form factors used to determine the smooth characteristic ! function. See {\tt gencfun} for details. ! ! !REVISION HISTORY: ! Created January 2003 (JKD) !EOP !BOC 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) > 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 end subroutine !EOC elk-9.6.8/src/PaxHeaders/unitary.f900000644000000000000000000000013214626155520014177 xustar0030 mtime=1717099344.920991428 30 atime=1717099343.081981519 30 ctime=1717099344.920991428 elk-9.6.8/src/unitary.f900000644002504400250440000000274714626155520016733 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2020 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. !BOP ! !ROUTINE: unitary ! !INTERFACE: subroutine unitary(n,a) ! !INPUT/OUTPUT PARAMETERS: ! n : order of matrix (in,integer) ! a : complex square matrix (inout,complex(n,n)) ! !DESCRIPTION: ! Finds the closest unitary matrix (in terms of the Frobenius norm) to a ! given matrix $A$. Let $U\Sigma V^{\dag}$ be the singular value ! decomposition of $A$. Then it can be shown that $UV^{\dag}$ is the closest ! unitary matrix to $A$. The input matrix is overwritten by this matrix. ! ! !REVISION HISTORY: ! Created January 2020 (JKD) !EOP !BOC implicit none ! arguments integer, intent(in) :: n complex(8), intent(inout) :: a(n,n) ! local variables integer info complex(8), parameter :: zzero=(0.d0,0.d0),zone=(1.d0,0.d0) ! automatic arrays real(8) s(n),rwork(5*n) complex(8) work(3*n) ! allocatable arrays complex(8), allocatable :: u(:,:),vt(:,:) ! perform singular value decomposition on matrix allocate(u(n,n),vt(n,n)) call zgesvd('A','A',n,n,a,n,s,u,n,vt,n,work,3*n,rwork,info) if (info /= 0) then write(*,*) write(*,'("Error(unitary): singular value decomposition failed")') write(*,'(" ZGESVD returned INFO = ",I8)') info write(*,*) stop end if ! multiply the two unitary matrices together and store in the input matrix call zgemm('N','N',n,n,n,zone,u,n,vt,n,zzero,a,n) deallocate(u,vt) end subroutine !EOC elk-9.6.8/src/PaxHeaders/zmdet.f900000644000000000000000000000013214626155520013627 xustar0030 mtime=1717099344.922991439 30 atime=1717099343.084981536 30 ctime=1717099344.922991439 elk-9.6.8/src/zmdet.f900000644002504400250440000000244414626155520016355 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2020 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. !BOP ! !ROUTINE: zmdet ! !INTERFACE: complex(8) function zmdet(n,a) ! !INPUT/OUTPUT PARAMETERS: ! n : order of matrix (in,integer) ! a : complex square matrix (inout,complex(n,n)) ! !DESCRIPTION: ! Calculates the determinant of a complex matrix $A$ by using its $LU$ ! decomposition with partial pivoting. Let $A=PLU$ where $P$ is the ! permutation matrix corresponding to row interchanges, then ! \begin{align*} ! |A|&=|P||L||U| \\ ! &=(-1)^p\prod_{i=1}^n U_{ii}, ! \end{align*} ! where $p$ is the number of interchanges. Note that the input matrix is ! destroyed on exit. ! ! !REVISION HISTORY: ! Created January 2020 (JKD) !EOP !BOC implicit none ! arguments integer, intent(in) :: n complex(8), intent(inout) :: a(n,n) ! local variables integer i,m,info ! automatic arrays integer ipiv(n) ! perform an LU factorisation of the input matrix call zgetrf(n,n,a,n,ipiv,info) ! multiply diagonal elements of U together zmdet=a(1,1) do i=2,n zmdet=zmdet*a(i,i) end do ! determine the sign from the number of row interchanges m=1 do i=1,n if (ipiv(i) /= i) m=-m end do if (m == -1) zmdet=-zmdet end function !EOC elk-9.6.8/src/PaxHeaders/rfmtftoc.f900000644000000000000000000000013214626155520014330 xustar0030 mtime=1717099344.924991449 30 atime=1717099343.087981552 30 ctime=1717099344.924991449 elk-9.6.8/src/rfmtftoc.f900000644002504400250440000000122714626155520017054 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 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,m,n i=1 j=1 m=lmmaxi*lradstp n=lmmaxi-1 do irc=1,nrci rfcmt(i:i+n)=rfmt(j:j+n) i=i+lmmaxi j=j+m end do j=j+(lradstp-1)*(lmmaxo-lmmaxi) m=lmmaxo*lradstp n=lmmaxo-1 do irc=nrci+1,nrc rfcmt(i:i+n)=rfmt(j:j+n) i=i+lmmaxo j=j+m end do end subroutine elk-9.6.8/src/PaxHeaders/zminv.f900000644000000000000000000000013014626155520013645 xustar0029 mtime=1717099344.92699146 30 atime=1717099343.089981563 29 ctime=1717099344.92699146 elk-9.6.8/src/zminv.f900000644002504400250440000000170014626155520016367 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,nts ! automatic arrays integer ipiv(n) complex(8) work(n) ! enable MKL parallelism call holdthd(maxthdmkl,nthd) nts=mkl_set_num_threads_local(nthd) call zgetrf(n,n,a,n,ipiv,info) if (info /= 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 /= 0) then write(*,*) write(*,'("Error(zminv): unable to invert matrix")') write(*,'(" ZGETRI returned INFO = ",I8)') info write(*,*) stop end if nts=mkl_set_num_threads_local(0) call freethd(nthd) end subroutine elk-9.6.8/src/PaxHeaders/symrf.f900000644000000000000000000000013214626155520013644 xustar0030 mtime=1717099344.928991471 30 atime=1717099343.092981579 30 ctime=1717099344.928991471 elk-9.6.8/src/symrf.f900000644002504400250440000000373214626155520016373 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,ngdg,ngt,ngv,igf,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)) ! ngdg : G-vector grid sizes (in,integer(3)) ! ngt : total number of G-vectors (in,integer) ! ngv : number of G-vectors within cut-off (in,integer) ! igf : map from G-vector index to FFT array (in,integer(ngv)) ! 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) :: ngdg(3),ngt,ngv,igf(ngv),ld real(8), intent(inout) :: rfmt(ld,natmtot),rfir(ngt) ! 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(ngdg,ngt,ngv,igf,rfir) !$OMP END PARALLEL SECTIONS call freethd(nthd) end subroutine !EOC elk-9.6.8/src/PaxHeaders/genvmat.f900000644000000000000000000000013214626155520014145 xustar0030 mtime=1717099344.931991487 30 atime=1717099343.095981595 30 ctime=1717099344.931991487 elk-9.6.8/src/genvmat.f900000644002504400250440000000532214626155520016671 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,ispn integer is,ias,nrc,nrci integer n,lp,nthd ! allocatable arrays real(8), allocatable :: vmt1(:,:),vir1(:) complex(8), allocatable :: apwalm(:,:,:,:,:),evecfv(:,:),evecsv(:,:) complex(4), allocatable :: wfmt(:,:,:,:),wfgk(:,:,:) ! allocate local arrays allocate(vmt1(npcmtmax,natmtot),vir1(ngtot)) call holdthd(natmtot,nthd) !$OMP PARALLEL DO DEFAULT(SHARED) & !$OMP PRIVATE(is,nrc,nrci) & !$OMP NUM_THREADS(nthd) do ias=1,natmtot is=idxis(ias) nrc=nrcmt(is) nrci=nrcmti(is) ! convert muffin-tin potential to a coarse radial mesg call rfmtftoc(nrc,nrci,vmt(:,ias),vmt1(:,ias)) ! convert potential to spherical coordinates call rbshtip(nrc,nrci,vmt1(:,ias)) ! multiply by the radial integration weights call rfcmtwr(nrc,nrci,wrcmt(:,is),vmt1(:,ias)) end do !$OMP END PARALLEL DO call freethd(nthd) ! multiply interstitial potential by characteristic function vir1(:)=vir(:)*cfunir(:) ! loop over k-points call holdthd(nkpt/np_mpi,nthd) !$OMP PARALLEL DEFAULT(SHARED) & !$OMP PRIVATE(apwalm,evecfv,evecsv) & !$OMP PRIVATE(wfmt,wfgk,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),wfgk(ngkmax,nspinor,nstsv)) !$OMP DO do ik=1,nkpt ! distribute among MPI processes if (mod(ik-1,np_mpi) /= 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_sp(.false.,.true.,nstsv,[0],ngridg,igfft,ngk(:,ik), & igkig(:,:,ik),apwalm,evecfv,evecsv,wfmt,ngkmax,wfgk) call genvmatk(vmt1,vir1,ngk(:,ik),igkig(:,:,ik),wfmt,ngkmax,wfgk,vmat(:,:,ik)) end do !$OMP END DO deallocate(apwalm,evecfv,evecsv,wfmt,wfgk) !$OMP END PARALLEL call freethd(nthd) ! broadcast matrix elements to every process if (np_mpi > 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) end subroutine elk-9.6.8/src/PaxHeaders/writeeval.f900000644000000000000000000000013214626155520014506 xustar0030 mtime=1717099344.933991498 30 atime=1717099343.098981611 30 ctime=1717099344.933991498 elk-9.6.8/src/writeeval.f900000644002504400250440000000264114626155520017233 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) end subroutine !EOC elk-9.6.8/src/PaxHeaders/mixerifc.f900000644000000000000000000000013214626155520014312 xustar0030 mtime=1717099344.935991509 30 atime=1717099343.101981627 30 ctime=1717099344.935991509 elk-9.6.8/src/mixerifc.f900000644002504400250440000000303614626155520017036 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(*) select case(mtype) case(0) ! linear mixing if (nwork <= 0) then nwork=n return end if call mixlinear(iscl,amixpm(1),n,v,work,dv) case(1) ! adaptive linear mixing if (nwork <= 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 <= 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 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 end subroutine elk-9.6.8/src/PaxHeaders/splinew.f900000644000000000000000000000013214626155520014165 xustar0030 mtime=1717099344.938991525 30 atime=1717099343.104981643 30 ctime=1717099344.938991525 elk-9.6.8/src/splinew.f900000644002504400250440000000267214626155520016716 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 splinew(n,wc,f,cf) implicit none ! arguments integer, intent(in) :: n real(8), intent(in) :: wc(4,3,n),f(n) real(8), intent(out) :: cf(3,n) ! local variables integer i real(8) f1,f2,f3,f4 f1=f(1); f2=f(2); f3=f(3); f4=f(4) cf(1,1)=wc(1,1,1)*f1+wc(2,1,1)*f2+wc(3,1,1)*f3+wc(4,1,1)*f4 cf(2,1)=wc(1,2,1)*f1+wc(2,2,1)*f2+wc(3,2,1)*f3+wc(4,2,1)*f4 cf(3,1)=wc(1,3,1)*f1+wc(2,3,1)*f2+wc(3,3,1)*f3+wc(4,3,1)*f4 cf(1,2)=wc(1,1,2)*f1+wc(2,1,2)*f2+wc(3,1,2)*f3+wc(4,1,2)*f4 cf(2,2)=wc(1,2,2)*f1+wc(2,2,2)*f2+wc(3,2,2)*f3+wc(4,2,2)*f4 cf(3,2)=wc(1,3,2)*f1+wc(2,3,2)*f2+wc(3,3,2)*f3+wc(4,3,2)*f4 !$OMP SIMD LASTPRIVATE(f1,f2,f3,f4) SIMDLEN(8) do i=3,n-2 f1=f(i-1); f2=f(i); f3=f(i+1); f4=f(i+2) cf(1,i)=wc(1,1,i)*f1+wc(2,1,i)*f2+wc(3,1,i)*f3+wc(4,1,i)*f4 cf(2,i)=wc(1,2,i)*f1+wc(2,2,i)*f2+wc(3,2,i)*f3+wc(4,2,i)*f4 cf(3,i)=wc(1,3,i)*f1+wc(2,3,i)*f2+wc(3,3,i)*f3+wc(4,3,i)*f4 end do i=n-1 cf(1,i)=wc(1,1,i)*f1+wc(2,1,i)*f2+wc(3,1,i)*f3+wc(4,1,i)*f4 cf(2,i)=wc(1,2,i)*f1+wc(2,2,i)*f2+wc(3,2,i)*f3+wc(4,2,i)*f4 cf(3,i)=wc(1,3,i)*f1+wc(2,3,i)*f2+wc(3,3,i)*f3+wc(4,3,i)*f4 cf(1,n)=wc(1,1,n)*f1+wc(2,1,n)*f2+wc(3,1,n)*f3+wc(4,1,n)*f4 cf(2,n)=wc(1,2,n)*f1+wc(2,2,n)*f2+wc(3,2,n)*f3+wc(4,2,n)*f4 cf(3,n)=wc(1,3,n)*f1+wc(2,3,n)*f2+wc(3,3,n)*f3+wc(4,3,n)*f4 end subroutine elk-9.6.8/src/PaxHeaders/nfftifc.f900000644000000000000000000000013214626155520014123 xustar0030 mtime=1717099344.940991536 30 atime=1717099343.106981654 30 ctime=1717099344.940991536 elk-9.6.8/src/nfftifc.f900000644002504400250440000000232714626155520016651 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(np,n) ! !INPUT/OUTPUT PARAMETERS: ! np : number of allowed primes (in,integer) ! 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(in) :: np integer, intent(inout) :: n ! local variables integer i,j integer, parameter :: p(10)=[2,3,5,7,11,13,17,19,23,29] if ((np < 1).or.(np > 10)) then write(*,*) write(*,'("Error(nfftifc): np out of range : ",I8)') np write(*,*) stop end if if (n <= 0) then write(*,*) write(*,'("Error(nfftifc): n <= 0 : ",I8)') n write(*,*) stop end if do i=n do j=1,np do while(mod(i,p(j)) == 0) i=i/p(j) end do end do if (i == 1) return n=n+1 end do end subroutine !EOC elk-9.6.8/src/PaxHeaders/batchdv.f900000644000000000000000000000013114626155520014116 xustar0030 mtime=1717099344.942991546 29 atime=1717099343.10998167 30 ctime=1717099344.942991546 elk-9.6.8/src/batchdv.f900000644002504400250440000000431514626155520016644 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2022 J. K. Dewhurst, S. Sharma and E. K. U. Gross. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. subroutine batchdv use modmain use moddftu use modvars use modmpi implicit none ! no increment for first task if (itask <= 1) return ! only increment for ground-state tasks if (all(task /= [0,1,2,3])) return ! increment selected variables if (any(dngridk(:) /= 0)) then ngridk(:)=ngridk(:)+dngridk(:) if (mp_mpi) write(*,'("Info(batchdv): incremented ngridk")') end if if (dlmaxapw /= 0) then lmaxapw=lmaxapw+dlmaxapw if (mp_mpi) write(*,'("Info(batchdv): incremented lmaxapw")') end if if (dlmaxo /= 0) then lmaxo=lmaxo+dlmaxo if (mp_mpi) write(*,'("Info(batchdv): incremented lmaxo")') end if if (any(davec(:,:) /= 0.d0)) then avec(:,:)=avec(:,:)+davec(:,:) if (mp_mpi) write(*,'("Info(batchdv): incremented avec")') end if if (any(datposl(:,:,:) /= 0.d0)) then atposl(:,:,:)=atposl(:,:,:)+datposl(:,:,:) if (mp_mpi) write(*,'("Info(batchdv): incremented atposl")') end if if (drgkmax /= 0.d0) then rgkmax=rgkmax+drgkmax if (mp_mpi) write(*,'("Info(batchdv): incremented rgkmax")') end if if (dgmaxvr /= 0.d0) then gmaxvr=gmaxvr+dgmaxvr if (mp_mpi) write(*,'("Info(batchdv): incremented gmaxvr")') end if if (dnempty0 /= 0.d0) then nempty0=nempty0+dnempty0 if (mp_mpi) write(*,'("Info(batchdv): incremented nempty")') end if if (dchgexs /= 0.d0) then chgexs=chgexs+dchgexs if (mp_mpi) write(*,'("Info(batchdv): incremented chgexs")') end if if (dsxcscf /= 0.d0) then sxcscf=sxcscf+dsxcscf if (mp_mpi) write(*,'("Info(batchdv): incremented sxcscf")') end if if (dnrmtscf /= 0.d0) then nrmtscf=nrmtscf+dnrmtscf if (mp_mpi) write(*,'("Info(batchdv): incremented nrmtscf")') end if if (any(dudufix(:) /= 0.d0)) then udufix(:)=udufix(:)+dudufix(:) if (mp_mpi) write(*,'("Info(batchdv): incremented udufix")') end if if (any(dmomfix(:) /= 0.d0)) then momfix(:)=momfix(:)+dmomfix(:) if (mp_mpi) write(*,'("Info(batchdv): incremented momfix")') end if if (any(dbfieldc0(:) /= 0.d0)) then bfieldc0(:)=bfieldc0(:)+dbfieldc0(:) if (mp_mpi) write(*,'("Info(batchdv): incremented dbfieldc0")') end if end subroutine elk-9.6.8/src/PaxHeaders/readevalsv.f900000644000000000000000000000013214626155520014640 xustar0030 mtime=1717099344.944991557 30 atime=1717099343.112981686 30 ctime=1717099344.944991557 elk-9.6.8/src/readevalsv.f900000644002504400250440000000064714626155520017371 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2022 J. K. Dewhurst, S. Sharma and E. K. U. Gross. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. subroutine readevalsv use modmain implicit none ! local variables integer ik ! get the second-variational eigenvalues from file for all k-points do ik=1,nkpt call getevalsv(filext,ik,vkl(:,ik),evalsv(:,ik)) end do end subroutine elk-9.6.8/src/PaxHeaders/readoccsv.f900000644000000000000000000000013214626155520014455 xustar0030 mtime=1717099344.946991568 30 atime=1717099343.115981703 30 ctime=1717099344.946991568 elk-9.6.8/src/readoccsv.f900000644002504400250440000000063014626155520017176 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2022 J. K. Dewhurst, S. Sharma and E. K. U. Gross. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. subroutine readoccsv use modmain implicit none ! local variables integer ik ! get the occupation numbers from file for all k-points do ik=1,nkpt call getoccsv(filext,ik,vkl(:,ik),occsv(:,ik)) end do end subroutine elk-9.6.8/src/PaxHeaders/z2mm.f900000644000000000000000000000013214626155520013371 xustar0030 mtime=1717099344.948991579 30 atime=1717099343.117981713 30 ctime=1717099344.948991579 elk-9.6.8/src/z2mm.f900000644002504400250440000000155314626155520016117 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) end subroutine !EOC elk-9.6.8/src/PaxHeaders/z2mctm.f900000644000000000000000000000013114626155520013717 xustar0030 mtime=1717099344.950991589 29 atime=1717099343.12098173 30 ctime=1717099344.950991589 elk-9.6.8/src/z2mctm.f900000644002504400250440000000171514626155520016446 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) end subroutine !EOC elk-9.6.8/src/PaxHeaders/z2mmct.f900000644000000000000000000000012614626155520013723 xustar0028 mtime=1717099344.9529916 30 atime=1717099343.123981746 28 ctime=1717099344.9529916 elk-9.6.8/src/z2mmct.f900000644002504400250440000000170314626155520016443 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)) end subroutine !EOC elk-9.6.8/src/PaxHeaders/zmctmu.f900000644000000000000000000000013214626155520014023 xustar0030 mtime=1717099344.954991611 30 atime=1717099343.126981762 30 ctime=1717099344.954991611 elk-9.6.8/src/zmctmu.f900000644002504400250440000000142214626155520016544 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(l,n,a,b,ld,c) use modomp implicit none ! arguments integer, intent(in) :: l,n complex(8), intent(in) :: a(l,n),b(l,n) integer, intent(in) :: ld complex(8), intent(inout) :: c(ld,*) ! local variables integer i,j,nthd ! external functions real(8), external :: ddot complex(8), external :: zdotc call holdthd(n,nthd) !$OMP PARALLEL DO DEFAULT(SHARED) & !$OMP PRIVATE(i) & !$OMP NUM_THREADS(nthd) do j=1,n do i=1,j-1 c(i,j)=c(i,j)+zdotc(l,a(1,i),1,b(1,j),1) end do c(j,j)=c(j,j)+ddot(2*l,a(1,j),1,b(1,j),1) end do !$OMP END PARALLEL DO call freethd(nthd) end subroutine elk-9.6.8/src/PaxHeaders/zmctm.f900000644000000000000000000000013214626155520013636 xustar0030 mtime=1717099344.956991622 30 atime=1717099343.128981773 30 ctime=1717099344.956991622 elk-9.6.8/src/zmctm.f900000644002504400250440000000131514626155520016360 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(inout) :: c(ld,*) ! local variables integer i,j,nthd ! external functions complex(8), external :: zdotc call holdthd(n,nthd) !$OMP PARALLEL DO DEFAULT(SHARED) & !$OMP PRIVATE(i) & !$OMP NUM_THREADS(nthd) do j=1,n do i=1,m c(i,j)=c(i,j)+zdotc(l,a(:,i),1,b(:,j),1) end do end do !$OMP END PARALLEL DO call freethd(nthd) end subroutine elk-9.6.8/src/PaxHeaders/rzmctmu.f900000644000000000000000000000013214626155520014205 xustar0030 mtime=1717099344.958991633 30 atime=1717099343.131981789 30 ctime=1717099344.958991633 elk-9.6.8/src/rzmctmu.f900000644002504400250440000000125214626155520016727 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2022 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 rzmctmu(l,n,a,b,ld,c) use modomp implicit none ! arguments integer, intent(in) :: l,n ! pass in complex arrays as real real(8), intent(in) :: a(2*l,n),b(2*l,n) integer, intent(in) :: ld complex(8), intent(inout) :: c(ld,*) ! local variables integer i,j,nthd call holdthd(n,nthd) !$OMP PARALLEL DO DEFAULT(SHARED) & !$OMP PRIVATE(i) & !$OMP NUM_THREADS(nthd) do j=1,n do i=1,j c(i,j)=c(i,j)+dot_product(a(:,i),b(:,j)) end do end do !$OMP END PARALLEL DO call freethd(nthd) end subroutine elk-9.6.8/src/PaxHeaders/moldyn.f900000644000000000000000000000013214626155520014006 xustar0030 mtime=1717099344.960991643 30 atime=1717099343.134981805 30 ctime=1717099344.960991643 elk-9.6.8/src/moldyn.f900000644002504400250440000000553414626155520016537 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2023 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 moldyn use modmain use modtddft use modmpi use modomp use moddelf implicit none ! local variables integer is,ia ! initialise universal variables call init0 ! store original parameters atposl0(:,:,:)=atposl(:,:,:) atposc0(:,:,:)=atposc(:,:,:) tshift0=tshift tforce0=tforce tfav00=tfav0 trimvg0=trimvg ! no shifting of atomic basis allowed tshift=.false. ! calculate atomic forces tforce=.true. ! average force can be non-zero (allow for translation of atomic basis) tfav0=.false. ! trim the Fourier components of the exchange-correlation potential trimvg=.true. ! generate the time step grid call gentimes if (task == 420) then ! calculation starts at t=0 tdt0=.true. else ! calculation restarts tdt0=.false. end if if (tdt0) then ! start from t=0 itimes0=1 else ! restart if required call readtimes itimes0=itimes0+ntsforce trdatdv=.true. end if if (trdatdv) then ! read the atomic displacements and velocities call readatdvc else ! set the displacements and velocities to zero atdvc(:,:,:,:)=0.d0 end if trdstate=.false. if (tdt0.and.mp_mpi) then call delfile('TOTENERGY_TD.OUT') if (spinpol) then call delfile('MOMENT_TD.OUT') call delfile('MOMENTM_TD.OUT') call delfile('MOMENTMT_TD.OUT') call delfile('MOMENTIR_TD.OUT') end if call delfile('FORCETOT_TD.OUT') call delfile('FORCEMAX_TD.OUT') call delfile('ATDISPL_TD.OUT') call delfile('ATDISPC_TD.OUT') end if do itimes=itimes0,ntimes-1,ntsforce if (mp_mpi) then write(*,'("Info(moldyn): time step ",I8," of ",I8,", t = ",G18.10)') & itimes,ntimes,times(itimes) end if ! reset the OpenMP thread variables call omp_reset ! add the displacements to the atomic positions do is=1,nspecies do ia=1,natoms(is) atposc(:,ia,is)=atposc0(:,ia,is)+atdvc(:,0,ia,is) call r3mv(ainv,atposc(:,ia,is),atposl(:,ia,is)) end do end do ! calculate the ground-state and atomic forces call gndstate ! subsequent calculations will read in the potential from STATE.OUT trdstate=.true. ! time step the atomic positions within the adiabatic approximation call atptstep(forcetot) if (mp_mpi) then ! write the time step to file call writetimes ! write time-dependent total energy call writetdengy ! write spin moments if required if (spinpol) call writemomtd ! write time-dependent atomic forces call writetdforces ! write the time-dependent atomic displacements call writeatdisp ! write the XCrysden animation file crystal.axsf call writeaxsf end if if (tstop) exit end do ! restore original input parameters atposl(:,:,:)=atposl0(:,:,:) tshift=tshift0 tforce=tforce0 tfav0=tfav00 trimvg=trimvg0 ! synchronise MPI processes call mpi_barrier(mpicom,ierror) end subroutine elk-9.6.8/src/PaxHeaders/gencrho.f900000644000000000000000000000013214626155520014131 xustar0030 mtime=1717099344.962991654 30 atime=1717099343.137981821 30 ctime=1717099344.962991654 elk-9.6.8/src/gencrho.f900000644002504400250440000000357114626155520016661 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2023 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 gencrho(tsh,tspc,ngt,wfmt1,wfir1,wfmt2,wfir2,crhomt,crhoir) use modmain implicit none ! arguments logical, intent(in) :: tsh,tspc integer, intent(in) :: ngt complex(4), intent(in) :: wfmt1(npcmtmax,natmtot,*),wfir1(ngt,*) complex(4), intent(in) :: wfmt2(npcmtmax,natmtot,*),wfir2(ngt,*) complex(4), intent(out) :: crhomt(npcmtmax,natmtot),crhoir(ngt) ! local variables integer is,ias ! muffin-tin part do ias=1,natmtot is=idxis(ias) if (tsh) then if (tspc.and.spinpol) then ! contract over spin call crho2(npcmt(is),wfmt1(:,ias,1),wfmt1(:,ias,2),wfmt2(:,ias,1), & wfmt2(:,ias,2),crhomt(:,ias)) else ! no spin contraction call crho1(npcmt(is),wfmt1(:,ias,1),wfmt2(:,ias,1),crhomt(:,ias)) end if ! convert to spherical harmonics call cfshtip(nrcmt(is),nrcmti(is),crhomt(:,ias)) else if (tspc.and.spinpol) then call crho2(npcmt(is),wfmt1(:,ias,1),wfmt1(:,ias,2),wfmt2(:,ias,1), & wfmt2(:,ias,2),crhomt(:,ias)) else call crho1(npcmt(is),wfmt1(:,ias,1),wfmt2(:,ias,1),crhomt(:,ias)) end if end if end do ! interstitial part if (tspc.and.spinpol) then call crho2(ngt,wfir1,wfir1(:,2),wfir2,wfir2(:,2),crhoir) else call crho1(ngt,wfir1,wfir2,crhoir) end if return contains pure subroutine crho1(n,wf1,wf2,crho) implicit none integer, intent(in) :: n complex(4), intent(in) :: wf1(n),wf2(n) complex(4), intent(out) :: crho(n) crho(1:n)=conjg(wf1(1:n))*wf2(1:n) end subroutine pure subroutine crho2(n,wf11,wf12,wf21,wf22,crho) implicit none integer, intent(in) :: n complex(4), intent(in) :: wf11(n),wf12(n),wf21(n),wf22(n) complex(4), intent(out) :: crho(n) crho(1:n)=conjg(wf11(1:n))*wf21(1:n)+conjg(wf12(1:n))*wf22(1:n) end subroutine end subroutine elk-9.6.8/src/PaxHeaders/cpotclmt.f900000644000000000000000000000013214626155520014331 xustar0030 mtime=1717099344.964991665 30 atime=1717099343.139981832 30 ctime=1717099344.964991665 elk-9.6.8/src/cpotclmt.f900000644002504400250440000000432014626155520017052 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2023 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. pure subroutine cpotclmt(nr,nri,ld,rl,wpr,crhomt,cvclmt) use modmain integer, intent(in) :: nr,nri,ld real(8), intent(in) :: rl(ld,-lmaxo-1:lmaxo+2),wpr(4,nr) complex(4), intent(in) :: crhomt(*) complex(4), intent(out) :: cvclmt(*) ! local variables integer nro,iro,ir integer l,l1,l2,l3 integer lm,npi,i0,i real(8) t0 complex(4) c1 ! automatic arrays complex(4) f1(nr),f2(nr),f3(nr) nro=nr-nri iro=nri+1 npi=lmmaxi*nri do l=0,lmaxi l1=l+2 l2=-l+1 l3=-l-1 t0=fourpi/dble(2*l+1) do lm=l**2+1,(l+1)**2 do ir=1,nri i=lm+lmmaxi*(ir-1) f1(ir)=rl(ir,l1)*crhomt(i) f2(ir)=rl(ir,l2)*crhomt(i) end do i0=lm+npi do ir=iro,nr i=i0+lmmaxo*(ir-iro) f1(ir)=rl(ir,l1)*crhomt(i) f2(ir)=rl(ir,l2)*crhomt(i) end do call splintwp(nr,wpr,f1,f3) call splintwp(nr,wpr,f2,f1) c1=f1(nr) do ir=1,nri i=lm+lmmaxi*(ir-1) cvclmt(i)=t0*(rl(ir,l3)*f3(ir)+rl(ir,l)*(c1-f1(ir))) end do do ir=iro,nr i=i0+lmmaxo*(ir-iro) cvclmt(i)=t0*(rl(ir,l3)*f3(ir)+rl(ir,l)*(c1-f1(ir))) 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 lm=l**2+1,(l+1)**2 i0=lm+npi do ir=iro,nr i=i0+lmmaxo*(ir-iro) f1(ir)=rl(ir,l1)*crhomt(i) f2(ir)=rl(ir,l2)*crhomt(i) end do call splintwp(nro,wpr(1,iro),f1(iro),f3(iro)) call splintwp(nro,wpr(1,iro),f2(iro),f1(iro)) c1=f1(nr) do ir=iro,nr i=i0+lmmaxo*(ir-iro) cvclmt(i)=t0*(rl(ir,l3)*f3(ir)+rl(ir,l)*(c1-f1(ir))) end do end do end do return contains pure subroutine splintwp(n,wp,f,g) implicit none ! arguments integer, intent(in) :: n real(8), intent(in) :: wp(*) complex(4), intent(in) :: f(n) complex(4), intent(out) :: g(n) ! local variables integer i,j complex(8) zsm g(1)=0.e0 zsm=wp(5)*f(1)+wp(6)*f(2)+wp(7)*f(3)+wp(8)*f(4) g(2)=zsm do i=2,n-2 j=i*4+1 zsm=zsm+wp(j)*f(i-1)+wp(j+1)*f(i)+wp(j+2)*f(i+1)+wp(j+3)*f(i+2) g(i+1)=zsm end do j=(n-1)*4+1 g(n)=zsm+wp(j)*f(n-3)+wp(j+1)*f(n-2)+wp(j+2)*f(n-1)+wp(j+3)*f(n) end subroutine end subroutine elk-9.6.8/src/PaxHeaders/rfmtsm.f900000644000000000000000000000013214626155520014014 xustar0030 mtime=1717099344.966991676 30 atime=1717099343.142981848 30 ctime=1717099344.966991676 elk-9.6.8/src/rfmtsm.f900000644002504400250440000000155014626155520016537 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,lm integer i1,j0,j1 ! automatic arrays real(8) fr(nr) if (m <= 0) return nro=nr-nri iro=nri+1 do lm=1,lmmaxi i1=lmmaxi*(nri-1)+lm j0=i1+lmmaxi j1=lmmaxo*(nr-iro)+j0 fr(1:nri)=rfmt(lm:i1:lmmaxi) fr(iro:nr)=rfmt(j0:j1:lmmaxo) call fsmooth(m,nr,fr) rfmt(lm:i1:lmmaxi)=fr(1:nri) rfmt(j0:j1:lmmaxo)=fr(iro:nr) end do do lm=lmmaxi+1,lmmaxo j0=lmmaxi*nri+lm j1=lmmaxo*(nr-iro)+j0 fr(iro:nr)=rfmt(j0:j1:lmmaxo) call fsmooth(m,nro,fr(iro)) rfmt(j0:j1:lmmaxo)=fr(iro:nr) end do end subroutine elk-9.6.8/src/PaxHeaders/rbshtip.f900000644000000000000000000000013214626155520014157 xustar0030 mtime=1717099344.968991686 30 atime=1717099343.145981864 30 ctime=1717099344.968991686 elk-9.6.8/src/rbshtip.f900000644002504400250440000000147114626155520016704 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2023 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 rbshtip(nr,nri,rfmt) use modmain implicit none ! arguments integer, intent(in) :: nr,nri real(8), intent(inout) :: rfmt(*) ! local variables integer nro,npi,npo,i ! automatic arrays real(8) f(max(lmmaxi*nri,lmmaxo*(nr-nri))) ! transform the inner part of the muffin-tin function in-place npi=lmmaxi*nri f(1:npi)=rfmt(1:npi) call dgemm('N','N',lmmaxi,nri,lmmaxi,1.d0,rbshti,lmmaxi,f,lmmaxi,0.d0,rfmt, & lmmaxi) ! transform the outer part of the muffin-tin function in-place nro=nr-nri npo=lmmaxo*nro i=npi+1 f(1:npo)=rfmt(i:npi+npo) call dgemm('N','N',lmmaxo,nro,lmmaxo,1.d0,rbshto,lmmaxo,f,lmmaxo,0.d0,rfmt(i), & lmmaxo) end subroutine elk-9.6.8/src/PaxHeaders/rfshtip.f900000644000000000000000000000013214626155520014163 xustar0030 mtime=1717099344.970991697 30 atime=1717099343.147981875 30 ctime=1717099344.970991697 elk-9.6.8/src/rfshtip.f900000644002504400250440000000147114626155520016710 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2023 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 rfshtip(nr,nri,rfmt) use modmain implicit none ! arguments integer, intent(in) :: nr,nri real(8), intent(inout) :: rfmt(*) ! local variables integer nro,npi,npo,i ! automatic arrays real(8) f(max(lmmaxi*nri,lmmaxo*(nr-nri))) ! transform the inner part of the muffin-tin function in-place npi=lmmaxi*nri f(1:npi)=rfmt(1:npi) call dgemm('N','N',lmmaxi,nri,lmmaxi,1.d0,rfshti,lmmaxi,f,lmmaxi,0.d0,rfmt, & lmmaxi) ! transform the outer part of the muffin-tin function in-place nro=nr-nri npo=lmmaxo*nro i=npi+1 f(1:npo)=rfmt(i:npi+npo) call dgemm('N','N',lmmaxo,nro,lmmaxo,1.d0,rfshto,lmmaxo,f,lmmaxo,0.d0,rfmt(i), & lmmaxo) end subroutine elk-9.6.8/src/PaxHeaders/zbshtip.f900000644000000000000000000000013214626155520014167 xustar0030 mtime=1717099344.972991708 30 atime=1717099343.150981891 30 ctime=1717099344.972991708 elk-9.6.8/src/zbshtip.f900000644002504400250440000000150014626155520016705 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2023 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 zbshtip(nr,nri,zfmt) use modmain implicit none ! arguments integer, intent(in) :: nr,nri complex(8), intent(inout) :: zfmt(*) ! local variables integer nro,npi,npo,i ! automatic arrays complex(8) f(max(lmmaxi*nri,lmmaxo*(nr-nri))) ! transform the inner part of the muffin-tin function in-place npi=lmmaxi*nri f(1:npi)=zfmt(1:npi) call zgemm('N','N',lmmaxi,nri,lmmaxi,zone,zbshti,lmmaxi,f,lmmaxi,zzero,zfmt, & lmmaxi) ! transform the outer part of the muffin-tin function in-place nro=nr-nri npo=lmmaxo*nro i=npi+1 f(1:npo)=zfmt(i:npi+npo) call zgemm('N','N',lmmaxo,nro,lmmaxo,zone,zbshto,lmmaxo,f,lmmaxo,zzero,zfmt(i),& lmmaxo) end subroutine elk-9.6.8/src/PaxHeaders/zfshtip.f900000644000000000000000000000013214626155520014173 xustar0030 mtime=1717099344.974991719 30 atime=1717099343.153981907 30 ctime=1717099344.974991719 elk-9.6.8/src/zfshtip.f900000644002504400250440000000150014626155520016711 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2023 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 zfshtip(nr,nri,zfmt) use modmain implicit none ! arguments integer, intent(in) :: nr,nri complex(8), intent(inout) :: zfmt(*) ! local variables integer nro,npi,npo,i ! automatic arrays complex(8) f(max(lmmaxi*nri,lmmaxo*(nr-nri))) ! transform the inner part of the muffin-tin function in-place npi=lmmaxi*nri f(1:npi)=zfmt(1:npi) call zgemm('N','N',lmmaxi,nri,lmmaxi,zone,zfshti,lmmaxi,f,lmmaxi,zzero,zfmt, & lmmaxi) ! transform the outer part of the muffin-tin function in-place nro=nr-nri npo=lmmaxo*nro i=npi+1 f(1:npo)=zfmt(i:npi+npo) call zgemm('N','N',lmmaxo,nro,lmmaxo,zone,zfshto,lmmaxo,f,lmmaxo,zzero,zfmt(i),& lmmaxo) end subroutine elk-9.6.8/src/PaxHeaders/cbsht.f900000644000000000000000000000013014626155520013605 xustar0029 mtime=1717099344.97699173 30 atime=1717099343.156981924 29 ctime=1717099344.97699173 elk-9.6.8/src/cbsht.f900000644002504400250440000000130714626155520016332 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2021 J. K. Dewhurst, S. Sharma and E. K. U. Gross. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. subroutine cbsht(nr,nri,cfmt1,cfmt2) use modmain implicit none ! arguments integer, intent(in) :: nr,nri complex(4), intent(in) :: cfmt1(*) complex(4), intent(out) :: cfmt2(*) ! local variables integer i ! transform the inner part of the muffin-tin call cgemm('N','N',lmmaxi,nri,lmmaxi,cone,cbshti,lmmaxi,cfmt1,lmmaxi,czero, & cfmt2,lmmaxi) ! transform the outer part of the muffin-tin i=lmmaxi*nri+1 call cgemm('N','N',lmmaxo,nr-nri,lmmaxo,cone,cbshto,lmmaxo,cfmt1(i),lmmaxo, & czero,cfmt2(i),lmmaxo) end subroutine elk-9.6.8/src/PaxHeaders/cbshtip.f900000644000000000000000000000012714626155520014144 xustar0029 mtime=1717099344.97899174 29 atime=1717099343.15998194 29 ctime=1717099344.97899174 elk-9.6.8/src/cbshtip.f900000644002504400250440000000150014626155520016656 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2023 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 cbshtip(nr,nri,cfmt) use modmain implicit none ! arguments integer, intent(in) :: nr,nri complex(4), intent(inout) :: cfmt(*) ! local variables integer nro,npi,npo,i ! automatic arrays complex(4) f(max(lmmaxi*nri,lmmaxo*(nr-nri))) ! transform the inner part of the muffin-tin function in-place npi=lmmaxi*nri f(1:npi)=cfmt(1:npi) call cgemm('N','N',lmmaxi,nri,lmmaxi,cone,cbshti,lmmaxi,f,lmmaxi,czero,cfmt, & lmmaxi) ! transform the outer part of the muffin-tin function in-place nro=nr-nri npo=lmmaxo*nro i=npi+1 f(1:npo)=cfmt(i:npi+npo) call cgemm('N','N',lmmaxo,nro,lmmaxo,cone,cbshto,lmmaxo,f,lmmaxo,czero,cfmt(i),& lmmaxo) end subroutine elk-9.6.8/src/PaxHeaders/cfshtip.f900000644000000000000000000000013214626155520014144 xustar0030 mtime=1717099344.980991751 30 atime=1717099343.162981956 30 ctime=1717099344.980991751 elk-9.6.8/src/cfshtip.f900000644002504400250440000000150014626155520016662 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2023 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 cfshtip(nr,nri,cfmt) use modmain implicit none ! arguments integer, intent(in) :: nr,nri complex(4), intent(inout) :: cfmt(*) ! local variables integer nro,npi,npo,i ! automatic arrays complex(4) f(max(lmmaxi*nri,lmmaxo*(nr-nri))) ! transform the inner part of the muffin-tin function in-place npi=lmmaxi*nri f(1:npi)=cfmt(1:npi) call cgemm('N','N',lmmaxi,nri,lmmaxi,cone,cfshti,lmmaxi,f,lmmaxi,czero,cfmt, & lmmaxi) ! transform the outer part of the muffin-tin function in-place nro=nr-nri npo=lmmaxo*nro i=npi+1 f(1:npo)=cfmt(i:npi+npo) call cgemm('N','N',lmmaxo,nro,lmmaxo,cone,cfshto,lmmaxo,f,lmmaxo,czero,cfmt(i),& lmmaxo) end subroutine elk-9.6.8/src/PaxHeaders/gencvclmt.f900000644000000000000000000000013214626155520014466 xustar0030 mtime=1717099344.982991762 30 atime=1717099343.164981967 30 ctime=1717099344.982991762 elk-9.6.8/src/gencvclmt.f900000644002504400250440000000162214626155520017211 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2023 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 gencvclmt(nr,nri,ld1,rl,wpr,ld2,crhomt,cvclmt) 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(4), intent(in) :: crhomt(ld2,natmtot) complex(4), intent(out) :: cvclmt(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 cpotclmt(nr(is),nri(is),ld1,rl(:,:,is),wpr(:,:,is),crhomt(:,ias), & cvclmt(:,ias)) end do !$OMP END PARALLEL DO call freethd(nthd) end subroutine elk-9.6.8/src/PaxHeaders/zcfmtinp.f900000644000000000000000000000013214626155520014336 xustar0030 mtime=1717099344.984991773 30 atime=1717099343.167981983 30 ctime=1717099344.984991773 elk-9.6.8/src/zcfmtinp.f900000644002504400250440000000175514626155520017070 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2023 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. pure complex(8) function zcfmtinp(nr,nri,wr,cfmt1,cfmt2) use modmain implicit none ! arguments integer, intent(in) :: nr,nri real(8), intent(in) :: wr(nr) complex(4), intent(in) :: cfmt1(*),cfmt2(*) ! local variables integer n,ir,i ! compute the dot-products for each radial point and integrate over r zcfmtinp=0.d0 if (lmaxi == 1) then do ir=1,nri i=4*(ir-1)+1 zcfmtinp=zcfmtinp+wr(ir) & *(conjg(cfmt1(i))*cfmt2(i) & +conjg(cfmt1(i+1))*cfmt2(i+1) & +conjg(cfmt1(i+2))*cfmt2(i+2) & +conjg(cfmt1(i+3))*cfmt2(i+3)) end do i=4*nri+1 else i=1 n=lmmaxi-1 do ir=1,nri zcfmtinp=zcfmtinp+wr(ir)*dot_product(cfmt1(i:i+n),cfmt2(i:i+n)) i=i+lmmaxi end do end if n=lmmaxo-1 do ir=nri+1,nr zcfmtinp=zcfmtinp+wr(ir)*dot_product(cfmt1(i:i+n),cfmt2(i:i+n)) i=i+lmmaxo end do end function elk-9.6.8/src/PaxHeaders/zcfinp.f900000644000000000000000000000013214626155520013775 xustar0030 mtime=1717099344.986991784 30 atime=1717099343.170981999 30 ctime=1717099344.986991784 elk-9.6.8/src/zcfinp.f900000644002504400250440000000215014626155520016515 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2023 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. complex(8) function zcfinp(cfmt1,cfir1,cfmt2,cfir2) use modmain use modomp implicit none ! arguments complex(4), intent(in) :: cfmt1(npcmtmax,natmtot),cfir1(ngtc) complex(4), intent(in) :: cfmt2(npcmtmax,natmtot),cfir2(ngtc) ! local variables integer is,ias,nthd complex(4) c1 ! external functions complex(4), external :: cdotc complex(8), external :: zcfmtinp zcfinp=0.d0 call holdthd(natmtot+1,nthd) !$OMP PARALLEL DEFAULT(SHARED) & !$OMP PRIVATE(is,c1) REDUCTION(+:zcfinp) & !$OMP NUM_THREADS(nthd) !$OMP DO do ias=1,natmtot is=idxis(ias) ! muffin-tin contribution zcfinp=zcfinp+zcfmtinp(nrcmt(is),nrcmti(is),wrcmt(:,is),cfmt1(:,ias), & cfmt2(:,ias)) end do !$OMP END DO NOWAIT ! interstitial contribution (requires that one of the functions has been ! multiplied by the characteristic function) !$OMP SINGLE c1=cdotc(ngtc,cfir1,1,cfir2,1) zcfinp=zcfinp+c1*omega/dble(ngtc) !$OMP END SINGLE !$OMP END PARALLEL call freethd(nthd) end function elk-9.6.8/src/PaxHeaders/ggamt_3.f900000644000000000000000000000013214626155520014025 xustar0030 mtime=1717099344.988991794 30 atime=1717099343.173982015 30 ctime=1717099344.988991794 elk-9.6.8/src/ggamt_3.f900000644002504400250440000000204514626155520016550 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2023 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 ggamt_3(is,np,vx,vc,wx,wc,dtdg2r) use modmain implicit none ! arguments integer, intent(in) :: is,np real(8), intent(inout) :: vx(np),vc(np) real(8), intent(in) :: wx(np),wc(np) real(8), intent(in) :: dtdg2r(np) ! local variables integer nr,nri ! automatic arrays real(8) rfmt1(np),rfmt2(np) nr=nrmt(is) nri=nrmti(is) !------------------! ! exchange ! !------------------! rfmt1(1:np)=wx(1:np)*dtdg2r(1:np) call rfsht(nr,nri,rfmt1,rfmt2) call grad2rfmt(nr,nri,rlmt(:,-1,is),rlmt(:,-2,is),wcrmt(:,:,is),rfmt2,rfmt1) call rbsht(nr,nri,rfmt1,rfmt2) vx(1:np)=vx(1:np)+rfmt2(1:np) !---------------------! ! correlation ! !---------------------! rfmt1(1:np)=wc(1:np)*dtdg2r(1:np) call rfsht(nr,nri,rfmt1,rfmt2) call grad2rfmt(nr,nri,rlmt(:,-1,is),rlmt(:,-2,is),wcrmt(:,:,is),rfmt2,rfmt1) call rbsht(nr,nri,rfmt1,rfmt2) vc(1:np)=vc(1:np)+rfmt2(1:np) end subroutine elk-9.6.8/src/PaxHeaders/ggair_3.f900000644000000000000000000000013214626155520014017 xustar0030 mtime=1717099344.990991805 30 atime=1717099343.175982026 30 ctime=1717099344.990991805 elk-9.6.8/src/ggair_3.f900000644002504400250440000000230614626155520016542 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2023 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 ggair_3(vx,vc,wx,wc,dtdg2r) use modmain implicit none ! arguments real(8), intent(inout) :: vx(ngtot),vc(ngtot) real(8), intent(in) :: wx(ngtot),wc(ngtot) real(8), intent(in) :: dtdg2r(ngtot) ! local variables integer ig,ifg ! allocatable arrays real(8), allocatable :: rfir(:) complex(8), allocatable :: zfft(:) allocate(rfir(ngtot),zfft(nfgrz)) !------------------! ! exchange ! !------------------! ! Fourier transform (wx * dtdg2r) to G-space rfir(:)=wx(:)*dtdg2r(:) call rzfftifc(3,ngridg,-1,rfir,zfft) ! grad^2 (wx * dtdg2r) do ifg=1,nfgrz ig=igrzf(ifg) zfft(ifg)=-(gc(ig)**2)*zfft(ifg) end do call rzfftifc(3,ngridg,1,rfir,zfft) vx(:)=vx(:)+rfir(:) !---------------------! ! correlation ! !---------------------! ! Fourier transform (wc * dtdg2r) to G-space rfir(:)=wc(:)*dtdg2r(:) call rzfftifc(3,ngridg,-1,rfir,zfft) ! grad^2 (wc * dtdg2r) do ifg=1,nfgrz ig=igrzf(ifg) zfft(ifg)=-(gc(ig)**2)*zfft(ifg) end do call rzfftifc(3,ngridg,1,rfir,zfft) vc(:)=vc(:)+rfir(:) deallocate(rfir,zfft) end subroutine elk-9.6.8/src/PaxHeaders/piezoelt.f900000644000000000000000000000013214626155520014337 xustar0030 mtime=1717099344.992991816 30 atime=1717099343.178982042 30 ctime=1717099344.992991816 elk-9.6.8/src/piezoelt.f900000644002504400250440000000560314626155520017065 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2023 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 piezoelt use modmain use modmpi use modtest implicit none ! local variables integer i,j,k real(8) pvl1(3),pvl2(3) real(8) vc(3),t1 ! allocatable arrays real(8), allocatable :: pelt(:,:) ! initialise universal variables call init0 call init1 ! store original parameters avec0(:,:)=avec(:,:) ngridk0(:)=ngridk(:) maxscl0=maxscl tshift0=tshift ! no shifting of the atomic basis tshift=.false. ! generate the strain tensors call genstrain ! allocate the piezoelectric tensor array allocate(pelt(3,nstrain)) ! initial ground-state run should start from atomic densities trdstate=.false. ! run the ground-state calculation call gndstate ! subsequent calculations will read in the previous potential trdstate=.true. ! compute the first polarisation in lattice coordinates call polar(pvl1) ! loop over strain tensors do istrain=1,nstrain if (mp_mpi) then write(*,'("Info(piezoelt): working on strain tensor ",I1," of ",I1)') & istrain,nstrain end if ! run the ground-state calculation again call gndstate ! compute the second polarisation call polar(pvl2) do i=1,3 ! add multiple of 2*pi to bring polarisation vectors into coincidence pvl1(i)=modulo(pvl1(i),twopi) pvl2(i)=modulo(pvl2(i),twopi) t1=pvl1(i)-pvl2(i) if (abs(t1-twopi) < abs(t1)) then pvl1(i)=pvl1(i)-twopi else if (abs(t1+twopi) < abs(t1)) then pvl1(i)=pvl1(i)+twopi end if ! calculate the piezoelectric tensor element from difference in polarisations t1=wkptnr*occmax*dble(nkspolar*ngridk(i))/(twopi*deltast) pelt(i,istrain)=t1*(pvl2(i)-pvl1(i)) end do end do if (mp_mpi) then open(50,file='PIEZOELT.OUT',form='FORMATTED') write(50,*) write(50,'("Lattice vector matrix, A, changed by")') write(50,*) write(50,'(" A → A + e_k dt,")') write(50,*) write(50,'("where dt is an infinitesimal scalar and e_k is a strain tensor")') write(50,*) write(50,'("The piezoelectric tensor is the derivative of the polarisation & &vector dP_i/dt, i=1...3")') do k=1,nstrain write(50,*) write(50,'("Strain tensor k : ",I1)') k do j=1,3 write(50,'(3G18.10)') (strain(i,j,k),i=1,3) end do write(50,'("Piezoelectric tensor components dP_i/dt, i=1...3 :")') write(50,'(" lattice coordinates : ",3G18.10)') pelt(:,k) call r3mv(avec,pelt(:,k),vc) write(50,'(" Cartesian coordinates : ",3G18.10)') vc(:) write(50,'(" length : ",G18.10)') norm2(vc(:)) end do close(50) write(*,*) write(*,'("Info(piezoelt):")') write(*,'(" Piezoelectric tensor written to PIEZOELT.OUT")') end if ! write test file if required call writetest(380,'Piezoelectric tensor',nv=3*nstrain,tol=1.d-5,rva=pelt) deallocate(pelt) ! restore original parameters tshift=tshift0 avec(:,:)=avec0(:,:) end subroutine elk-9.6.8/src/PaxHeaders/magnetoelt.f900000644000000000000000000000013214626155520014643 xustar0030 mtime=1717099344.994991827 30 atime=1717099343.181982058 30 ctime=1717099344.994991827 elk-9.6.8/src/magnetoelt.f900000644002504400250440000000545414626155520017375 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2023 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 magnetoelt use modmain use modmpi use modtest implicit none ! local variables integer i,j real(8) pvl1(3),pvl2(3) real(8) felt(3,3),vc(3),t1 ! initialise universal variables call init0 call init1 ! store original parameters bfieldc00(:)=bfieldc0(:) ngridk0(:)=ngridk(:) maxscl0=maxscl spinpol0=spinpol reducebf0=reducebf tshift0=tshift ! no shifting of the atomic basis tshift=.false. ! enable spin-polarisation spinpol=.true. ! no magnetic field reduction reducebf=1.d0 ! initial ground-state run should start from atomic densities trdstate=.false. do j=1,3 if (mp_mpi) then write(*,'("Info(magnetoelt): working on magnetic field component ",I1)') j end if ! apply negative change to magnetic field bfieldc0(j)=bfieldc00(j)-0.5d0*deltabf ! run the ground-state calculation call gndstate ! subsequent calculations will read in the previous potential trdstate=.true. ! compute the first polarisation in lattice coordinates call polar(pvl1) ! apply positive change to magnetic field bfieldc0(j)=bfieldc00(j)+0.5d0*deltabf ! run the ground-state calculation again call gndstate ! compute the second polarisation call polar(pvl2) do i=1,3 ! add multiple of 2*pi to bring polarisation vectors into coincidence pvl1(i)=modulo(pvl1(i),twopi) pvl2(i)=modulo(pvl2(i),twopi) t1=pvl1(i)-pvl2(i) if (abs(t1-twopi) < abs(t1)) then pvl1(i)=pvl1(i)-twopi else if (abs(t1+twopi) < abs(t1)) then pvl1(i)=pvl1(i)+twopi end if ! calculate the magnetoelectric tensor element from difference in polarisations t1=wkptnr*occmax*dble(nkspolar*ngridk(i))/(twopi*deltabf) felt(i,j)=t1*(pvl2(i)-pvl1(i)) end do end do if (mp_mpi) then open(50,file='MAGNETOELT.OUT',form='FORMATTED') write(50,*) write(50,'("The magnetoelectric tensor is the change in the polarisation")') write(50,'("with respect to the external magnetic field dP_i/dB_j, for")') write(50,'("components i,j=1...3")') do j=1,3 write(50,*) write(50,'("Magnetic field Cartesian component j : ",I1)') j write(50,'("Magnetoelectric tensor components dP_i/dB_j, i=1...3")') write(50,'(" lattice coordinates : ",3G18.10)') felt(:,j) call r3mv(avec,felt(:,j),vc) write(50,'(" Cartesian coordinates : ",3G18.10)') vc(:) write(50,'(" length : ",G18.10)') norm2(vc(:)) end do close(50) write(*,*) write(*,'("Info(magnetoelt):")') write(*,'(" Magnetoelectric tensor writtent to MAGNETOELT.OUT")') end if ! write test file if required call writetest(390,'Magnetoelectric tensor',nv=9,tol=1.d-5,rva=felt) ! restore original parameters tshift=tshift0 spinpol=spinpol0 bfieldc0(:)=bfieldc00(:) reducebf=reducebf0 end subroutine elk-9.6.8/src/PaxHeaders/rmtavrg.f900000644000000000000000000000013214626155520014166 xustar0030 mtime=1717099344.995991832 30 atime=1717099343.184982074 30 ctime=1717099344.995991832 elk-9.6.8/src/rmtavrg.f900000644002504400250440000000100214626155520016701 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2023 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 rmtavrg use modmain implicit none ! local variables integer is,i real(8) ra if (nspecies <= 1) return do i=1,mrmtav ! average muffin-tin radius ra=sum(rmt(1:nspecies))/nspecies ! replace each muffin-tin radius with half itself plus the average do is=1,nspecies rmt(is)=0.5d0*(rmt(is)+ra) end do end do end subroutine elk-9.6.8/src/PaxHeaders/zlrzncnv.f900000644000000000000000000000013214626155520014372 xustar0030 mtime=1717099344.997991843 30 atime=1717099343.187982091 30 ctime=1717099344.997991843 elk-9.6.8/src/zlrzncnv.f900000644002504400250440000000117614626155520017121 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2024 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 zlrzncnv(n,s,w,zf) implicit none ! arguments integer, intent(in) :: n real(8), intent(in) :: s,w(n) complex(8), intent(inout) :: zf(n) ! local variables integer i,j real(8), parameter :: pi=3.1415926535897932385d0 real(8) s2,wi,dw complex(8) zsm ! automatic arrays complex(8) zg(n) s2=s**2 do i=1,n wi=w(i) zsm=0.d0 do j=1,n-1 dw=w(j+1)-w(j) zsm=zsm+dw*zf(j)/((w(j)-wi)**2+s2) end do zg(i)=zsm*s/pi end do zf(:)=zg(:) end subroutine elk-9.6.8/src/PaxHeaders/efieldmt.f900000644000000000000000000000013214626155520014275 xustar0030 mtime=1717099344.998991848 30 atime=1717099343.190982107 30 ctime=1717099344.998991848 elk-9.6.8/src/efieldmt.f900000644002504400250440000000227514626155520017025 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2024 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. !BOP ! !ROUTINE: efieldmt ! !INTERFACE: subroutine efieldmt ! !USES: use modmain ! !DESCRIPTION: ! Calculates the average electric field in each muffin-tin from the gradient ! of the Coulomb potential: ! \begin{align*} ! {\bf E}_{\alpha}&\equiv-\frac{3}{4\pi R_{\alpha}^3} ! \int_{{\rm MT}_\alpha} \nabla V_{\rm C}({\bf r})\,d^3r \\ ! &=-\frac{3}{4\pi R_{\alpha}^3}\int_{{\rm MT}_\alpha} ! V_{\rm C}({\bf r})\,\hat{\bf n}\,dS, ! \end{align*} ! where $R_{\alpha}$ is the radius of muffin-tin $\alpha$. ! ! !REVISION HISTORY: ! Created April 2024 (JKD) !EOP !BOC implicit none ! local variables integer is,ias,nr,nri,i real(8) t1,t2 ! automatic arrays real(8) grfmt(npmtmax,3) ! external functions real(8), external :: rfmtint do ias=1,natmtot is=idxis(ias) nr=nrmt(is) nri=nrmti(is) call gradrfmt(nr,nri,rlmt(:,-1,is),wcrmt(:,:,is),vclmt(:,ias),npmtmax,grfmt) t1=-(fourpi/3.d0)*rmt(is)**3 do i=1,3 t2=rfmtint(nr,nri,wrmt(:,is),grfmt(:,i)) efcmt(i,ias)=t2/t1 end do end do end subroutine !EOC elk-9.6.8/src/PaxHeaders/writeefield.f900000644000000000000000000000013214626155520015007 xustar0030 mtime=1717099344.999991853 30 atime=1717099343.192982117 30 ctime=1717099344.999991853 elk-9.6.8/src/writeefield.f900000644002504400250440000000203414626155520017530 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2024 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 writeefield(fnum) use modmain implicit none ! arguments integer, intent(in) :: fnum ! local variables integer is,ia,ias,i real(8) efc(3),t1 ! determine the average electric field in each muffin-tin call efieldmt ! write the electric fields to file write(fnum,*) write(fnum,'("Average electric field in each muffin-tin")') 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,efcmt(:,ias) end do end do ! compute the average electric field do i=1,3 efc(i)=sum(efcmt(i,1:natmtot))/dble(natmtot) end do write(fnum,*) write(fnum,'("Average of muffin-tin electric fields :")') write(fnum,'(3G18.10)') efc t1=norm2(efc(:)) write(fnum,'(" magnitude : ",G18.10)') t1 write(fnum,'(" volts/nanometer : ",G18.10)') t1*ef_si/1.d9 end subroutine elk-9.6.8/src/PaxHeaders/sort.f900000644000000000000000000000013214626155521013474 xustar0030 mtime=1717099345.000991859 30 atime=1717099343.195982134 30 ctime=1717099345.000991859 elk-9.6.8/src/sort.f900000644002504400250440000000131214626155521016213 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2024 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. !BOP ! !ROUTINE: sort ! !INTERFACE: subroutine sort(n,x) ! !INPUT/OUTPUT PARAMETERS: ! n : number of elements in array (in,integer) ! x : real array (inout,real(n)) ! !DESCRIPTION: ! Sorts elements of a real array into ascending order. See {\tt sortidx}. ! ! !REVISION HISTORY: ! Created May 2024 (JKD) !EOP !BOC implicit none integer, intent(in) :: n real(8), intent(inout) :: x(n) ! automatic arrays integer idx(n) real(8) xt(n) xt(:)=x(:) ! find the permutation index call sortidx(n,xt,idx) x(:)=xt(idx(:)) end subroutine !EOC elk-9.6.8/src/PaxHeaders/dmatch.f900000644000000000000000000000012714626155521013751 xustar0029 mtime=1717099345.00299187 29 atime=1717099343.19898215 29 ctime=1717099345.00299187 elk-9.6.8/src/dmatch.f900000644002504400250440000000152214626155521016467 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. pure 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,lm,io,igp complex(8) z1 ! take derivative with respect to atomic displacement is=idxis(ias) do l=0,lmaxapw do lm=l**2+1,(l+1)**2 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 end subroutine elk-9.6.8/src/PaxHeaders/dolpistl.f900000644000000000000000000000013214626155521014337 xustar0030 mtime=1717099345.003991875 30 atime=1717099343.200982161 30 ctime=1717099345.003991875 elk-9.6.8/src/dolpistl.f900000644002504400250440000000127714626155521017070 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. pure 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 ig,j1,j2,j3,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) ig=ivgig(ivg(1,ig)-j1,ivg(2,ig)-j2,ivg(3,ig)-j3) od(i,j)=od(i,j)+dcfunig(ig) end do end do end subroutine elk-9.6.8/src/PaxHeaders/drhomagsh.f900000644000000000000000000000013014626155521014457 xustar0029 mtime=1717099345.00499188 30 atime=1717099343.203982177 29 ctime=1717099345.00499188 elk-9.6.8/src/drhomagsh.f900000644002504400250440000000152614626155521017207 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 call holdthd(2*natmtot,nthd) !$OMP PARALLEL DEFAULT(SHARED) & !$OMP PRIVATE(is,idm) & !$OMP NUM_THREADS(nthd) !$OMP DO do ias=1,natmtot is=idxis(ias) ! convert the density derivative to spherical harmonics call zfshtip(nrcmt(is),nrcmti(is),drhomt(:,ias)) end do !$OMP END DO NOWAIT do idm=1,ndmag !$OMP DO do ias=1,natmtot is=idxis(ias) ! convert the magnetisation derivative to spherical harmonics call zfshtip(nrcmt(is),nrcmti(is),dmagmt(:,ias,idm)) end do !$OMP END DO end do !$OMP END PARALLEL call freethd(nthd) end subroutine elk-9.6.8/src/PaxHeaders/dhmlistl.f900000644000000000000000000000013214626155521014325 xustar0030 mtime=1717099345.005991886 30 atime=1717099343.206982193 30 ctime=1717099345.005991886 elk-9.6.8/src/dhmlistl.f900000644002504400250440000000162714626155521017055 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. pure 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 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) ig=ivgig(ivg(1,ig)-j1,ivg(2,ig)-j2,ivg(3,ig)-j3) 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 end subroutine elk-9.6.8/src/PaxHeaders/gendcfun.f900000644000000000000000000000013214626155521014276 xustar0030 mtime=1717099345.007991897 30 atime=1717099343.209982209 30 ctime=1717099345.007991897 elk-9.6.8/src/gendcfun.f900000644002504400250440000000114614626155521017022 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) end subroutine elk-9.6.8/src/PaxHeaders/gendvsig.f900000644000000000000000000000013114626155521014312 xustar0030 mtime=1717099345.008991902 29 atime=1717099343.21198222 30 ctime=1717099345.008991902 elk-9.6.8/src/gendvsig.f900000644002504400250440000000102414626155521017032 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 ! 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 dvsig(1:ngvec)=zfft(igfft(1:ngvec)) deallocate(zfft) end subroutine elk-9.6.8/src/PaxHeaders/olpaloq.f900000644000000000000000000000013214626155521014154 xustar0030 mtime=1717099345.009991907 30 atime=1717099343.214982236 30 ctime=1717099345.009991907 elk-9.6.8/src/olpaloq.f900000644002504400250440000000170514626155521016701 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(is,ias,ngp,ngpq,apwalm,apwalmq,ld,oq) use modmain implicit none ! arguments integer, intent(in) :: is,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 ilo,io,l,lm integer i0,j0,i,j real(8) t1 do ilo=1,nlorb(is) l=lorbl(ilo,is) do lm=l**2+1,(l+1)**2 i=idxlo(lm,ilo,ias) i0=ngpq+i j0=ngp+i do io=1,apword(l,is) t1=oalo(io,ilo,ias) do i=1,ngpq oq(i,j0)=oq(i,j0)+t1*conjg(apwalmq(i,io,lm)) end do do j=1,ngp oq(i0,j)=oq(i0,j)+t1*apwalm(j,io,lm) end do end do end do end do end subroutine elk-9.6.8/src/PaxHeaders/hmlaloq.f900000644000000000000000000000013214626155521014142 xustar0030 mtime=1717099345.010991913 30 atime=1717099343.217982252 30 ctime=1717099345.010991913 elk-9.6.8/src/hmlaloq.f900000644002504400250440000000261214626155521016665 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(is,ias,ngp,ngpq,apwalm,apwalmq,ld,hq) use modmain implicit none ! arguments integer, intent(in) :: is,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 io,ilo integer l0,l1,l2,l3 integer lm1,lm3,lma,lmb integer i0,j0,i,j complex(8) z1 do ilo=1,nlorb(is) l1=lorbl(ilo,is) do lm1=l1**2+1,(l1+1)**2 i=idxlo(lm1,ilo,ias) i0=ngpq+i j0=ngp+i do l3=0,lmaxapw if (mod(l1+l3,2) == 0) then; l0=0; else; l0=1; end if do lm3=l3**2+1,(l3+1)**2 do io=1,apword(l3,is) z1=0.d0 do l2=l0,lmaxo,2 lma=l2**2+1; lmb=lma+2*l2 z1=z1+sum(gntyry(lma:lmb,lm3,lm1)*hloa(lma:lmb,io,l3,ilo,ias)) end do if (abs(dble(z1))+abs(aimag(z1)) > 1.d-14) then do i=1,ngpq hq(i,j0)=hq(i,j0)+conjg(z1*apwalmq(i,io,lm3)) end do do j=1,ngp hq(i0,j)=hq(i0,j)+z1*apwalm(j,io,lm3) end do end if end do end do end do end do end do end subroutine elk-9.6.8/src/PaxHeaders/dolpalo.f900000644000000000000000000000013214626155521014137 xustar0030 mtime=1717099345.011991918 30 atime=1717099343.221982274 30 ctime=1717099345.011991918 elk-9.6.8/src/dolpalo.f900000644002504400250440000000165014626155521016663 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. pure subroutine dolpalo(is,ias,ngp,ngpq,dapwalm,dapwalmq,ld,od) use modmain use modphonon implicit none ! arguments integer, intent(in) :: is,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 ilo,io,l,lm,i,j,k real(8) t1 if (ias /= iasph) return do ilo=1,nlorb(is) l=lorbl(ilo,is) do lm=l**2+1,(l+1)**2 k=idxlo(lm,ilo,ias) i=ngpq+k j=ngp+k do io=1,apword(l,is) t1=oalo(io,ilo,ias) od(1:ngpq,j)=od(1:ngpq,j)+t1*conjg(dapwalmq(1:ngpq,io,lm)) od(i,1:ngp)=od(i,1:ngp)+t1*dapwalm(1:ngp,io,lm) end do end do end do end subroutine elk-9.6.8/src/PaxHeaders/dhmlalo.f900000644000000000000000000000013114626155521014124 xustar0030 mtime=1717099345.013991929 29 atime=1717099343.22498229 30 ctime=1717099345.013991929 elk-9.6.8/src/dhmlalo.f900000644002504400250440000000432614626155521016654 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. pure subroutine dhmlalo(is,ias,ngp,ngpq,apwalm,apwalmq,dapwalm,dapwalmq,ld,dh) use modmain use modphonon implicit none ! arguments integer, intent(in) :: is,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 io,ilo integer l0,l1,l2,l3 integer lm1,lm3,lma,lmb integer i0,j0,i,j complex(8) z1 do ilo=1,nlorb(is) l1=lorbl(ilo,is) do lm1=l1**2+1,(l1+1)**2 i=idxlo(lm1,ilo,ias) i0=ngpq+i j0=ngp+i do l3=0,lmaxapw if (mod(l1+l3,2) == 0) then; l0=0; else; l0=1; end if do lm3=l3**2+1,(l3+1)**2 do io=1,apword(l3,is) z1=0.d0 do l2=l0,lmaxo,2 lma=l2**2+1; lmb=lma+2*l2 z1=z1+sum(gntyyy(lma:lmb,lm3,lm1)*dhloa(lma:lmb,io,l3,ilo,ias)) end do if (abs(dble(z1))+abs(aimag(z1)) > 1.d-14) then do i=1,ngpq dh(i,j0)=dh(i,j0)+conjg(z1*apwalmq(i,io,lm3)) end do do j=1,ngp dh(i0,j)=dh(i0,j)+z1*apwalm(j,io,lm3) end do end if end do end do end do if (ias == iasph) then do l3=0,lmaxapw if (mod(l1+l3,2) == 0) then; l0=0; else; l0=1; end if do lm3=l3**2+1,(l3+1)**2 do io=1,apword(l3,is) z1=0.d0 do l2=l0,lmaxo,2 lma=l2**2+1; lmb=lma+2*l2 z1=z1+sum(gntyry(lma:lmb,lm3,lm1)*hloa(lma:lmb,io,l3,ilo,ias)) end do if (abs(dble(z1))+abs(aimag(z1)) > 1.d-14) then do i=1,ngpq dh(i,j0)=dh(i,j0)+conjg(z1*dapwalmq(i,io,lm3)) end do do j=1,ngp dh(i0,j)=dh(i0,j)+z1*dapwalm(j,io,lm3) end do end if end do end do end do end if end do end do end subroutine elk-9.6.8/src/PaxHeaders/dhmllolo.f900000644000000000000000000000013214626155521014317 xustar0030 mtime=1717099345.014991934 30 atime=1717099343.227982306 30 ctime=1717099345.014991934 elk-9.6.8/src/dhmllolo.f900000644002504400250440000000200314626155521017034 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. pure subroutine dhmllolo(is,ias,ngp,ngpq,ld,dh) use modmain use modphonon implicit none ! arguments integer, intent(in) :: is,ias integer, intent(in) :: ngp,ngpq integer, intent(in) :: ld complex(8), intent(inout) :: dh(ld,*) ! local variables integer ilo,jlo,i,j integer l0,l1,l2,l3 integer lm1,lm3,lma,lmb complex(8) z1 do jlo=1,nlorb(is) l3=lorbl(jlo,is) do lm3=l3**2+1,(l3+1)**2 j=ngp+idxlo(lm3,jlo,ias) do ilo=1,nlorb(is) l1=lorbl(ilo,is) if (mod(l1+l3,2) == 0) then; l0=0; else; l0=1; end if do lm1=l1**2+1,(l1+1)**2 i=ngpq+idxlo(lm1,ilo,ias) z1=0.d0 do l2=l0,lmaxo,2 lma=l2**2+1; lmb=(l2+1)**2 z1=z1+sum(gntyyy(lma:lmb,lm3,lm1)*dhlolo(lma:lmb,jlo,ilo,ias)) end do dh(i,j)=dh(i,j)+z1 end do end do end do end do end subroutine elk-9.6.8/src/PaxHeaders/olpaaq.f900000644000000000000000000000013014626155521013760 xustar0029 mtime=1717099345.01599194 30 atime=1717099343.229982317 29 ctime=1717099345.01599194 elk-9.6.8/src/olpaaq.f900000644002504400250440000000151314626155521016504 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(is,ngp,ngpq,apwalm,apwalmq,ld,oq) use modmain implicit none ! arguments integer, intent(in) :: is,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 io,l,lm,i ! automatic arrays complex(8) a(lmoapw(is),ngpq),b(lmoapw(is),ngp) i=0 do l=0,lmaxapw do lm=l**2+1,(l+1)**2 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(lmoapw(is),ngpq,ngp,a,b,ld,oq) end subroutine elk-9.6.8/src/PaxHeaders/dolpaa.f900000644000000000000000000000013214626155521013745 xustar0030 mtime=1717099345.016991945 30 atime=1717099343.232982333 30 ctime=1717099345.016991945 elk-9.6.8/src/dolpaa.f900000644002504400250440000000240114626155521016464 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(is,ias,ngp,ngpq,apwalm,apwalmq,dapwalm,dapwalmq,ld,od) use modmain use modphonon implicit none ! arguments integer, intent(in) :: is,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 io,l,lm,i ! automatic arrays complex(8) a(lmoapw(is),ngpq),b(lmoapw(is),ngp) if (ias /= iasph) return i=0 do l=0,lmaxapw do lm=l**2+1,(l+1)**2 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(lmoapw(is),ngpq,ngp,a,b,ld,od) i=0 do l=0,lmaxapw do lm=l**2+1,(l+1)**2 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(lmoapw(is),ngpq,ngp,a,b,ld,od) end subroutine elk-9.6.8/src/PaxHeaders/dhmlaa.f900000644000000000000000000000013214626155521013733 xustar0030 mtime=1717099345.018991956 30 atime=1717099343.235982349 30 ctime=1717099345.018991956 elk-9.6.8/src/dhmlaa.f900000644002504400250440000000515214626155521016460 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(is,ias,ngp,ngpq,apwalm,apwalmq,dapwalm,dapwalmq,ld,dh) use modmain use modphonon implicit none ! arguments integer, intent(in) :: is,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 io,jo,i integer l0,l1,l2,l3 integer lm1,lm3,lma,lmb real(8) t0,t1 complex(8) z1 ! automatic arrays complex(8) y1(ngp),a1(lmoapw(is),ngpq),b1(lmoapw(is),ngp) complex(8) y2(ngp),a2(lmoapw(is),ngpq),b2(lmoapw(is),ngp) t0=0.5d0*rmt(is)**2 i=0 do l1=0,lmaxapw do lm1=l1**2+1,(l1+1)**2 do io=1,apword(l1,is) i=i+1 t1=t0*apwfr(nrmt(is),1,io,l1,ias) y1(:)=0.d0 do l3=0,lmaxapw if (mod(l1+l3,2) == 0) then; l0=0; else; l0=1; end if do lm3=l3**2+1,(l3+1)**2 do jo=1,apword(l3,is) z1=0.d0 do l2=l0,lmaxo,2 lma=l2**2+1; lmb=lma+2*l2 z1=z1+sum(gntyyy(lma:lmb,lm3,lm1)*dhaa(lma:lmb,jo,l3,io,l1,ias)) end do if (abs(dble(z1))+abs(aimag(z1)) > 1.d-14) then call zaxpy(ngp,z1,apwalm(:,jo,lm3),1,y1,1) end if end do end do end do if (ias == iasph) then y2(:)=0.d0 do l3=0,lmaxapw if (mod(l1+l3,2) == 0) then; l0=0; else; l0=1; end if do lm3=l3**2+1,(l3+1)**2 do jo=1,apword(l3,is) z1=0.d0 do l2=l0,lmaxo,2 lma=l2**2+1; lmb=lma+2*l2 z1=z1+sum(gntyry(lma:lmb,lm3,lm1)*haa(lma:lmb,jo,l3,io,l1,ias)) end do ! kinetic surface contribution if (lm1 == lm3) z1=z1+t1*apwdfr(jo,l1,ias) if (abs(dble(z1))+abs(aimag(z1)) > 1.d-14) then call zaxpy(ngp,z1,dapwalm(:,jo,lm3),1,y1,1) call zaxpy(ngp,z1,apwalm(:,jo,lm3),1,y2,1) end if end do end do end do a2(i,1:ngpq)=dapwalmq(1:ngpq,io,lm1) b2(i,1:ngp)=y2(1:ngp) end if a1(i,1:ngpq)=apwalmq(1:ngpq,io,lm1) b1(i,1:ngp)=y1(1:ngp) end do end do end do call zmctm(lmoapw(is),ngpq,ngp,a1,b1,ld,dh) if (ias == iasph) then call zmctm(lmoapw(is),ngpq,ngp,a2,b2,ld,dh) end if end subroutine elk-9.6.8/src/PaxHeaders/hmlaaq.f900000644000000000000000000000013214626155521013750 xustar0030 mtime=1717099345.019991961 30 atime=1717099343.238982365 30 ctime=1717099345.019991961 elk-9.6.8/src/hmlaaq.f900000644002504400250440000000313114626155521016470 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(is,ias,ngp,ngpq,apwalm,apwalmq,ld,hq) use modmain implicit none integer, intent(in) :: is,ias,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 io,jo,i integer l0,l1,l2,l3 integer lm1,lm3,lma,lmb real(8) t0,t1 complex(8) z1 ! automatic arrays complex(8) y(ngp),a(lmoapw(is),ngpq),b(lmoapw(is),ngp) t0=0.5d0*rmt(is)**2 i=0 do l1=0,lmaxapw do lm1=l1**2+1,(l1+1)**2 do io=1,apword(l1,is) i=i+1 t1=t0*apwfr(nrmt(is),1,io,l1,ias) y(:)=0.d0 do l3=0,lmaxapw if (mod(l1+l3,2) == 0) then; l0=0; else; l0=1; end if do lm3=l3**2+1,(l3+1)**2 do jo=1,apword(l3,is) z1=0.d0 ! kinetic and potential contribution do l2=l0,lmaxo,2 lma=l2**2+1; lmb=lma+2*l2 z1=z1+sum(gntyry(lma:lmb,lm3,lm1)*haa(lma:lmb,jo,l3,io,l1,ias)) end do ! kinetic surface contribution if (lm1 == lm3) z1=z1+t1*apwdfr(jo,l1,ias) if (abs(dble(z1))+abs(aimag(z1)) > 1.d-14) then call zaxpy(ngp,z1,apwalm(:,jo,lm3),1,y,1) end if end do end do end do a(i,1:ngpq)=apwalmq(1:ngpq,io,lm1) b(i,1:ngp)=y(1:ngp) end do end do end do call zmctm(lmoapw(is),ngpq,ngp,a,b,ld,hq) end subroutine elk-9.6.8/src/PaxHeaders/initeph.f900000644000000000000000000000013214626155521014145 xustar0030 mtime=1717099345.020991967 30 atime=1717099343.241982381 30 ctime=1717099345.020991967 elk-9.6.8/src/initeph.f900000644002504400250440000000644614626155521016701 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2020 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 initeph use modmain use modphonon use modbog implicit none ! local variables integer iq,ik,n,i ! automatic arrays complex(8) u(nstsv,nstsv),v(nstsv,nstsv) complex(8) w(nbph,nbph),x(nbph,nbph),y(nbph) ! allocatable arrays complex(8), allocatable :: dynq(:,:,:),ev(:,:) complex(8), allocatable :: ephmat(:,:,:) ! combined target array for fermionic and bosonic density matrices if (allocated(duvwx)) deallocate(duvwx) n=2*nstsv*nstsv*nkpt+2*nbph*nbph*nqpt allocate(duvwx(n)) !------------------------------! ! electronic variables ! !------------------------------! if (allocated(evaluv)) deallocate(evaluv) allocate(evaluv(nstsv,nkpt)) if (allocated(vnorm)) deallocate(vnorm) allocate(vnorm(nstsv,nkpt)) ! associate the electronic density matrices with target dvv(1:nstsv,1:nstsv,1:nkpt) => duvwx(1:) i=nstsv*nstsv*nkpt+1 duv(1:nstsv,1:nstsv,1:nkpt) => duvwx(i:) i=i+nstsv*nstsv*nkpt if (task == 270) then ! initialise the density matrices to random numbers dvv(:,:,:)=0.d0 duv(:,:,:)=0.d0 do ik=1,nkpt call rndevsv(1.d0,dvv(:,:,ik)) call rndevsv(1.d0,duv(:,:,ik)) end do else do ik=1,nkpt ! get the eigenvalues from file call getevaluv(ik,evaluv(:,ik)) ! get the eigenvectors from file call getevecuv(ik,vkl(:,ik),u,v) ! calculate the density matrices call dmatuv(nstsv,efermi,evalsv(:,ik),u,v,dvv(:,:,ik),duv(:,:,ik), & vnorm(:,ik)) end do end if !----------------------------! ! phononic variables ! !----------------------------! allocate(dynq(nbph,nbph,nqpt),ev(nbph,nbph)) ! read in the dynamical matrices call readdyn(dynq) ! apply the acoustic sum rule call sumrule(dynq) ! find the eigenvalues of the dynamical matrices and store in global array do iq=1,nqpt call dynev(dynq(:,:,iq),wphq(:,iq),ev) end do deallocate(dynq,ev) if (allocated(evalwx)) deallocate(evalwx) allocate(evalwx(nbph,nqpt)) if (allocated(xnorm)) deallocate(xnorm) allocate(xnorm(nbph,nqpt)) ! associate the phononic density matrices with target dxx(1:nbph,1:nbph,1:nqpt) => duvwx(i:) i=i+nbph*nbph*nqpt dwx(1:nbph,1:nbph,1:nqpt) => duvwx(i:) if (task == 270) then ! zero the density matrices dxx(:,:,:)=0.d0 dwx(:,:,:)=0.d0 else do iq=1,nqpt ! get the eigenvalues from file call getevalwx(iq,evalwx(:,iq)) ! get the eigenvectors from file call getevecwxy(iq,w,x,y) ! calculate the density matrices call dmatwx(nbph,w,x,dxx(:,:,iq),dwx(:,:,iq),xnorm(:,iq)) end do end if !-----------------------------------! ! electron-phonon variables ! !-----------------------------------! if (any(task == [270,271])) then ! allocate the electron-phonon matrix elements array if (allocated(ephmkq)) deallocate(ephmkq) allocate(ephmkq(nstsv,nstsv,nbph,nkptnr,nqpt)) ! read the matrix elements from file and store in global array allocate(ephmat(nstsv,nstsv,nbph)) do iq=1,nqpt do ik=1,nkptnr call getephmat(iq,ik,ephmat) ephmkq(:,:,:,ik,iq)=ephmat(:,:,:) end do ! zero the electron-phonon coupling for phonon small phonon frequencies do i=1,nbph if (wphq(i,iq) < wphcut) ephmkq(:,:,i,:,iq)=0.d0 end do end do deallocate(ephmat) end if end subroutine elk-9.6.8/src/PaxHeaders/dengyeph.f900000644000000000000000000000013214626155521014310 xustar0030 mtime=1717099345.021991972 30 atime=1717099343.244982398 30 ctime=1717099345.021991972 elk-9.6.8/src/dengyeph.f900000644002504400250440000000134314626155521017033 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2020 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 dengyeph use modmain use modphonon use modbog implicit none ! local variables integer ik,iq,i real(8) w ! change in electron energy per unit cell dengye=0.d0 do ik=1,nkpt w=wkpt(ik) do i=1,nstsv dengye=dengye+w*abs((evalsv(i,ik)-efermi)*dble(dvv(i,i,ik))) end do end do dengye=abs(occmax*dengye) ! change in phonon energy per unit cell dengyph=0.d0 do iq=1,nqpt w=wqpt(iq) do i=1,nbph dengyph=dengyph+w*abs(wphq(i,iq)*dble(dxx(i,i,iq))) end do end do ! sum of both dengy=dengye+dengyph end subroutine elk-9.6.8/src/PaxHeaders/gndsteph.f900000644000000000000000000000013214626155521014321 xustar0030 mtime=1717099345.023991983 30 atime=1717099343.247982414 30 ctime=1717099345.023991983 elk-9.6.8/src/gndsteph.f900000644002504400250440000001125614626155521017050 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 modphonon use modbog use modmpi use modomp implicit none ! local variables integer nmix,nwork real(8) dv ! allocatable arrays real(8), allocatable :: work(:) ! initialise universal variables call init0 call init1 call init2 call readstate call genvsig call gencore call linengy call genapwlofr call gensocfr call genevfsv ! precise determination of the Fermi energy swidth0=swidth swidth=1.d-5 call occupy swidth=swidth0 ! initialise electron-phonon variables call initeph ! size of mixing vector for electron and phonon density matrices (complex array) nmix=2*size(duvwx) ! determine the size of the mixer work array nwork=-1 call mixerifc(mixtype,nmix,duvwx,dv,nwork,work) allocate(work(nwork)) ! initialise the mixer iscl=0 call mixerifc(mixtype,nmix,duvwx,dv,nwork,work) ! set the stop signal to .false. tstop=.false. ! set last self-consistent loop flag tlast=.false. ! only the MPI master process should write files 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,'("+------------------------------+")') ! open EPHGAP.OUT open(64,file='EPHGAP.OUT',form='FORMATTED') ! open RMSDVS.OUT open(65,file='RMSDVS.OUT',form='FORMATTED') ! open FACE.OUT open(67,file='FACE.OUT',form='FORMATTED') end if if (mp_mpi) write(*,*) ! begin the self-consistent loop do iscl=1,maxscl if (mp_mpi) then write(60,*) write(60,'("+--------------------+")') write(60,'("| Loop number : ",I4," |")') iscl write(60,'("+--------------------+")') flush(60) write(*,'("Info(gndsteph): self-consistent loop number : ",I4)') iscl end if if (iscl >= maxscl) then if (mp_mpi) then write(60,*) write(60,'("Reached self-consistent loops maximum")') end if tlast=.true. end if ! determine change in electron and phonon energies call dengyeph ! solve the electron and phonon eigenvalue equations call eveqneph ! update the Fermi energy call occupyuv if (mp_mpi) then ! write the electronic eigenvalues to file call writeevaluv ! write the phononic eigenvalues to file call writeevalwx ! write the Fermi energy to file call writefermi write(60,*) write(60,'("Energies :")') write(60,'(" Fermi",T30,": ",G22.12)') efermi write(60,'(" electronic change",T30,": ",G22.12)') dengye write(60,'(" phononic change",T30,": ",G22.12)') dengyph write(60,'(" sum of changes",T30,": ",G22.12)') dengy 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(60,*) write(60,'("Fermionic anomalous correlation entropy : ",G18.10)') face write(60,*) write(60,'("Electron-phonon scaling factor : ",G18.10)') ephscf(1) ! write estimated indirect band gap write(64,'(G22.12)') bandgap(1) flush(64) ! write the fermionic anomalous correlation entropy write(67,'(G18.10)') face flush(67) end if ! mix the old and new electron and phonon density matrices call mixerifc(mixtype,nmix,duvwx,dv,nwork,work) ! adjust the electron-phonon term scale factor towards 1 ephscf(1)=(1.d0-ephscf(2))*ephscf(1)+ephscf(2) ! exit self-consistent loop if required if (tlast) goto 10 ! check for convergence if (iscl >= 2) then if (mp_mpi) then write(60,*) write(60,'("RMS change in density matrices (target) : ",G18.10," (",& &G18.10,")")') dv,epspot write(65,'(G18.10)') dv flush(65) if (dv < epspot) then write(60,*) write(60,'("Convergence targets achieved")') tlast=.true. end if end if end if ! check for STOP file call checkstop if (tstop) tlast=.true. ! 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,'("+------------------------------+")') ! close the EPH_INFO.OUT file close(60) ! close the EPHGAP.OUT file close(64) ! close the RMSDVS.OUT file close(65) ! close the FACE.OUT file close(67) end if deallocate(work) ! synchronise MPI processes call mpi_barrier(mpicom,ierror) end subroutine elk-9.6.8/src/PaxHeaders/eveqneph.f900000644000000000000000000000013114626155521014317 xustar0030 mtime=1717099345.024991988 29 atime=1717099343.25098243 30 ctime=1717099345.024991988 elk-9.6.8/src/eveqneph.f900000644002504400250440000000671314626155521017051 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 use modmain use modphonon use modbog use modmpi use modomp implicit none ! local variables integer iq,ik integer n,lp,nthd ! allocatable arrays complex(8), allocatable :: dw(:,:,:),ex(:,:,:),fy(:,:) complex(8), allocatable :: au(:,:,:),bv(:,:,:) !------------------------------------! ! phonon eigenvalue equation ! !------------------------------------! allocate(dw(nbph,nbph,nqpt),ex(nbph,nbph,nqpt),fy(nbph,nqpt)) ! parallel loop over reduced q-point set call holdthd(nqpt/np_mpi,nthd) !$OMP PARALLEL DEFAULT(SHARED) & !$OMP NUM_THREADS(nthd) !$OMP DO do iq=1,nqpt ! distribute among MPI processes if (mod(iq-1,np_mpi) /= lp_mpi) cycle ! generate the matrices D and E call hmlephde(iq,dw(:,:,iq),ex(:,:,iq)) ! zero the vector F fy(:,iq)=0.d0 ! solve the phononic Bogoliubov equation call eveqnwxy(nbph,pwxpsn,dw(:,:,iq),ex(:,:,iq),fy(:,iq),evalwx(:,iq)) end do !$OMP END DO !$OMP DO do iq=1,nqpt ! distribute among MPI processes if (mod(iq-1,np_mpi) /= lp_mpi) cycle ! compute the density matrices call dmatwx(nbph,dw(:,:,iq),ex(:,:,iq),dxx(:,:,iq),dwx(:,:,iq),xnorm(:,iq)) ! write the eigenvalues, eigenvectors and X-norms to file if (tlast) then call putevalwx(iq,evalwx(:,iq)) call putevecwxy(iq,dw(:,:,iq),ex(:,:,iq),fy(:,iq)) end if end do !$OMP END DO !$OMP END PARALLEL call freethd(nthd) deallocate(dw,ex,fy) ! broadcast arrays to every MPI process if (np_mpi > 1) then n=nbph*nbph do iq=1,nqpt lp=mod(iq-1,np_mpi) call mpi_bcast(evalwx(:,iq),nbph,mpi_double_precision,lp,mpicom,ierror) call mpi_bcast(xnorm(:,iq),nbph,mpi_double_precision,lp,mpicom,ierror) call mpi_bcast(dxx(:,:,iq),n,mpi_double_complex,lp,mpicom,ierror) call mpi_bcast(dwx(:,:,iq),n,mpi_double_complex,lp,mpicom,ierror) end do end if !--------------------------------------! ! electron eigenvalue equation ! !--------------------------------------! allocate(au(nstsv,nstsv,nkpt),bv(nstsv,nstsv,nkpt)) ! parallel loop over reduced k-point set 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) /= lp_mpi) cycle ! generate the matrix A call hmlepha(ik,au(:,:,ik)) ! generate the matrix B call hmlephb(ik,bv(:,:,ik)) ! solve the electronic Bogoliubov equation call eveqnuv(nstsv,au(:,:,ik),bv(:,:,ik),evaluv(:,ik)) end do !$OMP END DO !$OMP DO do ik=1,nkpt ! distribute among MPI processes if (mod(ik-1,np_mpi) /= lp_mpi) cycle ! compute the density matrices call dmatuv(nstsv,efermi,evalsv(:,ik),au(:,:,ik),bv(:,:,ik),dvv(:,:,ik), & duv(:,:,ik),vnorm(:,ik)) ! write the eigenvalues and eigenvectors to file if (tlast) then call putevaluv(ik,evaluv(:,ik)) call putevecuv(ik,au(:,:,ik),bv(:,:,ik)) end if end do !$OMP END DO !$OMP END PARALLEL call freethd(nthd) deallocate(au,bv) ! broadcast arrays to every MPI process if (np_mpi > 1) then n=nstsv*nstsv do ik=1,nkpt lp=mod(ik-1,np_mpi) call mpi_bcast(evaluv(:,ik),nstsv,mpi_double_precision,lp,mpicom,ierror) call mpi_bcast(vnorm(:,ik),nstsv,mpi_double_precision,lp,mpicom,ierror) call mpi_bcast(dvv(:,:,ik),n,mpi_double_complex,lp,mpicom,ierror) call mpi_bcast(duv(:,:,ik),n,mpi_double_complex,lp,mpicom,ierror) end do end if end subroutine elk-9.6.8/src/PaxHeaders/hmlepha.f900000644000000000000000000000013214626155521014123 xustar0030 mtime=1717099345.025991994 30 atime=1717099343.253982446 30 ctime=1717099345.025991994 elk-9.6.8/src/hmlepha.f900000644002504400250440000000403114626155521016643 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2020 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 hmlepha(ik,a) use modmain use modphonon use modbog use modomp implicit none ! arguments integer, intent(in) :: ik complex(8), intent(out) :: a(nstsv,nstsv) ! local variables integer iq,jq,ikq,isym,nthd integer i1,i2,j1,j2,l1,l2 real(8) vl(3),t0 complex(8) z1,z2 ! automatic arrays complex(4) ephmat(nstsv,nstsv,nbph) complex(8) x(nbph,nstsv),y(nstsv,nbph) ! prefactor t0=-2.d0*wqptnr*ephscf(1)**2/dengy a(:,:)=0.d0 if (anomalous) goto 10 ! parallel loop over non-reduced q-points call holdthd(nqptnr,nthd) !$OMP PARALLEL DO DEFAULT(SHARED) & !$OMP PRIVATE(ephmat,x,y,jq,vl,isym,ikq) & !$OMP PRIVATE(i1,i2,j1,j2,l1,l2,z1,z2) & !$OMP REDUCTION(+:a) & !$OMP NUM_THREADS(nthd) do iq=1,nqptnr ! equivalent reduced q-point jq=ivqiq(ivq(1,iq),ivq(2,iq),ivq(3,iq)) ! k+q-vector in lattice coordinates vl(:)=vkl(:,ik)+vql(:,iq) ! index to reduced k+q-vector call findkpt(vl,isym,ikq) ! read in the electron-phonon matrix elements from file call getephmkq(iq,ik,ephmat) ! perform the contraction do i2=1,nstsv do j2=1,nstsv do l2=1,nbph z1=0.d0 do j1=1,nstsv ! swap indices of VV† to get the density matrix at k+q z1=z1+ephmat(j1,i2,l2)*dvv(j2,j1,ikq) end do x(l2,j2)=z1 end do end do do l1=1,nbph do j2=1,nstsv z1=0.d0 do l2=1,nbph z2=dxx(l2,l1,jq)+dwx(l2,l1,jq) z1=z1+z2*x(l2,j2) end do y(j2,l1)=z1 end do end do do i1=1,i2 z1=0.d0 do l1=1,nbph do j2=1,nstsv z1=z1+conjg(ephmat(j2,i1,l1))*y(j2,l1) end do end do a(i1,i2)=a(i1,i2)+t0*z1 end do end do end do !$OMP END PARALLEL DO call freethd(nthd) 10 continue ! add the second-variational eigenvalues minus the Fermi energy do i1=1,nstsv a(i1,i1)=dble(a(i1,i1))+evalsv(i1,ik)-efermi end do end subroutine elk-9.6.8/src/PaxHeaders/hmlephb.f900000644000000000000000000000013214626155521014124 xustar0030 mtime=1717099345.026991999 30 atime=1717099343.255982457 30 ctime=1717099345.026991999 elk-9.6.8/src/hmlephb.f900000644002504400250440000000374114626155521016653 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2020 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 hmlephb(ik,b) use modmain use modphonon use modbog use modomp implicit none ! arguments integer, intent(in) :: ik complex(8), intent(out) :: b(nstsv,nstsv) ! local variables integer iq,jq,ikq,isym,nthd integer i1,i2,j1,j2,l1,l2 real(8) vl(3),t0 complex(8) z1,z2 ! automatic arrays complex(4) ephmat(nstsv,nstsv,nbph) complex(8) x(nbph,nstsv),y(nstsv,nbph) ! prefactor t0=-2.d0*wqptnr*ephscf(1)**2/dengy b(:,:)=0.d0 if (.not.anomalous) return ! parallel loop over non-reduced q-points call holdthd(nqptnr,nthd) !$OMP PARALLEL DO DEFAULT(SHARED) & !$OMP PRIVATE(ephmat,x,y,jq,vl,isym,ikq) & !$OMP PRIVATE(i1,i2,j1,j2,l1,l2,z1,z2) & !$OMP REDUCTION(+:b) & !$OMP NUM_THREADS(nthd) do iq=1,nqptnr ! equivalent reduced q-point jq=ivqiq(ivq(1,iq),ivq(2,iq),ivq(3,iq)) ! k+q-vector in lattice coordinates vl(:)=vkl(:,ik)+vql(:,iq) ! index to reduced k+q-vector call findkpt(vl,isym,ikq) ! read in the electron-phonon matrix elements from file call getephmkq(iq,ik,ephmat) ! perform the contraction do i2=1,nstsv if (abs(evalsv(i2,ik)-efermi) > ecutb) cycle do j1=1,nstsv do l2=1,nbph z1=0.d0 do j2=1,nstsv z1=z1+ephmat(j2,i2,l2)*duv(j1,j2,ikq) end do x(l2,j1)=z1 end do end do do l1=1,nbph do j1=1,nstsv z1=0.d0 do l2=1,nbph z2=dxx(l2,l1,jq)+dwx(l2,l1,jq) z1=z1+z2*x(l2,j1) end do y(j1,l1)=z1 end do end do do i1=1,nstsv if (bdiag.and.(i1 /= i2)) cycle if (abs(evalsv(i1,ik)-efermi) > ecutb) cycle z1=0.d0 do l1=1,nbph do j1=1,nstsv z1=z1+conjg(ephmat(j1,i1,l1))*y(j1,l1) end do end do b(i1,i2)=b(i1,i2)+t0*z1 end do end do end do !$OMP END PARALLEL DO call freethd(nthd) end subroutine elk-9.6.8/src/PaxHeaders/hmlephde.f900000644000000000000000000000013014626155521014271 xustar0029 mtime=1717099345.02899201 30 atime=1717099343.258982473 29 ctime=1717099345.02899201 elk-9.6.8/src/hmlephde.f900000644002504400250440000000554014626155521017021 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2020 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 hmlephde(iq,d,e) use modmain use modphonon use modbog use modomp implicit none ! arguments integer, intent(in) :: iq complex(8), intent(out) :: d(nbph,nbph),e(nbph,nbph) ! local variables integer ik,jk,ikq,isym,nthd integer i1,i2,j1,j2,l1,l2 real(8) vl(3),t0 complex(8) z1 ! automatic arrays complex(4) ephmat(nstsv,nstsv,nbph) complex(8) x(nstsv,nstsv),y(nstsv,nstsv) ! prefactor t0=-occmax*wkptnr*ephscf(1)**2/dengy e(:,:)=0.d0 ! parallel loop over non-reduced k-points call holdthd(nkptnr,nthd) !$OMP PARALLEL DO DEFAULT(SHARED) & !$OMP PRIVATE(ephmat,x,y,jk,vl,isym,ikq) & !$OMP PRIVATE(l1,l2,j1,j2,i1,i2,z1) & !$OMP REDUCTION(+:e) & !$OMP NUM_THREADS(nthd) do ik=1,nkptnr ! equivalent reduced k-point jk=ivkik(ivk(1,ik),ivk(2,ik),ivk(3,ik)) ! k+q-vector in lattice coordinates vl(:)=vkl(:,ik)+vql(:,iq) ! index to reduced k+q-vector call findkpt(vl,isym,ikq) ! read in the electron-phonon matrix elements from file call getephmkq(iq,ik,ephmat) ! perform the contraction if (anomalous) then do l2=1,nbph do j1=1,nstsv do i2=1,nstsv z1=0.d0 do j2=1,nstsv z1=z1+ephmat(j2,i2,l2)*duv(j1,j2,ikq) end do x(i2,j1)=z1 end do end do do i1=1,nstsv do j1=1,nstsv z1=0.d0 do i2=1,nstsv z1=z1-conjg(duv(i1,i2,jk))*x(i2,j1) end do y(j1,i1)=z1 end do end do do l1=1,nbph if (ediag.and.(l1 /= l2)) cycle z1=0.d0 do i1=1,nstsv do j1=1,nstsv z1=z1+conjg(ephmat(j1,i1,l1))*y(j1,i1) end do end do e(l1,l2)=e(l1,l2)+t0*z1 end do end do else do l2=1,nbph do j2=1,nstsv do i2=1,nstsv z1=0.d0 do j1=1,nstsv ! swap indices of VV† to get the density matrix at k+q z1=z1+ephmat(j1,i2,l2)*dvv(j2,j1,ikq) end do x(i2,j2)=z1 end do end do do j2=1,nstsv do i1=1,nstsv z1=0.d0 do i2=1,nstsv ! swap indices of VV† to get density matrix at k z1=z1+dvv(i2,i1,jk)*x(i2,j2) end do y(i1,j2)=z1 end do end do do l1=1,nbph if (ediag.and.(l1 /= l2)) cycle z1=0.d0 do j2=1,nstsv do i1=1,nstsv z1=z1+conjg(ephmat(j2,i1,l1))*y(i1,j2) end do end do e(l1,l2)=e(l1,l2)+t0*z1 end do end do end if end do !$OMP END PARALLEL DO call freethd(nthd) ! determine the matrix D = D0 or D = D0 + E if (tephde) then d(:,:)=e(:,:) else d(:,:)=0.d0 end if do l1=1,nbph d(l1,l1)=d(l1,l1)+wphq(l1,iq) end do end subroutine elk-9.6.8/src/PaxHeaders/getephmkq.f900000644000000000000000000000013214626155521014472 xustar0030 mtime=1717099345.029992015 30 atime=1717099343.261982489 30 ctime=1717099345.029992015 elk-9.6.8/src/getephmkq.f900000644002504400250440000000135314626155521017216 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2020 J. K. Dewhurst, S. Sharma and E. K. U. Gross. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. subroutine getephmkq(iqp,ikp,ephmat) use modmain use modphonon implicit none ! arguments integer, intent(in) :: iqp,ikp complex(4), intent(out) :: ephmat(nstsv,nstsv,nbph) ! local variables integer isym,lspl,iq,ik,iv(3) if (iqp <= nqpt) then ! q-point is in the reduced set iq=iqp ik=ikp else ! q-point is not in the reduced set call findqpt(vql(:,iqp),isym,iq) lspl=lsplsymc(isym) call i3mtv(symlat(:,:,lspl),ivk(:,ikp),iv) iv(:)=modulo(iv(:),ngridk(:)) ik=ivkiknr(iv(1),iv(2),iv(3)) end if ephmat(:,:,:)=ephmkq(:,:,:,ik,iq) end subroutine elk-9.6.8/src/PaxHeaders/ephdos.f900000644000000000000000000000013214626155521013767 xustar0030 mtime=1717099345.030992021 30 atime=1717099343.264982505 30 ctime=1717099345.030992021 elk-9.6.8/src/ephdos.f900000644002504400250440000000475014626155521016517 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2020 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 ephdos use modmain use modphonon use modbog implicit none ! local variables integer nsk(3),ik,ist,iw real(8) v(3),dw,vn,t1 ! allocatable arrays integer, allocatable :: idx(:) real(8), allocatable :: w(:),f(:,:),g(:) ! initialise universal variables call init0 call init1 call init2 call initeph allocate(idx(nstsv),w(nstsv)) do ik=1,nkpt ! get the eigenvalues from file call getevaluv(ik,evaluv(:,ik)) ! negate eigenvalues corresponding to V-norm > 1/2 do ist=1,nstsv if (vnorm(ist,ik) > 0.5d0) evaluv(ist,ik)=-evaluv(ist,ik) end do ! arrange in ascending order w(:)=evaluv(:,ik) call sortidx(nstsv,w,idx) evaluv(:,ik)=w(idx(:)) ! put the V-norm into the same order as the eigenvalues w(:)=vnorm(:,ik) vnorm(:,ik)=w(idx(:)) end do deallocate(idx,w) ! generate the partial and total DOS and write to file allocate(w(nwplot),f(nstsv,nkptnr),g(nwplot)) ! 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) ! set the weight array f(:,:)=occmax ! integrate over the Brillouin zone call brzint(nswplot,ngridk,nsk,ivkik,nwplot,wplot,nstsv,nstsv,evaluv,f,g) ! output the total electronic DOS to file open(50,file='TDOS_EPH.OUT.OUT',form='FORMATTED',action='WRITE') do iw=1,nwplot write(50,'(2G18.10)') w(iw),g(iw) end do close(50) ! output the FACE vs energy histogram to file open(50,file='FACEEH.OUT',form='FORMATTED',action='WRITE') do ik=1,nkpt ! map k-vector to first Brillouin zone v(:)=vkc(:,ik) call vecfbz(epslat,bvec,v) do ist=1,nstsv vn=vnorm(ist,ik) if ((vn > 0.d0).and.(vn < 1.d0)) then t1=-(vn*log(vn)+(1.d0-vn)*log(1.d0-vn)) else t1=0.d0 end if if (t1 < 1.d-4) cycle write(50,'(5G18.10)') evaluv(ist,ik),t1,v end do end do close(50) write(*,*) write(*,'("Info(ephdos):")') write(*,'(" Total electronic density of states for the electron-phonon")') write(*,'(" system written to TDOS_EPH.OUT.OUT")') write(*,*) write(*,'(" Fermionic anomalous correlation entropy vs energy histogram")') write(*,'(" written to FACEEH.OUT")') write(*,*) write(*,'(" Fermi energy is at zero in plots")') write(*,*) write(*,'(" DOS units are states/Hartree/unit cell")') deallocate(w,f,g) end subroutine elk-9.6.8/src/PaxHeaders/gradrhomt.f900000644000000000000000000000013214626155521014474 xustar0030 mtime=1717099345.031992026 30 atime=1717099343.267982522 30 ctime=1717099345.031992026 elk-9.6.8/src/gradrhomt.f900000644002504400250440000000137114626155521017220 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 ! automatic arrays complex(8) zfmt(npmtmax),gzfmt(npmtmax,3) ! add gradient contribution from rigid shift of muffin-tin nr=nrmt(isph) nri=nrmti(isph) np=npmt(isph) ! 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),wcrmt(:,:,isph),zfmt,npmtmax,gzfmt) ! subtract from the density derivative drhomt(1:np,iasph)=drhomt(1:np,iasph)-gzfmt(1:np,ipph) end subroutine elk-9.6.8/src/PaxHeaders/doccupy.f900000644000000000000000000000013214626155521014153 xustar0030 mtime=1717099345.033992037 30 atime=1717099343.269982532 30 ctime=1717099345.033992037 elk-9.6.8/src/doccupy.f900000644002504400250440000000217514626155521016702 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), 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 < de0) de0=de if (de > 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 < 0.d0) then de0=defermi else de1=defermi end if if ((de1-de0) < 1.d-12) return end do write(*,*) write(*,'("Warning(doccupy): could not find Fermi energy derivative")') write(*,'(" for s.c. loop ",I5)') iscl end subroutine elk-9.6.8/src/PaxHeaders/dhmlrad.f900000644000000000000000000000013214626155521014120 xustar0030 mtime=1717099345.034992042 30 atime=1717099343.272982549 30 ctime=1717099345.034992042 elk-9.6.8/src/dhmlrad.f900000644002504400250440000000713714626155521016652 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,i0,i1 integer l1,l2,l3,lm2 integer io,jo,ilo,jlo complex(8) zsm ! begin loops over atoms and species do ias=1,natmtot is=idxis(ias) nr=nrmt(is) nri=nrmti(is) iro=nri+1 !---------------------------! ! APW-APW integrals ! !---------------------------! do l1=0,lmaxapw do io=1,apword(l1,is) do l3=0,lmaxapw do jo=1,apword(l3,is) do l2=0,lmaxi do lm2=l2**2+1,(l2+1)**2 i1=lmmaxi*(nri-1)+lm2 zsm=sum(apwfr(1:nri,1,io,l1,ias)*apwfr(1:nri,1,jo,l3,ias) & *wrmt(1:nri,is)*dvsmt(lm2:i1:lmmaxi,ias)) i0=i1+lmmaxi i1=lmmaxo*(nr-iro)+i0 zsm=zsm+sum(apwfr(iro:nr,1,io,l1,ias)*apwfr(iro:nr,1,jo,l3,ias) & *wrmt(iro:nr,is)*dvsmt(i0:i1:lmmaxo,ias)) dhaa(lm2,jo,l3,io,l1,ias)=zsm end do end do do l2=lmaxi+1,lmaxo do lm2=l2**2+1,(l2+1)**2 i0=lmmaxi*nri+lm2 i1=lmmaxo*(nr-iro)+i0 zsm=sum(apwfr(iro:nr,1,io,l1,ias)*apwfr(iro:nr,1,jo,l3,ias) & *wrmt(iro:nr,is)*dvsmt(i0:i1:lmmaxo,ias)) dhaa(lm2,jo,l3,io,l1,ias)=zsm 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) do l2=0,lmaxi do lm2=l2**2+1,(l2+1)**2 i1=lmmaxi*(nri-1)+lm2 zsm=sum(lofr(1:nri,1,ilo,ias)*apwfr(1:nri,1,io,l3,ias) & *wrmt(1:nri,is)*dvsmt(lm2:i1:lmmaxi,ias)) i0=i1+lmmaxi i1=lmmaxo*(nr-iro)+i0 zsm=zsm+sum(lofr(iro:nr,1,ilo,ias)*apwfr(iro:nr,1,io,l3,ias) & *wrmt(iro:nr,is)*dvsmt(i0:i1:lmmaxo,ias)) dhloa(lm2,io,l3,ilo,ias)=zsm end do end do do l2=lmaxi+1,lmaxo do lm2=l2**2+1,(l2+1)**2 i0=lmmaxi*nri+lm2 i1=lmmaxo*(nr-iro)+i0 zsm=sum(lofr(iro:nr,1,ilo,ias)*apwfr(iro:nr,1,io,l3,ias) & *wrmt(iro:nr,is)*dvsmt(i0:i1:lmmaxo,ias)) dhloa(lm2,io,l3,ilo,ias)=zsm 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) do l2=0,lmaxi do lm2=l2**2+1,(l2+1)**2 i1=lmmaxi*(nri-1)+lm2 zsm=sum(lofr(1:nri,1,ilo,ias)*lofr(1:nri,1,jlo,ias)*wrmt(1:nri,is) & *dvsmt(lm2:i1:lmmaxi,ias)) i0=i1+lmmaxi i1=lmmaxo*(nr-iro)+i0 zsm=zsm+sum(lofr(iro:nr,1,ilo,ias)*lofr(iro:nr,1,jlo,ias) & *wrmt(iro:nr,is)*dvsmt(i0:i1:lmmaxo,ias)) dhlolo(lm2,jlo,ilo,ias)=zsm end do end do do l2=lmaxi+1,lmaxo do lm2=l2**2+1,(l2+1)**2 i0=lmmaxi*nri+lm2 i1=lmmaxo*(nr-iro)+i0 zsm=sum(lofr(iro:nr,1,ilo,ias)*lofr(iro:nr,1,jlo,ias)*wrmt(iro:nr,is)& *dvsmt(i0:i1:lmmaxo,ias)) dhlolo(lm2,jlo,ilo,ias)=zsm end do end do end do end do ! end loops over atoms and species end do end subroutine elk-9.6.8/src/PaxHeaders/gendwfsv.f900000644000000000000000000000013214626155521014330 xustar0030 mtime=1717099345.035992047 30 atime=1717099343.275982565 30 ctime=1717099345.035992047 elk-9.6.8/src/gendwfsv.f900000644002504400250440000001246214626155521017057 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)) > epsocc) then if (.not.done(ist)) then if (tsh) then call wfmtfv(ias,ngp(jspn),apwalmq(:,:,:,ias,jspn), & evecfv(:,ist,jspn),wfmt1(:,ist)) else call wfmtfv(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)) > epsocc) then if (.not.ddone(ist)) then if (tsh) then call dwfmtfv(ias,ngp(jspn),ngpq(jspn), & apwalmq(:,:,:,ias,jspn),dapwalm(:,:,:,jspn), & evecfv(:,ist,jspn),devecfv(:,ist,jspn),dwfmt1(:,ist)) else call dwfmtfv(ias,ngp(jspn),ngpq(jspn), & apwalmq(:,:,:,ias,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 dwfmtfv(ias,ngp,ngpq,apwalmq(:,:,:,ias,1),dapwalm,evecfv(:,k,1),& devecfv(:,k,1),dwfmt(:,ias,1,j)) else call dwfmtfv(ias,ngp,ngpq,apwalmq(:,:,:,ias,1),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)) > 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)) > 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 end subroutine elk-9.6.8/src/PaxHeaders/dwfmtfv.f900000644000000000000000000000013214626155521014162 xustar0030 mtime=1717099345.036992053 30 atime=1717099343.278982581 30 ctime=1717099345.036992053 elk-9.6.8/src/dwfmtfv.f900000644002504400250440000000406414626155521016710 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 dwfmtfv(ias,ngp,ngpq,apwalmq,dapwalm,evecfv,devecfv,dwfmt) use modmain use modphonon implicit none ! arguments integer, intent(in) :: ias,ngp,ngpq complex(8), intent(in) :: apwalmq(ngkmax,apwordmax,lmmaxapw) complex(8), intent(in) :: dapwalm(ngkmax,apwordmax,lmmaxapw) complex(8), intent(in) :: evecfv(nmatmax),devecfv(nmatmax) complex(8), intent(out) :: dwfmt(*) ! local variables integer is,io,ilo integer nrci,nrco,iro integer l,lm,npci,i complex(8) z1 ! external functions complex(8), external :: zdotu is=idxis(ias) iro=nrmti(is)+lradstp nrci=nrcmti(is) nrco=nrcmt(is)-nrci npci=npcmti(is) ! zero the wavefunction derivative dwfmt(1:npcmt(is))=0.d0 !-----------------------! ! APW functions ! !-----------------------! do l=0,lmaxo do lm=l**2+1,(l+1)**2 i=npci+lm do io=1,apword(l,is) z1=zdotu(ngpq,devecfv,1,apwalmq(:,io,lm),1) if (ias == iasph) then z1=z1+zdotu(ngp,evecfv,1,dapwalm(:,io,lm),1) end if if (l <= lmaxi) then call zfzrf(nrci,z1,lradstp,apwfr(1,1,io,l,ias),lmmaxi,dwfmt(lm)) end if call zfzrf(nrco,z1,lradstp,apwfr(iro,1,io,l,ias),lmmaxo,dwfmt(i)) end do end do end do !---------------------------------! ! local-orbital functions ! !---------------------------------! do ilo=1,nlorb(is) l=lorbl(ilo,is) do lm=l**2+1,(l+1)**2 i=npci+lm z1=devecfv(ngpq+idxlo(lm,ilo,ias)) if (l <= lmaxi) then call zfzrf(nrci,z1,lradstp,lofr(1,1,ilo,ias),lmmaxi,dwfmt(lm)) end if call zfzrf(nrco,z1,lradstp,lofr(iro,1,ilo,ias),lmmaxo,dwfmt(i)) end do end do return contains pure subroutine zfzrf(n,z,ld1,rf,ld2,zf) implicit none ! arguments integer, intent(in) :: n complex(8), intent(in) :: z integer, intent(in) :: ld1 real(8), intent(in) :: rf(ld1,n) integer, intent(in) :: ld2 complex(8), intent(inout) :: zf(ld2,n) zf(1,:)=zf(1,:)+z*rf(1,:) end subroutine end subroutine elk-9.6.8/src/PaxHeaders/gengqvec.f900000644000000000000000000000013214626155521014304 xustar0030 mtime=1717099345.038992064 30 atime=1717099343.281982597 30 ctime=1717099345.038992064 elk-9.6.8/src/gengqvec.f900000644002504400250440000000162614626155521017033 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 do ig=1,ngtot ! G+q-vector in Cartesian coordinates vgqc(1:3,ig)=vgc(1:3,ig)+vqc(1:3,iq) ! G+q-vector length gqc(ig)=sqrt(vgqc(1,ig)**2+vgqc(2,ig)**2+vgqc(3,ig)**2) end do ! spherical harmonics for G+q-vectors do ig=1,ngvec call genylmv(.true.,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 end subroutine elk-9.6.8/src/PaxHeaders/writedvs.f900000644000000000000000000000013214626155521014354 xustar0030 mtime=1717099345.039992069 30 atime=1717099343.283982608 30 ctime=1717099345.039992069 elk-9.6.8/src/writedvs.f900000644002504400250440000000147214626155521017102 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(150,file='DVS'//trim(fext),form='UNFORMATTED',action='WRITE') write(150) version write(150) nspecies write(150) lmmaxo do is=1,nspecies write(150) natoms(is) write(150) nrmt(is) end do write(150) ngridg do ias=1,natmtot is=idxis(ias) call zfmtpack(.false.,nrmt(is),nrmti(is),dvsmt(:,ias),zfmt(:,:,ias)) end do write(150) zfmt,dvsir close(150) deallocate(zfmt) end subroutine elk-9.6.8/src/PaxHeaders/readdyn.f900000644000000000000000000000013214626155521014133 xustar0030 mtime=1717099345.040992074 30 atime=1717099343.286982624 30 ctime=1717099345.040992074 elk-9.6.8/src/readdyn.f900000644002504400250440000000244714626155521016664 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 dynfext(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 end subroutine elk-9.6.8/src/PaxHeaders/dyntask.f900000644000000000000000000000012714626155521014166 xustar0029 mtime=1717099345.04199208 29 atime=1717099343.28998264 29 ctime=1717099345.04199208 elk-9.6.8/src/dyntask.f900000644002504400250440000000275614626155521016716 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 dynamical matrix file extension call dynfext(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(*,'("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 == 0) then fext='.OUT' else call dynfext(iqph,isph,iaph,ipph,fext) end if ! set the q = 0 flag if (iqph == 1) then tphq0=.true. else tphq0=.false. end if end subroutine elk-9.6.8/src/PaxHeaders/dpotks.f900000644000000000000000000000013214626155521014011 xustar0030 mtime=1717099345.043992091 30 atime=1717099343.292982656 30 ctime=1717099345.043992091 elk-9.6.8/src/dpotks.f900000644002504400250440000000252014626155521016532 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,np,nthd ! convert density derivative to spherical coordinates call holdthd(natmtot,nthd) !$OMP PARALLEL DO DEFAULT(SHARED) & !$OMP PRIVATE(is) & !$OMP NUM_THREADS(nthd) do ias=1,natmtot is=idxis(ias) call zbshtip(nrmt(is),nrmti(is),drhomt(:,ias)) end do !$OMP END PARALLEL DO call freethd(nthd) ! compute the exchange-correlation potential derivative call dpotxc ! convert density derivative to spherical harmonics call holdthd(natmtot,nthd) !$OMP PARALLEL DO DEFAULT(SHARED) & !$OMP PRIVATE(is) & !$OMP NUM_THREADS(nthd) do ias=1,natmtot is=idxis(ias) call zfshtip(nrmt(is),nrmti(is),drhomt(:,ias)) end do !$OMP END PARALLEL DO 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 dvsir(1:ngtot)=dvsir(1:ngtot)+dvclir(1:ngtot) ! 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) end subroutine elk-9.6.8/src/PaxHeaders/dpotxc.f900000644000000000000000000000013214626155521014006 xustar0030 mtime=1717099345.044992096 30 atime=1717099343.295982672 30 ctime=1717099345.044992096 elk-9.6.8/src/dpotxc.f900000644002504400250440000001106314626155521016531 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(:,:) ! 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)) !---------------------------------------! ! 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),dbsmt(:,ias,idm)) call zfshtip(nrc,nrci,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) end subroutine elk-9.6.8/src/PaxHeaders/deveqnfv.f900000644000000000000000000000013214626155521014323 xustar0030 mtime=1717099345.045992101 30 atime=1717099343.298982689 30 ctime=1717099345.045992101 elk-9.6.8/src/deveqnfv.f900000644002504400250440000000710514626155521017050 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,is,ias,jst,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 real(8), external :: ddot ! 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_j O)|v_j> = 0 ! (note: these are also the eigenvalues/vectors of O⁻¹ 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 /= 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,is) & !$OMP NUM_THREADS(nthd) !$OMP SECTION dh(:,:)=0.d0 do ias=1,natmtot is=idxis(ias) call dhmlaa(is,ias,ngp,ngpq,apwalm(:,:,:,ias),apwalmq(:,:,:,ias),dapwalm, & dapwalmq,nmq,dh) call dhmlalo(is,ias,ngp,ngpq,apwalm(:,:,:,ias),apwalmq(:,:,:,ias),dapwalm, & dapwalmq,nmq,dh) call dhmllolo(is,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 is=idxis(ias) call dolpaa(is,ias,ngp,ngpq,apwalm(:,:,:,ias),apwalmq(:,:,:,ias),dapwalm, & dapwalmq,nmq,od) call dolpalo(is,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 jst=1,nstfv ! compute |dv_j> = V (e_j - D)⁻¹ V† (dH - e_j dO)|v_j> z1=-evalfv(jst) call zgemv('N',nmq,nm,z1,od,nmq,evecfv(:,jst),1,zzero,x,1) call zgemv('N',nmq,nm,zone,dh,nmq,evecfv(:,jst),1,zone,x,1) ! compute the first-order change in eigenvalue if (tphq0) then devalfvp(jst)=ddot(2*nmq,evecfv(:,jst),1,x,1) else devalfvp(jst)=0.d0 end if call zgemv('C',nmq,nmq,zone,h,nmq,x,1,zzero,y,1) do i=1,nmq t1=evalfv(jst)-w(i) if (abs(t1) > 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(:,jst),1) end do deallocate(w,h,dh,od,x,y) end subroutine elk-9.6.8/src/PaxHeaders/dpotcoul.f900000644000000000000000000000013214626155521014336 xustar0030 mtime=1717099345.046992107 30 atime=1717099343.301982705 30 ctime=1717099345.046992107 elk-9.6.8/src/dpotcoul.f900000644002504400250440000000154614626155521017066 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 np ! automatic arrays complex(8) gzfmt(npmtmax,3) ! 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 nuclear potential call gradzvcln(isph,gzfmt) ! subtract gradient component corresponding to the phonon polarisation np=npmt(isph) dvclmt(1:np,iasph)=dvclmt(1:np,iasph)-gzfmt(1:np,ipph) ! solve Poisson's equation in the entire unit cell call zpotcoul(nrmt,nrmti,npmt,nrmtmax,rlmt,ngridg,igfft,ngvec,gqc,gclgq,ngvec, & jlgqrmt,ylmgq,sfacgq,drhoir,npmtmax,dvclmt,dvclir) end subroutine elk-9.6.8/src/PaxHeaders/drhomagk.f900000644000000000000000000000013214626155521014301 xustar0030 mtime=1717099345.048992118 30 atime=1717099343.303982716 30 ctime=1717099345.048992118 elk-9.6.8/src/drhomagk.f900000644002504400250440000001531414626155521017027 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)) < epsocc) cycle nst=nst+1 idx(nst)=ist 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) !****** use lock 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 pure 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 end subroutine pure 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 !******* speed up: see rhomagk end subroutine pure 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 end subroutine pure 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 end subroutine pure 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(:) end subroutine pure 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) end subroutine end subroutine elk-9.6.8/src/PaxHeaders/gengvsmt.f900000644000000000000000000000013214626155521014337 xustar0030 mtime=1717099345.049992123 30 atime=1717099343.306982732 30 ctime=1717099345.049992123 elk-9.6.8/src/gengvsmt.f900000644002504400250440000000125014626155521017057 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 ! automatic arrays complex(8) 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),wcrmt(:,:,isph),zfmt,npmtmax,gzfmt) ! copy current polarisation component to global array gvsmt(1:np)=gzfmt(1:np,ipph) end subroutine elk-9.6.8/src/PaxHeaders/dforce.f900000644000000000000000000000013214626155521013747 xustar0030 mtime=1717099345.050992128 30 atime=1717099343.309982748 30 ctime=1717099345.050992128 elk-9.6.8/src/dforce.f900000644002504400250440000001230714626155521016474 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 modmpi use modomp implicit none ! arguments complex(8), intent(out) :: dyn(3,natmtot) ! local variables integer ik,is,ias,nthd integer nr,nri,np,i complex(8) z1 ! automatic arrays complex(8) dynibs(3,natmtot) ! 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), 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) ! calculate the gradient of the nuclear potential call gradzvcln(isph,gzfmt) ! compute the q-dependent nuclear Coulomb potential derivative zvclmt(:,:)=0.d0 zvclmt(1:np,iasph)=gzfmt(1:np,ipph) tphdyn=.true. ! zero the interstitial density zrhoir(:)=0.d0 call zpotcoul(nrmt,nrmti,npmt,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=sum(cfunir(:)*conjg(zvclir(:))*drhoir(:)) 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,nrmtmax,rlmt,ngridg,igfft,ngvec,gc,gclg,ngvec, & jlgrmt,ylmg,sfacg,zrhoir,npmtmax,zvclmt,zvclir) tphdyn=.false. ! multiply with density gradient and integrate z1=sum(cfunir(:)*zvclir(:)*grhoir(:,ipph)) 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 == iasph) then call rtozfmt(nr,nri,vclmt(:,ias),zfmt) call gradzfmt(nr,nri,rlmt(:,-1,is),wcrmt(:,:,is),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),wcrmt(:,:,is),dvclmt(:,ias),npmtmax,gzfmt) do i=1,3 if ((ias == iasph).and.(i == ipph)) cycle dyn(i,ias)=spzn(is)*gzfmt(1,i)*y00 end do end do !--------------------------------------------! ! IBS correction to force derivative ! !--------------------------------------------! dynibs(:,:)=0.d0 ! k-point dependent part call holdthd(nkptnr/np_mpi,nthd) !$OMP PARALLEL DO DEFAULT(SHARED) & !$OMP REDUCTION(+:dynibs) & !$OMP NUM_THREADS(nthd) do ik=1,nkptnr ! distribute among MPI processes if (mod(ik-1,np_mpi) /= lp_mpi) cycle call dforcek(ik,dynibs) end do !$OMP END PARALLEL DO call freethd(nthd) ! add IBS force derivatives from each process and redistribute if (np_mpi > 1) then call mpi_allreduce(mpi_in_place,dynibs,3*natmtot,mpi_double_complex,mpi_sum, & mpicom,ierror) end if ! 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)) dynibs(i,ias)=dynibs(i,ias)-z1 end do ! remove the gradient part from the density derivative for displaced muffin-tin if (ias == 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),wcrmt(:,:,is),drhomt(:,ias),npmtmax,gzfmt) ! convert Kohn-Sham potential to complex spherical harmonics call rtozfmt(nr,nri,vsmt(:,ias),zfmt) do i=1,3 z1=zfmtinp(nr,nri,wrmt(:,is),zfmt,gzfmt(:,i)) dynibs(i,ias)=dynibs(i,ias)-z1 end do end do ! add the IBS force derivatives to the total dyn(:,:)=dyn(:,:)+dynibs(:,:) deallocate(zrhomt,zrhoir,grhomt,grhoir) deallocate(zvclmt,zvclir,gvclmt,gvclir,zfmt,gzfmt) end subroutine elk-9.6.8/src/PaxHeaders/dforcek.f900000644000000000000000000000013214626155521014122 xustar0030 mtime=1717099345.052992139 30 atime=1717099343.312982764 30 ctime=1717099345.052992139 elk-9.6.8/src/dforcek.f900000644002504400250440000002411314626155521016645 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,dynibs) use modmain use modphonon use modpw implicit none ! arguments integer, intent(in) :: ik complex(8), intent(inout) :: dynibs(3,natmtot) ! local variables integer ispn0,ispn1,ispn,jspn integer n,nq,nm,nmq integer is,ias,ist,jst,jk integer iv(3),ig,i,j,l real(8) t1 complex(8) z1,z2,dt1,dz1,dz2 ! automatic arrays real(8) evalfv(nstfv,nspnfv) complex(8) vh(nmatmax),vo(nmatmax),dvh(nmatmax),dvo(nmatmax) complex(8) ffv(nstfv,nstfv),dffv(nstfv,nstfv),y(nstfv),dy(nstfv) ! allocatable arrays integer, allocatable :: ijg(:,:),ijgq(:,:) real(8), allocatable :: dp(:,:),dpq(:,:) 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(:,:) ! external functions complex(8), external :: zdotc ! allocate local arrays allocate(ijg(nmatmax,nmatmax),ijgq(nmatmax,nmatmax)) allocate(dp(nmatmax,nmatmax),dpq(nmatmax,nmatmax)) 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(nmatmax,nmatmax),o(nmatmax,nmatmax)) allocate(dlh(nmatmax,nmatmax),dlo(nmatmax,nmatmax)) 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)) ! 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(1:3,i,jspn,ik),vgkc(1:3,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(1:3,i,jspn,ik),vgkc(1:3,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 do j=1,nm h(1:j,j)=0.d0 end do call hmlaa(.false.,is,ias,n,apwalm(:,:,:,ias),nmatmax,h) call hmlalo(is,ias,n,apwalm(:,:,:,ias),nmatmax,h) do j=1,nm o(1:j,j)=0.d0 end do call olpaa(.false.,is,n,apwalm(:,:,:,ias),nmatmax,o) call olpalo(is,ias,n,apwalm(:,:,:,ias),nmatmax,o) hq(:,:)=0.d0 call hmlaaq(is,ias,n,nq,apwalm(:,:,:,ias),apwalmq(:,:,:,ias),nmatmax,hq) call hmlaloq(is,ias,n,nq,apwalm(:,:,:,ias),apwalmq(:,:,:,ias),nmatmax,hq) oq(:,:)=0.d0 call olpaaq(is,n,nq,apwalm(:,:,:,ias),apwalmq(:,:,:,ias),nmatmax,oq) call olpaloq(is,ias,n,nq,apwalm(:,:,:,ias),apwalmq(:,:,:,ias),nmatmax,oq) ! Hamiltonian and overlap derivatives dh(:,:)=0.d0 call dhmlaa(is,ias,n,n,apwalm(:,:,:,ias),apwalm(:,:,:,ias),dapwalm,dapwalm,& nmatmax,dh) call dhmlalo(is,ias,n,n,apwalm(:,:,:,ias),apwalm(:,:,:,ias),dapwalm, & dapwalm,nmatmax,dh) od(:,:)=0.d0 call dolpaa(is,ias,n,n,apwalm(:,:,:,ias),apwalm(:,:,:,ias),dapwalm,dapwalm,& nmatmax,od) call dolpalo(is,ias,n,n,dapwalm,dapwalm,nmatmax,od) ! loop over Cartesian directions do l=1,3 ! APW-APW contribution do j=1,n do i=1,j ig=ijg(i,j) t1=vgc(l,ig) z1=-ffacg(ig,is)*conjg(sfacg(ig,ias)) z2=t1*(dp(i,j)*z1+h(i,j)) dlh(i,j)=cmplx(-aimag(z2),dble(z2),8) z2=t1*(z1+o(i,j)) dlo(i,j)=cmplx(-aimag(z2),dble(z2),8) end do end do do j=n+1,nm ! APW-local-orbital contribution do i=1,n t1=vgkc(l,i,jspn,ik) z1=t1*h(i,j) dlh(i,j)=cmplx(-aimag(z1),dble(z1),8) z1=t1*o(i,j) dlo(i,j)=cmplx(-aimag(z1),dble(z1),8) end do ! zero the local-orbital-local-orbital contribution do i=n+1,j dlh(i,j)=0.d0 dlo(i,j)=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 == 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,nmatmax,evecfv(:,jst,jspn),1,zzero,vh,1) call zhemv('U',nm,zone,dlo,nmatmax,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,nmatmax,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 dynibs(l,ias)=dynibs(l,ias)-wkptnr*z1 ! 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) deallocate(apwalm,apwalmq,dapwalm) deallocate(evecfv,devecfv) deallocate(h,o,dlh,dlo,hq,oq,dh,od) deallocate(dlhq,dloq,ddlh,ddlo) if (tevecsv) deallocate(evecsv,devecsv) end subroutine elk-9.6.8/src/PaxHeaders/dynqtor.f900000644000000000000000000000013214626155521014205 xustar0030 mtime=1717099345.053992144 30 atime=1717099343.316982786 30 ctime=1717099345.053992144 elk-9.6.8/src/dynqtor.f900000644002504400250440000000426114626155521016732 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 ! automatic arrays complex(8) 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=ivqiq(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 < epslat) then call dynsymapp(isym,vql(:,iq),dynq(:,:,iq),dyns) n=n+1 end if end do if (n == 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(:,:,:) end subroutine elk-9.6.8/src/PaxHeaders/dynevs.f900000644000000000000000000000013214626155521014015 xustar0030 mtime=1717099345.055992155 30 atime=1717099343.319982802 30 ctime=1717099345.055992155 elk-9.6.8/src/dynevs.f900000644002504400250440000000153014626155521016536 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(inout) :: 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) ! find the eigenvalues and eigenvectors of the matrix a call eveqnzh(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=dot_product(ev(:,i),a(:,k)) t2=dble(z1)**2+aimag(z1)**2 if (t2 > t1) then j=k t1=t2 end if end do w(i)=wt(j) end do end subroutine elk-9.6.8/src/PaxHeaders/phonon.f900000644000000000000000000000013214626155521014006 xustar0030 mtime=1717099345.056992161 30 atime=1717099343.322982818 30 ctime=1717099345.056992161 elk-9.6.8/src/phonon.f900000644002504400250440000002317114626155521016534 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 use moddelf implicit none ! local variables integer ik,jk,iv(3),jspn,idm integer is,ia,ias,ip,nthd integer nmix,nwork,n,lp ! use Broyden mixing only integer, parameter :: mtype=3 real(8) ddv,a,b character(256) fext ! allocatable arrays real(8), allocatable :: evalfv(:,:),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) /= 0).or.(iv(2) /= 0).or.(iv(3) /= 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 (lmaxi < 2) then write(*,*) write(*,'("Error(phonon): lmaxi too small for calculating DFPT phonons : ",& &I4)') lmaxi write(*,'(" Run the ground-state calculation again with lmaxi >= 2")') 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 == 0) return ! read in the density and potentials call readstate ! Fourier transform Kohn-Sham potential to G-space call genvsig ! 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 occupation numbers 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) nmix=2*size(dvsbs) ! determine the size of the mixer work array nwork=-1 call mixerifc(mtype,nmix,dvsbs,ddv,nwork,work) allocate(work(nwork)) ! allocate dynamical matrix column allocate(dyn(3,natmtot)) ! begin new dynamical matrix task 10 continue call dyntask(80,fext) ! if nothing more to do then return if (iqph == 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) <= 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 mixerifc(mtype,nmix,dvsbs,ddv,nwork,work) ! initialise the Fermi energy and occupancy derivatives defermi=0.d0 doccsv(:,:)=0.d0 ! set last self-consistent loop flag tlast=.false. ! 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) /= 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,jk,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 > 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 ! mix the old potential and field with the new call mixerifc(mtype,nmix,dvsbs,ddv,nwork,work) if (mp_mpi) then write(65,'(G18.10)') ddv flush(65) end if ! exit self-consistent loop if required if (tlast) goto 20 ! check for convergence if (iscl >= 2) then if (ddv < epspot) tlast=.true. end if ! broadcast tlast from master process to all other processes call mpi_bcast(tlast,1,mpi_logical,0,mpicom,ierror) ! 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) < 1.d-12) a=0.d0 if (abs(b) < 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) end if ! delete the non-essential files call delfiles(devec=.true.) ! synchronise MPI processes call mpi_barrier(mpicom,ierror) goto 10 end subroutine elk-9.6.8/src/PaxHeaders/dynrtoq.f900000644000000000000000000000013214626155521014205 xustar0030 mtime=1717099345.058992171 30 atime=1717099343.326982839 30 ctime=1717099345.058992171 elk-9.6.8/src/dynrtoq.f900000644002504400250440000000171514626155521016733 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) end subroutine elk-9.6.8/src/PaxHeaders/mcmillan.f900000644000000000000000000000013114626155521014300 xustar0030 mtime=1717099345.059992177 29 atime=1717099343.32898285 30 ctime=1717099345.059992177 elk-9.6.8/src/mcmillan.f900000644002504400250440000000275114626155521017030 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), external :: splint allocate(f(nwplot)) ! compute the total lambda do iw=1,nwplot if (w(iw) > 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) > 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²⟩¹⸍² do iw=1,nwplot if (w(iw) > 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) end subroutine elk-9.6.8/src/PaxHeaders/genephmat.f900000644000000000000000000000013214626155521014455 xustar0030 mtime=1717099345.060992182 30 atime=1717099343.331982866 30 ctime=1717099345.060992182 elk-9.6.8/src/genephmat.f900000644002504400250440000000742014626155521017202 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 npc,nq,igp,i,j,l real(8) vpql(3) ! automatic arrays integer idx(nstsv),idxq(nstsv) integer ngp(nspnfv),ngpq(nspnfv) complex(4) cfmt1(npcmtmax),cfmt2(npcmtmax),c(ngkmax) complex(8) x(nbph) ! allocatable arrays integer, allocatable :: igpig(:,:),igpqig(:,:) complex(4), allocatable :: wfmt(:,:,:,:),wfgp(:,:,:) complex(4), allocatable :: wfmtq(:,:,:,:),wfgpq(:,:,:) complex(4), allocatable :: wfir1(:),wfir2(:) ! 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 do ist=1,nstsv if (abs(evalsv(ist,jk)-efermi) > de) cycle nst=nst+1 idx(nst)=ist end do nstq=0 do ist=1,nstsv if (abs(evalsv(ist,jkq)-efermi) > de) cycle nstq=nstq+1 idxq(nstq)=ist end do ! generate the second-variational 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_sp(.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_sp(.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 ! !-------------------------! do j=1,nst jst=idx(j) do i=1,nstq ist=idxq(i) do ias=1,natmtot is=idxis(ias) npc=npcmt(is) if (spinpol) then cfmt1(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 cfmt1(1:npc)=wfmtq(1:npc,ias,1,i)*conjg(wfmt(1:npc,ias,1,j)) end if call cfsht(nrcmt(is),nrcmti(is),cfmt1,cfmt2) do l=1,nbph ephmat(ist,jst,l)=ephmat(ist,jst,l) & +dot_product(cfmt2(1:npc),dvmt(1:npc,ias,l)) end do end do end do end do deallocate(wfmt,wfmtq) !---------------------------! ! interstitial part ! !---------------------------! allocate(wfir1(ngtot),wfir2(ngtot)) do j=1,nst jst=idx(j) do ispn=1,nspinor jspn=jspnfv(ispn) nq=ngpq(jspn) ! Fourier transform wavefunction to real-space wfir1(:)=0.e0 do igp=1,ngp(jspn) wfir1(igfft(igpig(igp,jspn)))=wfgp(igp,ispn,j) end do call cfftifc(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 cfftifc(3,ngridg,-1,wfir2) do igp=1,nq c(igp)=wfir2(igfft(igpqig(igp,jspn))) end do do i=1,nstq ist=idxq(i) ! compute inner product ephmat(ist,jst,l)=ephmat(ist,jst,l) & +dot_product(wfgpq(1:nq,ispn,i),c(1:nq)) end do end do end do end do deallocate(wfir1,wfir2) ! 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,wfgp,wfgpq) end subroutine elk-9.6.8/src/PaxHeaders/gengkqvec.f900000644000000000000000000000013214626155521014457 xustar0030 mtime=1717099345.061992188 30 atime=1717099343.334982883 30 ctime=1717099345.061992188 elk-9.6.8/src/gengkqvec.f900000644002504400250440000000222314626155521017200 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(1:3,ik)=vkl(1:3,ik)+vql(1:3,iq) vkqc(1:3,ik)=vkc(1:3,ik)+vqc(1:3,iq) do jspn=1,nspnfv vl(:)=vkql(:,ik) vc(:)=vkqc(:,ik) ! spin-spiral case if (spinsprl) then if (jspn == 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 end subroutine elk-9.6.8/src/PaxHeaders/genmcph.f900000644000000000000000000000013214626155521014126 xustar0030 mtime=1717099345.062992193 30 atime=1717099343.337982899 30 ctime=1717099345.062992193 elk-9.6.8/src/genmcph.f900000644002504400250440000000131614626155521016651 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. pure 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 > 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 end subroutine elk-9.6.8/src/PaxHeaders/putdevecfv.f900000644000000000000000000000013214626155521014660 xustar0030 mtime=1717099345.064992204 30 atime=1717099343.340982915 30 ctime=1717099345.064992204 elk-9.6.8/src/putdevecfv.f900000644002504400250440000000210314626155521017376 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 use modramdisk implicit none ! arguments integer, intent(in) :: ik complex(8), intent(in) :: devecfv(nmatmax,nstfv,nspnfv) ! local variables integer recl character(256) fext,fname ! construct the dynamical matrix file extension call dynfext(iqph,isph,iaph,ipph,fext) ! construct filename fname=trim(scrpath)//'DEVECFV'//trim(fext) !$OMP CRITICAL(u222) ! write to RAM disk if required if (ramdisk) then call putrd(fname,ik,v1=vkl(:,ik),n1=nmatmax,n2=nstfv,n3=nspnfv, & nzv=nmatmax*nstfv*nspnfv,zva=devecfv) end if ! write to disk if required if (wrtdsk) then ! find the record length inquire(iolength=recl) vkl(:,ik),nmatmax,nstfv,nspnfv,devecfv open(222,file=fname,form='UNFORMATTED',access='DIRECT',recl=recl) write(222,rec=ik) vkl(:,ik),nmatmax,nstfv,nspnfv,devecfv close(222) end if !$OMP END CRITICAL(u222) end subroutine elk-9.6.8/src/PaxHeaders/getdevecfv.f900000644000000000000000000000013214626155521014627 xustar0030 mtime=1717099345.065992209 30 atime=1717099343.343982931 30 ctime=1717099345.065992209 elk-9.6.8/src/getdevecfv.f900000644002504400250440000000411514626155521017352 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 use modramdisk implicit none ! arguments integer, intent(in) :: ik,iq,is,ia,ip complex(8), intent(out) :: devecfv(nmatmax,nstfv,nspnfv) ! local variables logical tgs integer recl,nmatmax_,nstfv_,nspnfv_ real(8) vkl_(3),t1 character(256) fext,fname ! construct the dynamical matrix file extension call dynfext(iq,is,ia,ip,fext) ! construct filename fname=trim(scrpath)//'DEVECFV'//trim(fext) !$OMP CRITICAL(u222) ! read from RAM disk if required if (ramdisk) then call getrd(fname,ik,tgs,v1=vkl_,n1=nmatmax_,n2=nstfv_,n3=nspnfv_, & nzv=nmatmax*nstfv*nspnfv,zva=devecfv) if (tgs) goto 10 end if ! find the record length inquire(iolength=recl) vkl_,nmatmax_,nstfv_,nspnfv_,devecfv open(222,file=fname,form='UNFORMATTED',access='DIRECT',recl=recl) read(222,rec=ik) vkl_,nmatmax_,nstfv_,nspnfv_,devecfv close(222) 10 continue !$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 > 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 /= 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 /= 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 /= 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 end subroutine elk-9.6.8/src/PaxHeaders/putdevecsv.f900000644000000000000000000000013214626155521014675 xustar0030 mtime=1717099345.066992214 30 atime=1717099343.346982947 30 ctime=1717099345.066992214 elk-9.6.8/src/putdevecsv.f900000644002504400250440000000177014626155521017424 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 use modramdisk implicit none ! arguments integer, intent(in) :: ik complex(8), intent(in) :: devecsv(nstsv,nstsv) ! local variables integer recl character(256) fext,fname ! construct the dynamical matrix file extension call dynfext(iqph,isph,iaph,ipph,fext) ! construct filename fname=trim(scrpath)//'DEVECSV'//trim(fext) !$OMP CRITICAL(u226) ! write to RAM disk if required if (ramdisk) then call putrd(fname,ik,v1=vkl(:,ik),n1=nstsv,nzv=nstsv*nstsv,zva=devecsv) end if ! write to disk if required if (wrtdsk) then ! find the record length inquire(iolength=recl) vkl(:,ik),nstsv,devecsv open(226,file=fname,form='UNFORMATTED',access='DIRECT',recl=recl) write(226,rec=ik) vkl(:,ik),nstsv,devecsv close(226) end if !$OMP END CRITICAL(u226) end subroutine elk-9.6.8/src/PaxHeaders/getdevecsv.f900000644000000000000000000000013014626155521014642 xustar0029 mtime=1717099345.06799222 30 atime=1717099343.348982958 29 ctime=1717099345.06799222 elk-9.6.8/src/getdevecsv.f900000644002504400250440000000303414626155521017366 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 use modramdisk implicit none ! arguments integer, intent(in) :: ik,iq,is,ia,ip complex(8), intent(out) :: devecsv(nstsv,nstsv) ! local variables logical tgs integer recl,nstsv_ real(8) vkl_(3),t1 character(256) fext,fname ! construct the dynamical matrix file extension call dynfext(iq,is,ia,ip,fext) ! construct filename fname=trim(scrpath)//'DEVECSV'//trim(fext) !$OMP CRITICAL(u226) ! read from RAM disk if required if (ramdisk) then call getrd(fname,ik,tgs,v1=vkl_,n1=nstsv_,nzv=nstsv*nstsv,zva=devecsv) if (tgs) goto 10 end if ! find the record length inquire(iolength=recl) vkl_,nstsv_,devecsv open(226,file=fname,form='UNFORMATTED',access='DIRECT',recl=recl) read(226,rec=ik) vkl_,nstsv_,devecsv close(226) 10 continue !$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 > 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 /= 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 end subroutine elk-9.6.8/src/PaxHeaders/phononsc.f900000644000000000000000000000013214626155521014334 xustar0030 mtime=1717099345.069992231 30 atime=1717099343.351982974 30 ctime=1717099345.069992231 elk-9.6.8/src/phononsc.f900000644002504400250440000001170314626155521017060 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 modmpi use moddelf implicit none ! local variables integer is,ia,ja,ias,jas integer ip,nph,p,n,i real(8) a,b,t1 real(8) ft(3,maxatoms*maxspecies) complex(8) z1,z2 ! allocatable arrays real(8), allocatable :: vsmt0(:,:),vsir0(:) complex(8), allocatable :: dyn(:,:) ! store original parameters natoms0(:)=natoms(:) avec0(:,:)=avec(:,:) atposl0(:,:,:)=atposl(:,:,:) bfcmt00(:,:,:)=bfcmt0(:,:,:) mommtfix0(:,:,:)=mommtfix(:,:,:) tshift0=tshift tforce0=tforce autokpt0=autokpt primcell0=primcell ngridk0(:)=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 natmtot0=natmtot idxis0(1:natmtot)=idxis(1:natmtot) bvec0(:,:)=bvec(:,:) binv0(:,:)=binv(:,:) atposc0(:,:,:)=atposc(:,:,:) ngridg0(:)=ngridg(:) ngtot0=ngtot if (allocated(ivg0)) deallocate(ivg0) allocate(ivg0(3,ngtot0)) ivg0(:,:)=ivg(:,:) if (allocated(igfft0)) deallocate(igfft0) allocate(igfft0(ngtot0)) igfft0(:)=igfft(:) ! allocate the Kohn-Sham potential derivative arrays if (allocated(dvsbs)) deallocate(dvsbs) n=npmtmax*natmtot+ngtot allocate(dvsbs(n)) dvsmt(1:npmtmax,1:natmtot) => dvsbs(1:) i=npmtmax*natmtot+1 dvsir(1:ngtot) => dvsbs(i:) ! 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(:)=natoms0(:) ! find a dynamical matrix to calculate call dyntask(80,filext) ! if nothing more to do then restore original input parameters and return if (iqph == 0) then filext='.OUT' natoms(:)=natoms0(:) avec(:,:)=avec0(:,:) atposl(:,:,:)=atposl0(:,:,:) bfcmt0(:,:,:)=bfcmt00(:,:,:) mommtfix(:,:,:)=mommtfix0(:,:,:) tshift=tshift0 tforce=tforce0 autokpt=autokpt0 primcell=primcell0 ngridk(:)=ngridk0(:) deallocate(ivg0,igfft0) return end if if (mp_mpi) write(*,'("Info(phononsc): working on ",A)') 'DYN'//trim(filext) ! dry run: just generate empty DYN files if (task == 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) <= 0.d0) goto 20 ! loop over phases: 0 = cos and 1 = sin displacements if ((ivq(1,iqph) == 0).and.(ivq(2,iqph) == 0).and.(ivq(3,iqph) == 0)) then nph=0 else nph=1 end if ! initialise or read the charge density and potentials from file if (task == 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,-0.5d0*deltaph) ! run the ground-state calculation call gndstate ! subsequent calculations will read in this supercell potential trdstate=.true. ! store the total force for this displacement do ias=1,natmtot ft(:,ias)=forcetot(:,ias) end do ! store the Kohn-Sham potential for this displacement allocate(vsmt0(npmtmax,natmtot),vsir0(ngtot)) vsmt0(:,:)=vsmt(:,:) vsir0(:)=vsir(:) ! generate the supercell again with positive displacement call genscph(p,0.5d0*deltaph) ! run the ground-state calculation again call gndstate ! compute the complex Kohn-Sham potential derivative with implicit q-phase call phscdvs(p,vsmt0,vsir0) deallocate(vsmt0,vsir0) ! Fourier transform the force differences to obtain the dynamical matrix z1=1.d0/(dble(nscph)*deltaph) ! multiply by i for sin-like displacement if (p == 1) z1=z1*zi ias=0 jas=0 do is=1,nspecies ja=0 do ia=1,natoms0(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,natoms0(is) ias=ias+1 do ip=1,3 a=dble(dyn(ip,ias)) b=aimag(dyn(ip,ias)) if (abs(a) < 1.d-12) a=0.d0 if (abs(b) < 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(:)=natoms0(:) natmtot=natmtot0 idxis(1:natmtot)=idxis0(1:natmtot) ngridg(:)=ngridg0(:) call writedvs(filext) end if ! delete the non-essential files call delfiles(evec=.true.,eval=.true.,occ=.true.) ! synchronise MPI processes call mpi_barrier(mpicom,ierror) goto 10 end subroutine elk-9.6.8/src/PaxHeaders/genscph.f900000644000000000000000000000013114626155521014133 xustar0030 mtime=1717099345.070992236 29 atime=1717099343.35498299 30 ctime=1717099345.070992236 elk-9.6.8/src/genscph.f900000644002504400250440000000325014626155521016656 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 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 /= 0).and.(p /= 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,nscph,vscph) ! construct supercell atomic positions and magnetic fields do is=1,nspecies na=0 do ia=1,natoms0(is) do i=1,nscph na=na+1 if (na > 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)+atposc0(:,ia,is) ! add small periodic displacement if ((isph == is).and.(iaph == ia)) then t1=dot_product(vqc(:,iqph),vscph(:,i)) if (p == 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)=bfcmt00(:,ia,is) mommtfix(:,na,is)=mommtfix0(:,ia,is) end if end do end do natoms(is)=na end do end subroutine elk-9.6.8/src/PaxHeaders/phdisp.f900000644000000000000000000000013214626155521013774 xustar0030 mtime=1717099345.071992241 30 atime=1717099343.357983006 30 ctime=1717099345.071992241 elk-9.6.8/src/phdisp.f900000644002504400250440000000356714626155521016531 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,t1 ! allocatable arrays complex(8), allocatable :: dynq(:,:,:),dynr(:,:,:) complex(8), allocatable :: dynp(:,:),ev(:,:) ! initialise universal variables call init0 call init2 ! allocate local arrays 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=ip01d,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,wphq(:,iq),ev) wmin=min(wmin,wphq(1,iq)) wmax=max(wmax,wphq(nbph,iq)) end do t1=(wmax-wmin)*0.5d0 wmin=wmin-t1 wmax=wmax+t1 ! 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=ip01d,npp1d write(50,'(2G18.10)') dpp1d(iq),wphq(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(dynq,dynr,dynp,ev) end subroutine elk-9.6.8/src/PaxHeaders/dynsymapp.f900000644000000000000000000000013214626155521014531 xustar0030 mtime=1717099345.072992247 30 atime=1717099343.360983023 30 ctime=1717099345.072992247 elk-9.6.8/src/dynsymapp.f900000644002504400250440000000360114626155521017253 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 end subroutine elk-9.6.8/src/PaxHeaders/dynsym.f900000644000000000000000000000013214626155521014030 xustar0030 mtime=1717099345.074992258 30 atime=1717099343.363983039 30 ctime=1717099345.074992258 elk-9.6.8/src/dynsym.f900000644002504400250440000000234014626155521016551 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 < epslat) then call dynsymapp(isym,v1,dynp,dyns) n=n+1 end if end do if (n == 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 j=1,nbph do i=1,j-1 dynp(i,j)=0.5d0*(dynp(i,j)+conjg(dynp(j,i))) dynp(j,i)=conjg(dynp(i,j)) end do dynp(j,j)=dble(dynp(j,j)) end do end subroutine elk-9.6.8/src/PaxHeaders/dynev.f900000644000000000000000000000013214626155521013632 xustar0030 mtime=1717099345.075992263 30 atime=1717099343.366983055 30 ctime=1717099345.075992263 elk-9.6.8/src/dynev.f900000644002504400250440000000236014626155521016355 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) <= 0.d0).or.(spmass(js) <= 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 <= 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 eveqnzh(nbph,nbph,ev,w) do i=1,nbph if (w(i) >= 0.d0) then w(i)=sqrt(w(i)) else w(i)=-sqrt(abs(w(i))) end if end do end subroutine elk-9.6.8/src/PaxHeaders/phdos.f900000644000000000000000000000013214626155521013622 xustar0030 mtime=1717099345.076992268 30 atime=1717099343.368983066 30 ctime=1717099345.076992268 elk-9.6.8/src/phdos.f900000644002504400250440000001007714626155521016351 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 :: wq(:),w(:),gw(:),f(:) complex(8), allocatable :: dynq(:,:,:),dynr(:,:,:) complex(8), allocatable :: dynp(:,:),ev(:,:) ! external functions real(8), external :: splint ! initialise universal variables call init0 call init2 allocate(wq(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),wq,ev) wmin=min(wmin,wq(1)) wmax=max(wmax,wq(nbph)) end do t1=(wmax-wmin)*0.1d0 wmin=wmin-t1 wmax=wmax+t1 wd=wmax-wmin if (wd < 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,wq,ev) do i=1,nbph t1=(wq(i)-wmin)/dw+1.d0 iw=nint(t1) if ((iw >= 1).and.(iw <= 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 > 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 > 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 > 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) > 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(wq,w,gw,f,dynq,dynr,dynp,ev) end subroutine elk-9.6.8/src/PaxHeaders/sumrule.f900000644000000000000000000000013214626155521014201 xustar0030 mtime=1717099345.077992274 30 atime=1717099343.371983082 30 ctime=1717099345.077992274 elk-9.6.8/src/sumrule.f900000644002504400250440000000337614626155521016734 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 ! automatic arrays real(8) w(nbph) complex(8) 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,1)+conjg(dynq(j,i,1))) end do end do call eveqnzh(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 end subroutine !EOC elk-9.6.8/src/PaxHeaders/writephn.f900000644000000000000000000000013214626155521014345 xustar0030 mtime=1717099345.079992285 30 atime=1717099343.374983098 30 ctime=1717099345.079992285 elk-9.6.8/src/writephn.f900000644002504400250440000000325214626155521017071 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 == 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) end subroutine elk-9.6.8/src/PaxHeaders/dynfext.f900000644000000000000000000000013014626155521014164 xustar0029 mtime=1717099345.08099229 30 atime=1717099343.377983114 29 ctime=1717099345.08099229 elk-9.6.8/src/dynfext.f900000644002504400250440000000132414626155521016710 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 dynfext(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, external :: gcd do i=1,3 if (ivq(i,iq) /= 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 end subroutine elk-9.6.8/src/PaxHeaders/writegamma.f900000644000000000000000000000013114626155521014641 xustar0030 mtime=1717099345.081992295 29 atime=1717099343.38098313 30 ctime=1717099345.081992295 elk-9.6.8/src/writegamma.f900000644002504400250440000000164714626155521017374 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',action='WRITE') 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")') end subroutine elk-9.6.8/src/PaxHeaders/readgamma.f900000644000000000000000000000013214626155521014423 xustar0030 mtime=1717099345.082992301 30 atime=1717099343.383983147 30 ctime=1717099345.082992301 elk-9.6.8/src/readgamma.f900000644002504400250440000000401114626155521017141 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 /= 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 /= 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 /= 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 > 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 > 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 /= 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) end subroutine elk-9.6.8/src/PaxHeaders/phlwidth.f900000644000000000000000000000013214626155521014330 xustar0030 mtime=1717099345.084992311 30 atime=1717099343.386983163 30 ctime=1717099345.084992311 elk-9.6.8/src/phlwidth.f900000644002504400250440000000605014626155521017053 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(:,:,:),dynr(:,:,:),dynp(:,:) complex(8), allocatable :: gmq(:,:,:),gmr(:,:,:),gmp(:,:) complex(8), allocatable :: ev(:,:),b(:,:) ! initialise universal variables call init0 call init2 allocate(wq(nbph),gq(nbph,nqpt),gp(nbph,npp1d)) allocate(dynq(nbph,nbph,nqpt)) allocate(dynr(nbph,nbph,nqptnr)) allocate(dynp(nbph,nbph)) allocate(gmq(nbph,nbph,nqpt)) allocate(gmr(nbph,nbph,nqptnr)) allocate(gmp(nbph,nbph)) allocate(ev(nbph,nbph),b(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) ! 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,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=ip01d,npp1d ! compute the dynamical matrix at this particular q-point call dynrtoq(vplp1d(:,iq),dynr,dynp) ! find the phonon eigenvalues and eigenvectors call dynev(dynp,wq,ev) ! compute the gamma matrix at this particular q-point call dynrtoq(vplp1d(:,iq),gmr,gmp) ! diagonalise the gamma matrix simultaneously with the dynamical matrix call dynevs(ev,gmp,gp(:,iq)) ! square the eigenvalues to recover the linewidths gp(:,iq)=gp(:,iq)**2 do i=1,nbph t1=gp(i,iq) if (t1 < gmin) gmin=t1 if (t1 > gmax) gmax=t1 end do end do t1=(gmax-gmin)*0.5d0 gmin=gmin-t1 gmax=gmax+t1 ! 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=ip01d,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) deallocate(dynq,dynr,dynp) deallocate(gmq,gmr,gmp) deallocate(ev,b) end subroutine elk-9.6.8/src/PaxHeaders/alpha2f.f900000644000000000000000000000013214626155521014022 xustar0030 mtime=1717099345.085992317 30 atime=1717099343.389983179 30 ctime=1717099345.085992317 elk-9.6.8/src/alpha2f.f900000644002504400250440000001155014626155521016546 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 :: gq(:,:),wq(:),a2fp(:),w(:),a2f(:) complex(8), allocatable :: dynq(:,:,:),dynr(:,:,:),dynp(:,:) complex(8), allocatable :: a2fmq(:,:,:),a2fmr(:,:,:),a2fmp(:,:) complex(8), allocatable :: ev(:,:),b(:,:) ! initialise universal variables call init0 call init1 call init2 ! allocate local arrays allocate(gq(nbph,nqpt),wq(nbph),a2fp(nbph)) allocate(w(nwplot),a2f(nwplot)) allocate(dynq(nbph,nbph,nqpt)) allocate(dynr(nbph,nbph,nqptnr)) allocate(dynp(nbph,nbph)) allocate(a2fmq(nbph,nbph,nqpt)) allocate(a2fmr(nbph,nbph,nqptnr)) allocate(a2fmp(nbph,nbph)) allocate(ev(nbph,nbph),b(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),wphq(:,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 (wphq(i,iq) > 1.d-8) then t1=sqrt(abs(gq(i,iq)/wphq(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,wphq(1,iq)) wmax=max(wmax,wphq(nbph,iq)) end do t1=(wmax-wmin)*0.1d0 wmin=wmin-t1 wmax=wmax+t1 wd=wmax-wmin if (wd < 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,wq,ev) ! compute the α²F matrix at this particular q-point call dynrtoq(v,a2fmr,a2fmp) ! diagonalise the α²F 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=(wq(i)-wmin)/dw+1.d0 iw=nint(t1) if ((iw >= 1).and.(iw <= 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 > 1.d-8) then t1=1.d0/t1 else t1=0.d0 end if a2f(:)=t1*a2f(:) ! smooth Eliashberg function if required if (nswplot > 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 α²F 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, λ : ",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, μ* : ",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, λ,")') 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,gq,a2fp,w,a2f) deallocate(dynq,dynr,dynp) deallocate(a2fmq,a2fmr,a2fmp) deallocate(ev,b) end subroutine elk-9.6.8/src/PaxHeaders/writelambda.f900000644000000000000000000000013114626155521014777 xustar0030 mtime=1717099345.086992322 29 atime=1717099343.39198319 30 ctime=1717099345.086992322 elk-9.6.8/src/writelambda.f900000644002504400250440000000204714626155521017525 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(gq) use modmain use modphonon implicit none ! arguments real(8), intent(in) :: 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*wphq(i,iq)**2 if (t1 > 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")') end subroutine elk-9.6.8/src/PaxHeaders/ephcouple.f900000644000000000000000000000013214626155521014471 xustar0030 mtime=1717099345.087992328 30 atime=1717099343.394983206 30 ctime=1717099345.087992328 elk-9.6.8/src/ephcouple.f900000644002504400250440000001265414626155521017223 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 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 :: gq(:,:),z(:) complex(8), allocatable :: dynq(:,:,:),ev(:,:),a(:,:) complex(8), allocatable :: dvmt(:,:,:),dvir(:,:) complex(8), allocatable :: zfmt(:),gzfmt(:,:,:) complex(8), allocatable :: ephmat(:,:,:) ! external functions real(8), external :: sdelta ! increase the angular momentum cut-off on the inner part of the muffin-tin lmaxi0=lmaxi lmaxi=max(lmaxi,4) ! initialise universal variables call init0 call init1 call init2 ! allocate global arrays if (allocated(dvsbs)) deallocate(dvsbs) n=npmtmax*natmtot+ngtot allocate(dvsbs(n)) dvsmt(1:npmtmax,1:natmtot) => dvsbs(1:) i=npmtmax*natmtot+1 dvsir(1:ngtot) => dvsbs(i:) ! allocate local arrays allocate(gq(nbph,nqpt),z(nbph)) 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 ! 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 determination of the Fermi energy swidth0=swidth swidth=1.d-5 call occupy swidth=swidth0 ! 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),wcrmt(:,:,is),zfmt,npmtmax,gzfmt(:,:,ias)) end do ! energy window for calculating the electron-phonon matrix elements if (task == 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),wphq(:,iq),ev) ! generate the matrix for converting between Cartesian and phonon coordinates call genmcph(wphq(:,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,dvsmt,dvsir) ! 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) ! convert to coarse radial mesh call zfmtftoc(nrcmt(js),nrcmti(js),dvsmt(:,jas),dvmt(:,jas,i)) ! apply the radial integration weights call zfmtwr(nrcmt(js),nrcmti(js),wrcmt(:,js),dvmt(:,jas,i)) end do ! multiply the interstitial potential with the characteristic function dvir(:,i)=dvsir(:)*cfunir(:) end do end do end do z(:)=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 REDUCTION(+:z) & !$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) /= 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 == 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=(wphq(i,iq)+evalsv(jst,jk)-evalsv(ist,jkq))/swidth t3=t2*sdelta(stype,x)/swidth t4=dble(ephmat(ist,jst,i))**2+aimag(ephmat(ist,jst,i))**2 z(i)=z(i)+wphq(i,iq)*t3*t4 end do end do end do ! end loop over k-points end do !$OMP END DO deallocate(ephmat) !$OMP END PARALLEL call freethd(nthd) ! store in phonon linewidths array gq(:,iq)=z(:) ! end loop over phonon q-points end do ! add gq from each MPI process if (np_mpi > 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(gq) if (task == 241) then write(*,*) write(*,'("Info(ephcouple):")') write(*,'(" wrote electron-phonon matrix elements to EPHMAT.OUT")') end if end if ! deallocate global arrays deallocate(dvsbs) ! deallocate local arrays deallocate(gq,dynq,ev,a) deallocate(dvmt,dvir,zfmt,gzfmt) ! restore original input parameters lmaxi=lmaxi0 end subroutine elk-9.6.8/src/PaxHeaders/eliashberg.f900000644000000000000000000000013214626155521014612 xustar0030 mtime=1717099345.089992338 30 atime=1717099343.397983222 30 ctime=1717099345.089992338 elk-9.6.8/src/eliashberg.f900000644002504400250440000001446314626155521017344 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,sm,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 < 1.d-2) tmin=0.1d0 ! maximum temperature tmax=5.d0*tc if (tmax < 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 < 1) nwf=1 if (nwf > 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 > maxwf) nwf=maxwf nwfcl=nint(2.d0*wrms/(2.d0*t0)) if (nwfcl < 1) nwfcl=1 if (nwfcl > 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(4*nwf+1,nthd) !$OMP PARALLEL DO DEFAULT(SHARED) & !$OMP PRIVATE(t1,sm,i) & !$OMP NUM_THREADS(nthd) do m=-2*nwf,2*nwf t1=(t0*dble(2*m))**2 sm=0.d0 do i=1,nwplot sm=sm+w(i)*a2f(i)/(w(i)**2+t1) end do l(m)=2.d0*sm*dw end do !$OMP END PARALLEL DO 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 sm=0.d0 do m=0,nwf-1 sm=sm+(l(n-m)-l(n+m+1))*z0(m)*wf(m)/r(m) end do z(n)=t0*sm/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 sm=0.d0 do m=0,nwf-1 sm=sm+(l(n-m)+l(n+m+1))*d0(m)*z(m)/r(m) end do d(n)=t0*(sm-dmu)/z(n) end do ! mix old and new gap functions d(0:nwf)=beta*d(0:nwf)+(1.d0-beta)*d0(0:nwf) sm=0.d0 do m=0,nwf sm=sm+abs(d0(m)-d(m)) end do sm=sm/dble(2*nwf) d0(0:nwf)=d(0:nwf) if (sm <= 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 >= 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) end subroutine !EOC elk-9.6.8/src/PaxHeaders/phscdvs.f900000644000000000000000000000013214626155521014157 xustar0030 mtime=1717099345.090992344 30 atime=1717099343.400983238 30 ctime=1717099345.090992344 elk-9.6.8/src/phscdvs.f900000644002504400250440000000451314626155521016704 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,vsmt0,vsir0) use modmain use modphonon implicit none ! arguments integer, intent(in) :: p real(8), intent(in) :: vsmt0(npmtmax,natmtot),vsir0(ngtot) ! local variables integer is,ia,ja,ias,jas integer nr,nri,np,i integer iv(3),ig0,ifg0,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/deltaph ! multiply by i for sin-like displacement if (p == 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,natoms0(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)-vsmt0(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(:)-vsir0(:)) call zfftifc(3,ngridg,-1,zfir) ! convert to G+q-space do ig0=1,ngtot0 ifg0=igfft0(ig0) vl(:)=dble(ivg0(:,ig0))+vql(:,iqph) call r3mv(bvec0,vl,vc) call r3mv(binv,vc,vl) iv(:)=nint(vl(:)) if ((iv(1) >= intgv(1,1)).and.(iv(1) <= intgv(2,1)).and. & (iv(2) >= intgv(1,2)).and.(iv(2) <= intgv(2,2)).and. & (iv(3) >= intgv(1,3)).and.(iv(3) <= intgv(2,3))) then ifg=igfft(ivgig(iv(1),iv(2),iv(3))) dvsir(ifg0)=dvsir(ifg0)+zfir(ifg) else dvsir(ifg0)=0.d0 end if end do ! Fourier transform back to real-space if (p == 1) call zfftifc(3,ngridg0,1,dvsir) deallocate(zfir) end subroutine elk-9.6.8/src/PaxHeaders/readdvs.f900000644000000000000000000000013214626155521014135 xustar0030 mtime=1717099345.091992349 30 atime=1717099343.403983254 30 ctime=1717099345.091992349 elk-9.6.8/src/readdvs.f900000644002504400250440000000550314626155521016662 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,dvsmt,dvsir) use modmain implicit none ! arguments integer, intent(in) :: iq,is,ia,ip complex(8), intent(out) :: dvsmt(npmtmax,natmtot),dvsir(ngtot) ! 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 dynfext(iq,is,ia,ip,fext) fname='DVS'//trim(fext) open(150,file=trim(fname),form='UNFORMATTED',action='READ',status='OLD', & iostat=ios) if (ios /= 0) then write(*,*) write(*,'("Error(readdvs): error opening ",A)') trim(fname) write(*,*) stop end if read(150) version_ if ((version(1) /= version_(1)).or.(version(2) /= version_(2)) & .or.(version(3) /= 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(150) nspecies_ if (nspecies /= 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(150) lmmaxo_ if (lmmaxo /= 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(150) natoms_ if (natoms(js) /= 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(150) nrmt_ if (nrmt(js) /= 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(150) ngridg_ if ((ngridg(1) /= ngridg_(1)).or.(ngridg(2) /= ngridg_(2)).or. & (ngridg(3) /= 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(150) zfmt,dvsir do jas=1,natmtot js=idxis(jas) call zfmtpack(.true.,nrmt(js),nrmti(js),zfmt(:,:,jas),dvsmt(:,jas)) end do close(150) deallocate(zfmt) end subroutine elk-9.6.8/src/PaxHeaders/readalpha2f.f900000644000000000000000000000013014626155521014654 xustar0029 mtime=1717099345.09399236 30 atime=1717099343.406983271 29 ctime=1717099345.09399236 elk-9.6.8/src/readalpha2f.f900000644002504400250440000000146314626155521017404 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',action='READ',status='OLD', & iostat=ios) if (ios /= 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 /= 0) then write(*,*) write(*,'("Error(readalpha2f): error reading from ALPHA2F.OUT")') write(*,'(" for frequency ",I6)') iw write(*,*) stop end if end do close(50) end subroutine elk-9.6.8/src/PaxHeaders/gendsocfr.f900000644000000000000000000000013214626155521014457 xustar0030 mtime=1717099345.094992365 30 atime=1717099343.409983287 30 ctime=1717099345.094992365 elk-9.6.8/src/gendsocfr.f900000644002504400250440000000214614626155521017204 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=y00*socscf/(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)) vr2(ir)=aimag(dvsmt(i,ias)) i=i+lmmaxi end do do ir=nri+1,nr vr1(ir)=dble(dvsmt(i,ias)) vr2(ir)=aimag(dvsmt(i,ias)) i=i+lmmaxo end do call splined(nr,wcrmt(:,:,is),vr1,dvr1) call splined(nr,wcrmt(:,:,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) end subroutine elk-9.6.8/src/PaxHeaders/bornechg.f900000644000000000000000000000013214626155521014274 xustar0030 mtime=1717099345.095992371 30 atime=1717099343.412983303 30 ctime=1717099345.095992371 elk-9.6.8/src/bornechg.f900000644002504400250440000000532514626155521017023 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2020 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 bornechg use modmain use modphonon use modmpi use modtest implicit none ! local variables integer ip,i real(8) vc(3),pvl1(3),pvl2(3) real(8) becl(3),becc(3),t1 ! initialise universal variables call init0 call init1 ! store original parameters atposl0(:,:,:)=atposl(:,:,:) atposc0(:,:,:)=atposc(:,:,:) ngridk0(:)=ngridk(:) maxscl0=maxscl tshift0=tshift ! no shifting of the atomic basis tshift=.false. ! begin new Born effective charge task 10 continue call bectask(80,filext) ! if nothing more to do then restore original input parameters and return if (isph == 0) then filext='.OUT' tshift=tshift0 atposl(:,:,:)=atposl0(:,:,:) return end if if (mp_mpi) then write(*,'("Info(bornechg): working on ",A)') 'BEC'//trim(filext) end if ! dry run: just generate empty BEC files if (task == 209) goto 10 ! apply negative atomic displacement atposl(:,:,:)=atposl0(:,:,:) atposc(:,:,:)=atposc0(:,:,:) vc(:)=atposc(:,iaph,isph) vc(ipph)=vc(ipph)-0.5d0*deltaph call r3mv(ainv,vc,atposl(:,iaph,isph)) ! initial ground-state run should start from atomic densities trdstate=.false. ! run the ground-state calculation call gndstate ! subsequent calculations will read in the previous potential trdstate=.true. ! compute the first polarisation in lattice coordinates call polar(pvl1) ! apply positive atomic displacement atposl(:,:,:)=atposl0(:,:,:) atposc(:,:,:)=atposc0(:,:,:) vc(:)=atposc(:,iaph,isph) vc(ipph)=vc(ipph)+0.5d0*deltaph call r3mv(ainv,vc,atposl(:,iaph,isph)) ! run the ground-state calculation again call gndstate ! compute the second polarisation call polar(pvl2) do i=1,3 ! add multiple of 2*pi to bring polarisation vectors into coincidence pvl1(i)=modulo(pvl1(i),twopi) pvl2(i)=modulo(pvl2(i),twopi) t1=pvl1(i)-pvl2(i) if (abs(t1-twopi) < abs(t1)) then pvl1(i)=pvl1(i)-twopi else if (abs(t1+twopi) < abs(t1)) then pvl1(i)=pvl1(i)+twopi end if ! calculate the Born effective charge from the difference in polarisations t1=wkptnr*occmax*dble(nkspolar*ngridk(i))/(twopi*deltaph) becl(i)=t1*(pvl2(i)-pvl1(i)) end do ! convert from lattice to Cartesian coordinates call r3mv(avec,becl,becc) ! add the core and nuclear charge becc(ipph)=becc(ipph)+chgcr(isph)+spzn(isph) ! write Born effective charge matrix row to file if (mp_mpi) then do ip=1,3 write(80,'(G18.10," : ip = ",I4)') becc(ip),ip end do close(80) end if ! synchronise MPI processes call mpi_barrier(mpicom,ierror) ! write test file if required and return if (test) then call writetest(208,'Born effective charge',nv=3,tol=1.d-3,rva=becc) return end if goto 10 end subroutine elk-9.6.8/src/PaxHeaders/bectask.f900000644000000000000000000000013214626155521014121 xustar0030 mtime=1717099345.097992381 30 atime=1717099343.414983314 30 ctime=1717099345.097992381 elk-9.6.8/src/bectask.f900000644002504400250440000000240414626155521016643 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2020 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 bectask(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) ! Born effective charge file extension call becfext(isph,iaph,ipph,fext) ! determine if the BEC file with this extension exists inquire(file='BEC'//trim(fext),exist=exist) if (.not.exist) then open(fnum,file='BEC'//trim(fext),form='FORMATTED') iasph=idxas(iaph,isph) goto 10 end if end do end do end do isph=0; iaph=0; iasph=0; ipph=0 write(*,'("Info(bectask): nothing more to do")') 10 continue ! broadcast to all other MPI processes 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 (isph == 0) then fext='.OUT' else call becfext(isph,iaph,ipph,fext) end if end subroutine elk-9.6.8/src/PaxHeaders/becfext.f900000644000000000000000000000013114626155521014124 xustar0030 mtime=1717099345.099992392 29 atime=1717099343.41798333 30 ctime=1717099345.099992392 elk-9.6.8/src/becfext.f900000644002504400250440000000060514626155521016650 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2020 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 becfext(is,ia,ip,fext) use modmain implicit none ! arguments integer, intent(in) :: is,ia,ip character(*), intent(out) :: fext write(fext,'("_S",I2.2,"_A",I3.3,"_P",I1,".OUT")') is,ia,ip end subroutine elk-9.6.8/src/PaxHeaders/putephmat.f900000644000000000000000000000013214626155521014514 xustar0030 mtime=1717099345.101992403 30 atime=1717099343.420983346 30 ctime=1717099345.101992403 elk-9.6.8/src/putephmat.f900000644002504400250440000000133514626155521017240 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 ! determine the record length inquire(iolength=recl) vql(:,iq),vkl(:,ik),nstsv,nbph,ephmat ! record number n=(iq-1)*nkptnr+ik !$OMP CRITICAL(u240) open(240,file='EPHMAT.OUT',form='UNFORMATTED',access='DIRECT',recl=recl) write(240,rec=n) vql(:,iq),vkl(:,ik),nstsv,nbph,ephmat close(240) !$OMP END CRITICAL(u240) end subroutine elk-9.6.8/src/PaxHeaders/getephmat.f900000644000000000000000000000013214626155521014463 xustar0030 mtime=1717099345.103992414 30 atime=1717099343.423983362 30 ctime=1717099345.103992414 elk-9.6.8/src/getephmat.f900000644002504400250440000000413714626155521017212 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(iqp,ikp,ephmat) use modmain use modphonon implicit none ! arguments integer, intent(in) :: iqp,ikp complex(8), intent(out) :: ephmat(nstsv,nstsv,nbph) ! local variables integer isym,lspl,iq,ik,iv(3) integer recl,n,nstsv_,nbph_ real(8) vql_(3),vkl_(3),t1 if (iqp <= nqpt) then ! q-point is in the reduced set iq=iqp ik=ikp else ! q-point is not in the reduced set call findqpt(vql(:,iqp),isym,iq) lspl=lsplsymc(isym) call i3mtv(symlat(:,:,lspl),ivk(:,ikp),iv) iv(:)=modulo(iv(:),ngridk(:)) ik=ivkiknr(iv(1),iv(2),iv(3)) end if ! find the record length inquire(iolength=recl) vql_,vkl_,nstsv_,nbph_,ephmat ! record number n=(iq-1)*nkptnr+ik !$OMP CRITICAL(u240) open(240,file='EPHMAT.OUT',form='UNFORMATTED',access='DIRECT',recl=recl) read(240,rec=n) vql_,vkl_,nstsv_,nbph_,ephmat close(240) !$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 > 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 > 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 /= 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 /= 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 end subroutine elk-9.6.8/src/PaxHeaders/xc_pzca.f900000644000000000000000000000013214626155521014134 xustar0030 mtime=1717099345.105992425 30 atime=1717099343.426983378 30 ctime=1717099345.105992425 elk-9.6.8/src/xc_pzca.f900000644002504400250440000000376114626155521016665 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 <= 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 < 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 >= 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 end subroutine !EOC elk-9.6.8/src/PaxHeaders/xc_pwca.f900000644000000000000000000000013214626155521014131 xustar0030 mtime=1717099345.107992435 30 atime=1717099343.429983394 30 ctime=1717099345.107992435 elk-9.6.8/src/xc_pwca.f900000644002504400250440000001101714626155521016653 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), parameter :: a(3)=[ 0.0310907d0, 0.01554535d0, 0.0168869d0 ] real(8), parameter :: a1(3)=[ 0.21370d0, 0.20548d0, 0.11125d0 ] real(8), parameter :: b1(3)=[ 7.5957d0, 14.1189d0, 10.357d0 ] real(8), parameter :: b2(3)=[ 3.5876d0, 6.1977d0, 3.6231d0 ] real(8), parameter :: b3(3)=[ 1.6382d0, 3.3662d0, 0.88026d0 ] real(8), parameter :: b4(3)=[ 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 <= 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 < 0.d0).or.(rdn < 0.d0).or.(r < 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 end subroutine !EOC elk-9.6.8/src/PaxHeaders/xc_pbe.f900000644000000000000000000000013214626155521013745 xustar0030 mtime=1717099345.109992446 30 atime=1717099343.431983405 30 ctime=1717099345.109992446 elk-9.6.8/src/xc_pbe.f900000644002504400250440000000711214626155521016470 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 >= 0.d0).and.(rdn >= 0.d0).and.(r > 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 end subroutine !EOC elk-9.6.8/src/PaxHeaders/xc_am05.f900000644000000000000000000000013214626155521013741 xustar0030 mtime=1717099345.111992457 30 atime=1717099343.434983421 30 ctime=1717099345.111992457 elk-9.6.8/src/xc_am05.f900000644002504400250440000002322314626155521016465 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 real(8) r,kf,s,v,u real(8) grho_,g2rho_,g3rho_ do i=1,n r=rho(i) if (r > 1.d-12) then grho_=grho(i) g2rho_=g2rho(i) g3rho_=g3rho(i) ! 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 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 <= 1.d-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 == 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)) 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 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 < 1.d-20) then val=z return end if e=exp(1.d0) ! inital guess if (abs(z+1.d0/e) > 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 /= -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) < (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-9.6.8/src/PaxHeaders/xc_xalpha.f900000644000000000000000000000013214626155521014454 xustar0030 mtime=1717099345.114992473 30 atime=1717099343.438983443 30 ctime=1717099345.114992473 elk-9.6.8/src/xc_xalpha.f900000644002504400250440000000244014626155521017176 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 > 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-9.6.8/src/PaxHeaders/xc_wc06.f900000644000000000000000000000013214626155521013756 xustar0030 mtime=1717099345.116992484 30 atime=1717099343.440983454 30 ctime=1717099345.116992484 elk-9.6.8/src/xc_wc06.f900000644002504400250440000000242514626155521016503 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 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 > 1.d-12) then grho_=grho(i) g2rho_=g2rho(i) g3rho_=g3rho(i) 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 end subroutine elk-9.6.8/src/PaxHeaders/x_wc06.f900000644000000000000000000000013114626155521013612 xustar0030 mtime=1717099345.118992495 29 atime=1717099343.44398347 30 ctime=1717099345.118992495 elk-9.6.8/src/x_wc06.f900000644002504400250440000000221314626155521016333 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. elemental 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) end subroutine elk-9.6.8/src/PaxHeaders/x_pbe.f900000644000000000000000000000013214626155521013602 xustar0030 mtime=1717099345.120992505 30 atime=1717099343.446983486 30 ctime=1717099345.120992505 elk-9.6.8/src/x_pbe.f900000644002504400250440000000125714626155521016331 0ustar00dewhurstdewhurst00000000000000 ! This routine is based on code written by K. Burke. elemental 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) end subroutine elk-9.6.8/src/PaxHeaders/c_pbe.f900000644000000000000000000000013214626155521013555 xustar0030 mtime=1717099345.122992516 30 atime=1717099343.449983502 30 ctime=1717099345.122992516 elk-9.6.8/src/c_pbe.f900000644002504400250440000000516414626155521016305 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 end subroutine elk-9.6.8/src/PaxHeaders/c_pbe_gcor.f900000644000000000000000000000013214626155521014567 xustar0030 mtime=1717099345.124992527 30 atime=1717099343.452983518 30 ctime=1717099345.124992527 elk-9.6.8/src/c_pbe_gcor.f900000644002504400250440000000073314626155521017314 0ustar00dewhurstdewhurst00000000000000 ! This routine is based on code written by K. Burke. elemental 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)) end subroutine elk-9.6.8/src/PaxHeaders/xc_vbh.f900000644000000000000000000000013214626155521013756 xustar0030 mtime=1717099345.126992538 30 atime=1717099343.454983529 30 ctime=1717099345.126992538 elk-9.6.8/src/xc_vbh.f900000644002504400250440000000620114626155521016477 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 >= 0.d0).and.(rdn >= 0.d0).and.(r > 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 end subroutine !EOC elk-9.6.8/src/PaxHeaders/fxc_pwca.f900000644000000000000000000000013214626155521014277 xustar0030 mtime=1717099345.128992548 30 atime=1717099343.457983545 30 ctime=1717099345.128992548 elk-9.6.8/src/fxc_pwca.f900000644002504400250440000001251414626155521017024 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), parameter :: a(3)=[ 0.0310907d0, 0.01554535d0, 0.0168869d0 ] real(8), parameter :: a1(3)=[ 0.21370d0, 0.20548d0, 0.11125d0 ] real(8), parameter :: b1(3)=[ 7.5957d0, 14.1189d0, 10.357d0 ] real(8), parameter :: b2(3)=[ 3.5876d0, 6.1977d0, 3.6231d0 ] real(8), parameter :: b3(3)=[ 1.6382d0, 3.3662d0, 0.88026d0 ] real(8), parameter :: b4(3)=[ 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 <= 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 < 0.d0).or.(rdn < 0.d0).or.(r < 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 end subroutine elk-9.6.8/src/PaxHeaders/k_tf.f900000644000000000000000000000013214626155521013430 xustar0030 mtime=1717099345.130992559 30 atime=1717099343.460983561 30 ctime=1717099345.130992559 elk-9.6.8/src/k_tf.f900000644002504400250440000000064514626155521016157 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2022 J. K. Dewhurst, S. Sharma and E. K. U. Gross. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. subroutine k_tf(n,rho,dtdr) implicit none ! arguments integer, intent(in) :: n real(8), intent(in) :: rho(n) real(8), intent(out) :: dtdr(n) ! local variables integer i do i=1,n call k_tf1(rho(i),dtdr(i)) end do end subroutine elk-9.6.8/src/PaxHeaders/k_tf_sp.f900000644000000000000000000000013014626155521014130 xustar0029 mtime=1717099345.13299257 30 atime=1717099343.463983578 29 ctime=1717099345.13299257 elk-9.6.8/src/k_tf_sp.f900000644002504400250440000000101114626155521016645 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2022 J. K. Dewhurst, S. Sharma and E. K. U. Gross. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. subroutine k_tf_sp(n,rhoup,rhodn,dtdru,dtdrd) implicit none ! arguments integer, intent(in) :: n real(8), intent(in) :: rhoup(n),rhodn(n) real(8), intent(out) :: dtdru(n),dtdrd(n) ! local variables integer i do i=1,n call k_tf1(2.d0*rhoup(i),dtdru(i)) end do do i=1,n call k_tf1(2.d0*rhodn(i),dtdrd(i)) end do end subroutine elk-9.6.8/src/PaxHeaders/k_tf1.f900000644000000000000000000000013214626155521013511 xustar0030 mtime=1717099345.134992581 30 atime=1717099343.466983594 30 ctime=1717099345.134992581 elk-9.6.8/src/k_tf1.f900000644002504400250440000000107614626155521016237 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2022 J. K. Dewhurst, S. Sharma and E. K. U. Gross. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. elemental subroutine k_tf1(rho,dtdr) implicit none ! arguments real(8), intent(in) :: rho real(8), intent(out) :: dtdr ! local variables real(8), parameter :: pi=3.1415926535897932385d0 ! Thomas-Fermi coefficient real(8), parameter :: ctf=(3.d0/10.d0)*(3.d0*pi**2)**(2.d0/3.d0) if (rho < 1.d-20) then dtdr=0.d0 return end if dtdr=ctf*(5.d0/3.d0)*rho**(2.d0/3.d0) end subroutine elk-9.6.8/src/PaxHeaders/k_tfvw.f900000644000000000000000000000013214626155521014005 xustar0030 mtime=1717099345.136992592 30 atime=1717099343.468983605 30 ctime=1717099345.136992592 elk-9.6.8/src/k_tfvw.f900000644002504400250440000000206014626155521016525 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2021 J. K. Dewhurst, S. Sharma and 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: k_tfvw ! !INTERFACE: subroutine k_tfvw(n,rho,grho2,dtdr,dtdgr2) ! !INPUT/OUTPUT PARAMETERS: ! n : number of density points (in,integer) ! rho : spin-unpolarised charge density (in,real(n)) ! grho2 : |grad rho|^2 (in,real(n)) ! dtdr : dtau/drho (out,real(n)) ! dtdgr2 : dtau/d|grad rho|^2 (out,real(n)) ! !DESCRIPTION: ! Calculates the derivatives $\partial\tau/\partial\rho$ and ! $\partial\tau/\partial|\nabla\rho|^2$ of the gradient expansion of the ! kinetic energy density $\tau$ for a set of points. See {\tt k\_tfvw1}. ! ! !REVISION HISTORY: ! Created December 2021 (JKD) !EOP !BOC implicit none ! arguments integer, intent(in) :: n real(8), intent(in) :: rho(n),grho2(n) real(8), intent(out) :: dtdr(n),dtdgr2(n) ! local variables integer i do i=1,n call k_tfvw1(rho(i),grho2(i),dtdr(i),dtdgr2(i)) end do end subroutine !EOC elk-9.6.8/src/PaxHeaders/k_tfvw_sp.f900000644000000000000000000000013214626155521014507 xustar0030 mtime=1717099345.138992602 30 atime=1717099343.471983621 30 ctime=1717099345.138992602 elk-9.6.8/src/k_tfvw_sp.f900000644002504400250440000000434514626155521017237 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2021 J. K. Dewhurst, S. Sharma and 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: k_tfvw_sp ! !INTERFACE: subroutine k_tfvw_sp(n,rhoup,rhodn,gup2,gdn2,dtdru,dtdrd,dtdgu2,dtdgd2) ! !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)) ! gup2 : |grad rhoup|^2 (in,real(n)) ! gdn2 : |grad rhodn|^2 (in,real(n)) ! dtdru : dtauup/drhoup (out,real(n)) ! dtdrd : dtaudn/drhodn (out,real(n)) ! dtdgu2 : dtauup/d(|grad rhoup|^2) (out,real(n)) ! dtdgu2 : dtaudn/d(|grad rhodn|^2) (out,real(n)) ! !DESCRIPTION: ! Calculates the derivatives of the spin-polarised kinetic energy density ! $\partial\tau^{\uparrow}/\partial\rho^{\uparrow}$, ! $\partial\tau^{\downarrow}/\partial\rho^{\downarrow}$, ! $\partial\tau^{\uparrow}/\partial|\nabla\rho^{\uparrow}|^2$ and ! $\partial\tau^{\downarrow}/\partial|\nabla\rho^{\downarrow}|^2$. ! This is done by noting the relation for the kinetic energy functional ! [G. L. Oliver and J. P. Perdew, {\it Phys. Rev. A} ! {\bf 20}, 397 (1979)] ! $$ T[\rho^{\uparrow},\rho^{\downarrow}]=\tfrac{1}{2}T[2\rho^{\uparrow}] ! +\tfrac{1}{2}T[2\rho^{\downarrow}] $$ ! and taking, for example, ! $$ \tau^{\uparrow}(\rho^{\uparrow},|\nabla\rho^{\uparrow}|^2) ! =\tfrac{1}{2}\tau(2\rho^{\uparrow},4|\nabla\rho^{\uparrow}|^2), $$ ! where the gradient expansion of the unpolarised kinetic energy density is ! used for $\tau$. See the routines {\tt k\_tfvw1}, {\tt ggamt\_4}, ! {\tt ggair\_4}, {\tt potxcmt}, and {\tt potxcir}. ! ! !REVISION HISTORY: ! Created December 2021 (JKD) !EOP !BOC implicit none ! arguments integer, intent(in) :: n real(8), intent(in) :: rhoup(n),rhodn(n) real(8), intent(in) :: gup2(n),gdn2(n) real(8), intent(out) :: dtdru(n),dtdrd(n) real(8), intent(out) :: dtdgu2(n),dtdgd2(n) ! local variables integer i do i=1,n call k_tfvw1(2.d0*rhoup(i),4.d0*gup2(i),dtdru(i),dtdgu2(i)) dtdgu2(i)=2.d0*dtdgu2(i) end do do i=1,n call k_tfvw1(2.d0*rhodn(i),4.d0*gdn2(i),dtdrd(i),dtdgd2(i)) dtdgd2(i)=2.d0*dtdgd2(i) end do end subroutine !EOC elk-9.6.8/src/PaxHeaders/k_tfvw1.f900000644000000000000000000000013214626155521014066 xustar0030 mtime=1717099345.140992613 30 atime=1717099343.474983637 30 ctime=1717099345.140992613 elk-9.6.8/src/k_tfvw1.f900000644002504400250440000000262114626155521016611 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2021 J. K. Dewhurst, S. Sharma and 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: k_tfvw1 ! !INTERFACE: elemental subroutine k_tfvw1(rho,grho2,dtdr,dtdgr2) ! !INPUT/OUTPUT PARAMETERS: ! rho : spin-unpolarised charge density (in,real) ! grho2 : |grad rho|^2 (in,real) ! dtdr : dtau/drho (out,real) ! dtdgr2 : dtau/d(|grad rho|^2) (out,real) ! !DESCRIPTION: ! Calculates the derivatives $\partial\tau/\partial\rho$ and ! $\partial\tau/\partial|\nabla\rho|^2$ of the gradient expansion of ! the kinetic energy density $\tau$. This includes the Thomas-Fermi and ! von Weizsacker terms: ! $$ \tau=\frac{3}{10}(3\pi^2)^{2/3}\rho^{5/3} ! +\frac{1}{72}\frac{|\nabla\rho|^2}{\rho}. $$ ! ! !REVISION HISTORY: ! Created December 2021 (JKD) !EOP !BOC implicit none ! arguments real(8), intent(in) :: rho,grho2 real(8), intent(out) :: dtdr,dtdgr2 ! local variables real(8), parameter :: pi=3.1415926535897932385d0 ! Thomas-Fermi coefficient real(8), parameter :: ctf=(3.d0/10.d0)*(3.d0*pi**2)**(2.d0/3.d0) ! von Weizsacker coefficient real(8), parameter :: cvw=1.d0/72.d0 real(8) ri,t1,t2 if ((rho < 1.d-20).or.(grho2 < 0.d0)) then dtdr=0.d0 dtdgr2=0.d0 return end if ri=1.d0/rho t1=ctf*(5.d0/3.d0)*rho**(2.d0/3.d0) t2=cvw*ri dtdr=t1-t2*grho2*ri dtdgr2=t2 end subroutine !EOC elk-9.6.8/src/PaxHeaders/k_vwlb.f900000644000000000000000000000013214626155521013771 xustar0030 mtime=1717099345.143992629 30 atime=1717099343.477983653 30 ctime=1717099345.143992629 elk-9.6.8/src/k_vwlb.f900000644002504400250440000000102014626155521016504 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2021 J. K. Dewhurst, S. Sharma and 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 k_vwlb(n,rho,grho2,tau) implicit none ! arguments integer, intent(in) :: n real(8), intent(in) :: rho(n),grho2(n) real(8), intent(inout) :: tau(n) ! local variables integer i real(8) t1 ! enforce the von Weizsacker lower bound do i=1,n t1=(1.d0/8.d0)*grho2(i)/rho(i) if (tau(i) < t1) tau(i)=t1 end do end subroutine elk-9.6.8/src/PaxHeaders/gendmatmt.f900000644000000000000000000000013014626155521014463 xustar0029 mtime=1717099345.14599264 30 atime=1717099343.479983664 29 ctime=1717099345.14599264 elk-9.6.8/src/gendmatmt.f900000644002504400250440000000116614626155521017213 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 < 0) then dmftm(:,:,:,:,:)=dmftm(:,:,:,:,:)*reducebf dmatmt(:,:,:,:,:)=dmatmt(:,:,:,:,:)+dmftm(:,:,:,:,:) end if ! symmetrise the density matrix call symdmat(lmaxdm,lmmaxdm,dmatmt) end subroutine elk-9.6.8/src/PaxHeaders/genveedu.f900000644000000000000000000000013114626155521014306 xustar0030 mtime=1717099345.147992651 29 atime=1717099343.48298368 30 ctime=1717099345.147992651 elk-9.6.8/src/genveedu.f900000644002504400250440000000317114626155521017033 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(idu,u,j,vee) ! !USES: use modmain use moddftu ! !INPUT/OUTPUT PARAMETERS: ! idu : 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) :: idu 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) sm1,sm2,t1 ! automatic arrays real(8) :: f(0:2*lmaxdm) ! external functions real(8), external :: gaunt l=isldu(2,idu) ! calculate Slater integrals call genfdu(idu,u,j,f) do m1=-l,l do m2=-l,l do m3=-l,l do m4=-l,l sm1=0.d0 do k=0,2*l,2 sm2=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) == 0) then sm2=sm2+t1 else sm2=sm2-t1 end if end do sm1=sm1+f(k)*sm2/dble(2*k+1) end do vee(m1,m3,m2,m4)=fourpi*sm1 end do end do end do end do end subroutine !EOC elk-9.6.8/src/PaxHeaders/tm2todm.f900000644000000000000000000000013214626155521014073 xustar0030 mtime=1717099345.149992662 30 atime=1717099343.485983696 30 ctime=1717099345.149992662 elk-9.6.8/src/tm2todm.f900000644002504400250440000000722614626155521016624 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. !BOP ! !ROUTINE: tm2todm ! !INTERFACE: subroutine tm2todm(l,k,p,ld,wkp,dm) ! !INPUT/OUTPUT PARAMETERS: ! l : angular momentum quantum number (in,integer) ! k : angular momentum tensor moment label (in,integer) ! p : spin tensor moment label (in,integer) ! ld : leading dimension (in,integer) ! wkp : 2-index tensor moment components (in,real(-ld:ld,-1:1)) ! dm : real density matrix (out,real(ld,2,ld,2)) ! !DESCRIPTION: ! Calculates the real density matrix ! $$ D=\sum_{y=-p}^p\sum_{x=-k}^k w_{xy}^{kp}\,\Gamma_{xy}^{kp} $$ ! from the real 2-index coefficients $w_{xy}^{kp}$ and the uncoupled tensor ! moment matrices given by ! $$ \Gamma_{xy}^{kp}(m_1\sigma_1,m_2\sigma_2)= ! (-1)^{l-m_2+s-\sigma_2}\sqrt{(2k+1)(2p+1)} ! \begin{pmatrix} l & k & l \\ -m_2 & x & m_1 \end{pmatrix} ! \begin{pmatrix} s & p & s \\ -\sigma_2 & y & \sigma_1 \end{pmatrix}, $$ ! where $l$ is the angular momentum quantum number, $s=\frac{1}{2}$ and the ! irreducible representations are labeled by $k\in\{0,\ldots,2l\}$ and ! $p\in\{0,1\}$. The variables $x\in\{-k,\ldots, k\}$ and $y\in\{-1,0,1\}$ ! index the components in the array {\tt wkp}. These matrices are real and ! orthonormal in the sense ! $$ \tr\big(\Gamma_{xy}^{kp}\Gamma_{x'y'}^{k'p'}\big)= ! \delta_{kk'}\delta_{pp'}\delta_{xx'}\delta_{yy'}. $$ ! For a detailed derivation see {\it Phys. Rev. B} {\bf 80}, 035121 (2009) and ! {\it J. Phys.: Condens. Matter} {\bf 7}, 9947 (1995). See also the routine ! {\tt tm3todm}. ! ! !REVISION HISTORY: ! Created 2007 (Francesco Cricchio and Lars Nordstrom) ! Changed normalisation and decoupled loops, January 2022 (JKD) !EOP !BOC implicit none ! arguments integer, intent(in) :: l,k,p,ld real(8), intent(in) :: wkp(-ld:ld,-1:1) real(8), intent(out) :: dm(ld,2,ld,2) ! local variables integer ispn,jspn integer m1,m2,n,x,y integer lm0,lm1,lm2 real(8) t0,t1 ! automatic arrays real(8) dlm(2*l+1,2*l+1,-k:k),dsp(2,2,-p:p) ! external functions real(8), external :: wigner3j,wigner3jf if (l < 0) then write(*,*) write(*,'("Error(tm2todm): l < 0 : ",I8)') l write(*,*) stop end if if (k < 0) then write(*,*) write(*,'("Error(tm2todm): k < 0 : ",I8)') k write(*,*) stop end if if (k > 2*l) then write(*,*) write(*,'("Error(tm2todm): k > 2*l : ",2I8)') k,2*l write(*,*) stop end if if ((p < 0).or.(p > 1)) then write(*,*) write(*,'("Error(tm2todm): p should be 0 or 1 : ",I8)') p write(*,*) stop end if ! calculate the angular momentum matrices t0=sqrt(dble(2*k+1)) do x=-k,k dlm(:,:,x)=0.d0 lm2=0 do m2=-l,l lm2=lm2+1 if (mod(l-m2,2) == 0) then t1=t0 else t1=-t0 end if lm1=0 do m1=-l,l lm1=lm1+1 dlm(lm1,lm2,x)=t1*wigner3j(l,k,l,-m2,x,m1) end do end do end do ! calculate the spin matrices t0=sqrt(dble(2*p+1)) do y=-p,p dsp(:,:,y)=0.d0 do jspn=1,2 if (jspn == 1) then t1=t0 else t1=-t0 end if do ispn=1,2 dsp(ispn,jspn,y)=t1*wigner3jf(1,2*p,1,2*jspn-3,2*y,3-2*ispn) end do end do end do ! determine the full matrix from the Kronecker product of dlm and dsp dm(:,:,:,:)=0.d0 lm0=l**2 n=2*l+1 do y=-p,p do x=-k,k t1=wkp(x,y) if (abs(t1) < 1.d-8) cycle do jspn=1,2 do lm2=1,n do ispn=1,2 do lm1=1,n dm(lm0+lm1,ispn,lm0+lm2,jspn)=dm(lm0+lm1,ispn,lm0+lm2,jspn) & +t1*dlm(lm1,lm2,x)*dsp(ispn,jspn,y) end do end do end do end do end do end do end subroutine !EOC elk-9.6.8/src/PaxHeaders/tm3todm.f900000644000000000000000000000013214626155521014074 xustar0030 mtime=1717099345.151992672 30 atime=1717099343.488983712 30 ctime=1717099345.151992672 elk-9.6.8/src/tm3todm.f900000644002504400250440000001120714626155521016617 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. !BOP ! !ROUTINE: tm3todm ! !INTERFACE: subroutine tm3todm(l,k,p,r,ld,wkpr,dm) ! !INPUT/OUTPUT PARAMETERS: ! l : angular momentum quantum number (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) ! wkpr : 3-index tensor moment components (in,real(-ld:ld)) ! dm : complex Hermitian density matrix (out,complex(ld,2,ld,2)) ! !DESCRIPTION: ! The 3-index coupled tensor moment matrices are given by ! $$ \Gamma_t^{kpr}= ! \sqrt{2r+1}\sum_{x=-k}^k\sum_{y=-p}^p ! \begin{pmatrix} k & r & p \\ -x & t & -y \end{pmatrix} ! \Gamma_{xy}^{kp}, $$ ! where the irreducible representations are labeled by $k\in\{0,\ldots,2l\}$, ! $p\in\{0,1\}$, $r\in\{|k-p|,\ldots,k+p\}$ and $\Gamma_{xy}^{kp}$ are the ! uncoupled tensor moments (note that the phase $(-1)^{x+y}$ in the original ! formula has been removed because of the Wigner $3j$ condition $x+y=t$). The ! coupled tensor moment matrices are real and orthonormal in the sense ! $$ \tr\big(\Gamma_t^{kpr}\Gamma_{t'}^{k'p'r'}\big)= ! \delta_{kk'}\delta_{pp'}\delta_{rr'}\delta_{tt'}. $$ ! It can also be shown that the matrices are complete, thus any general ! complex matrix $D$ of dimension $2(2l+1)$ can be expanded as ! $$ D=\sum_{k=0}^{2l}\sum_{p=0}^1\sum_{r=|k-p|}^{k+p}\sum_{t=-r}^r ! z_t^{kpr}\Gamma_t^{kpr} $$ ! where $z_t^{kpr}$ are complex numbers. Likewise, any real matrix can be ! expanded in real tensor moments $w_t^{kpr}$. Using the the symmetry ! properties of the Wigner $3j$-symbols, one can show that the transpose ! $$ \big(\Gamma_t^{kpr}\big)^t=(-1)^{k+p+r+t}\,\Gamma_{-t}^{kpr} $$ ! and thus both the symmetric and antisymmetric parts of $\Gamma_t^{kpr}$ ! transform under rotation within the same irreducible representation. ! Consequently, any complex Hermitian matrix $D$ can be written as ! $$ D=\sum_{k,p,r,t} w_t^{kpr}\big[(\Gamma_t^{kpr})_{\rm S} ! +i(\Gamma_t^{kpr})_{\rm A}\big], $$ ! where the subscripts S and A refer to the symmetric and antisymmetric parts ! of the matrix, respectively. This routine generates the Hermitian density ! matrix $D$ as described above from the real tensor moments $w_t^{kpr}$. For ! a detailed derivation see {\it Phys. Rev. B} {\bf 80}, 035121 (2009) and ! {\it J. Phys.: Condens. Matter} {\bf 7}, 9947 (1995). See also the routines ! {\tt tm2todm} and {\tt tm3rtoz}. ! ! !REVISION HISTORY: ! Created 2007 (Francesco Cricchio and Lars Nordstrom) ! Changed normalisation, made the moments real and the matrix Hermitian, ! January 2022 (JKD) !EOP !BOC implicit none ! arguments integer, intent(in) :: l,k,p,r,ld real(8), intent(in) :: wkpr(-ld:ld) complex(8), intent(out) :: dm(ld,2,ld,2) ! local variables integer x,y,t real(8) t0,t1 ! automatic arrays real(8) wkp(-ld:ld,-1:1),dmr(ld,2,ld,2) ! external functions real(8), external :: wigner3j if (l < 0) then write(*,*) write(*,'("Error(tm3todm): l < 0 : ",I8)') l write(*,*) stop end if if (k < 0) then write(*,*) write(*,'("Error(tm3todm): k < 0 : ",I8)') k write(*,*) stop end if if (k > 2*l) then write(*,*) write(*,'("Error(tm3todm): k > 2*l : ",2I8)') k,2*l write(*,*) stop end if if ((p < 0).or.(p > 1)) then write(*,*) write(*,'("Error(tm3todm): p should be 0 or 1 : ",I8)') p write(*,*) stop end if if (r < abs(k-p)) then write(*,*) write(*,'("Error(tm3todm): r < |k-p| : ",2I8)') r,abs(k-p) write(*,*) stop end if if (r > (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 wkp(:,:)=0.d0 t0=sqrt(dble(2*r+1)) do t=-r,r t1=wkpr(t) if (abs(t1) < 1.d-8) cycle t1=t0*t1 do x=-k,k do y=-p,p wkp(x,y)=wkp(x,y)+t1*wigner3j(k,r,p,-x,t,-y) end do end do end do ! compute the real matrix from the 2-index tensor moment call tm2todm(l,k,p,ld,wkp,dmr) ! convert to complex Hermitian matrix call dmrtoz(ld*2,dmr,dm) return contains pure subroutine dmrtoz(n,dmr,dm) implicit none ! arguments integer, intent(in) :: n real(8), intent(in) :: dmr(n,n) complex(8), intent(out) :: dm(n,n) ! local variables integer i,j real(8) a,b do j=1,n do i=1,j-1 ! symmetric part a=0.5d0*(dmr(i,j)+dmr(j,i)) ! antisymmetric part b=0.5d0*(dmr(i,j)-dmr(j,i)) dm(i,j)=cmplx(a,b,8) dm(j,i)=cmplx(a,-b,8) end do dm(j,j)=dmr(j,j) end do end subroutine end subroutine !EOC elk-9.6.8/src/PaxHeaders/dmtotm3.f900000644000000000000000000000013214626155521014074 xustar0030 mtime=1717099345.153992683 30 atime=1717099343.490983723 30 ctime=1717099345.153992683 elk-9.6.8/src/dmtotm3.f900000644002504400250440000000425214626155521016621 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: dmtotm3 ! !INTERFACE: subroutine dmtotm3(l,k,p,r,ld,dm,wkpr) ! !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) ! ld : leading dimension (in,integer) ! dm : density matrix (in,complex(ld,2,ld,2)) ! wkpr : 3-index spherical tensor moments (out,real(-ld:ld)) ! !DESCRIPTION: ! Determines the 3-index spherical tensor moments of a density matrix $D$ with ! $$ w_t^{kpr}=\tr\big(\Gamma_t^{kpr}D\big). $$ ! This exploits the orthonormality of the $\Gamma_t^{kpr}$ matrices. See the ! routines {\tt tm2todm} and {\tt tm3todm} for more details. ! ! !REVISION HISTORY: ! Created April 2008 (F. Cricchio and L. Nordstrom) ! Modified, January 2014 (JKD) ! Changed to real tensor moments, December 2021 (JKD) !EOP !BOC implicit none integer, intent(in) :: l,k,p,r,ld complex(8), intent(in) :: dm(ld,2,ld,2) real(8), intent(out) :: wkpr(-ld:ld) ! local variables integer n,t ! automatic arrays real(8) w(-ld:ld) complex(8) gamma(ld,2,ld,2) ! external functions real(8), external :: trzhmm if (l < 0) then write(*,*) write(*,'("Error(dmtotm3): l < 0 : ",I8)') l write(*,*) stop end if if (k < 0) then write(*,*) write(*,'("Error(dmtotm3): k < 0 : ",I8)') k write(*,*) stop end if if (k > 2*l) then write(*,*) write(*,'("Error(dmtotm3): k > 2*l : ",2I8)') k,2*l write(*,*) stop end if if ((p < 0).or.(p > 1)) then write(*,*) write(*,'("Error(dmtotm3): p should be 0 or 1 : ",I8)') p write(*,*) stop end if if (r < abs(k-p)) then write(*,*) write(*,'("Error(dmtotm3): r < |k-p| : ",2I8)') r,abs(k-p) write(*,*) stop end if if (r > (k+p)) then write(*,*) write(*,'("Error(dmtotm3): r > k+p : ",2I8)') r,k+p write(*,*) stop end if n=ld*2 wkpr(:)=0.d0 do t=-r,r w(:)=0.d0 w(t)=1.d0 call tm3todm(l,k,p,r,ld,w,gamma) wkpr(t)=trzhmm(n,gamma,dm) end do end subroutine !EOC elk-9.6.8/src/PaxHeaders/writedftu.f900000644000000000000000000000013214626155521014522 xustar0030 mtime=1717099345.155992694 30 atime=1717099343.493983739 30 ctime=1717099345.155992694 elk-9.6.8/src/writedftu.f900000644002504400250440000000421614626155521017247 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,idu integer is,ia,ias integer k,l,ll,m1,m2,lm1,lm2 if (dftu == 0) return ! machine readable density matrix file open(50,file='DMATMT'//trim(filext),form='FORMATTED',action='WRITE') do idu=1,ndftu is=isldu(1,idu) l=isldu(2,idu) ll=l*(l+1)+1 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=ll+m1 do m2=-l,l lm2=ll+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',action='WRITE') do idu=1,ndftu is=isldu(1,idu) l=isldu(2,idu) ll=l*(l+1)+1 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=ll+m1 do m2=-l,l lm2=ll+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) ! Slater parameters open(50,file='FDU'//trim(filext),form='FORMATTED',action='WRITE') do idu=1,ndftu is=isldu(1,idu) l=isldu(2,idu) write(50,*) write(50,'(2I4," : species, l")') is,l do k=0,2*l,2 write(50,'(G18.10," : F^(",I1,")")') fdu(k,idu),k end do write(50,'(G18.10," : U")') ujdu(1,idu) write(50,'(G18.10," : J")') ujdu(2,idu) if (inpdftu >= 4) write(50,'(G18.10," : screening length λ")') lamdu(idu) end do close(50) end subroutine elk-9.6.8/src/PaxHeaders/sbesseli.f900000644000000000000000000000013214626155521014316 xustar0030 mtime=1717099345.157992705 30 atime=1717099343.496983755 30 ctime=1717099345.157992705 elk-9.6.8/src/sbesseli.f900000644002504400250440000000523514626155521017045 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: sbesseli ! !INTERFACE: subroutine sbesseli(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 spherical Bessel functions with imaginary argument, ! $\tilde{j}_l(x)\equiv i^lj_l(ix)$, for real $x$ and ! $l=0\ldots l_{\rm max}$. The recurrence relation ! $$ \tilde{j}_{l+1}(x)=\frac{2l+1}{x}\tilde{j}_l(x)+\tilde{j}_{l-1}(x) $$ ! is used either downwards for $x<2\,l_{\rm max}$ or upwards for ! $x\ge 2\,l_{\rm max}$. The starting values are $\tilde{j}_0(x)=\sinh(x)/x$ ! and $\tilde{j}_1(x)=(\tilde{j}_0(x)-\cosh(x))/x$. The asymptotic form ! $$ \tilde{j}_l(x)\approx\frac{(-x)^l}{(2l+1)!!} $$ ! is used for $x\ll 1$. ! ! !REVISION HISTORY: ! Created April 2008 from sbessel routine (Lars Nordstrom) ! Fixed accuracy issue and changed name, September 2021 (JKD) !EOP !BOC implicit none ! arguments integer, intent(in) :: lmax real(8), intent(in) :: x real(8), intent(out) :: jl(0:lmax) ! local variables integer l,lst real(8), parameter :: rsc=1.d150,rsci=1.d0/rsc real(8) xi,j0,j1,t1 if ((lmax < 0).or.(lmax > 20)) then write(*,*) write(*,'("Error(sbesseli): lmax out of range : ",I8)') lmax write(*,*) stop end if if ((x < 0.d0).or.(x > 1.d8)) then write(*,*) write(*,'("Error(sbesseli): x out of range : ",G18.10)') x write(*,*) stop end if ! treat x << 1 if (x < 1.d-8) then jl(0)=1.d0 t1=1.d0 do l=1,lmax t1=-t1*x/dble(2*l+1) jl(l)=t1 end do return end if if (lmax == 0) then jl(0)=sinh(x)/x return end if xi=1.d0/x if (x < 2*lmax) then ! for x < 2*lmax recurse down j1=1.d0 j0=0.d0 ! starting value for l above lmax lst=lmax+lmax/2+12 do l=lst,lmax+1,-1 t1=j0-(2*l+1)*j1*xi j0=j1 j1=t1 ! check for overflow if (abs(j1) > rsc) then ! rescale t1=t1*rsci j0=j0*rsci j1=j1*rsci end if end do do l=lmax,0,-1 t1=j0-(2*l+1)*j1*xi j0=j1 j1=t1 ! check for overflow if (abs(j1) > rsc) then ! rescale t1=t1*rsci j0=j0*rsci j1=j1*rsci jl(l+1:lmax)=jl(l+1:lmax)*rsci end if jl(l)=j0 end do ! rescaling constant t1=sinh(x)/(x*j0) jl(:)=t1*jl(:) else ! for x >= 2*lmax recurse up jl(0)=sinh(x)*xi jl(1)=(jl(0)-cosh(x))*xi if (lmax == 1) return j0=jl(0) j1=jl(1) do l=2,lmax t1=(2*l-1)*j1*xi+j0 j0=j1 j1=t1 jl(l)=j1 end do end if end subroutine !EOC elk-9.6.8/src/PaxHeaders/shankeli.f900000644000000000000000000000013214626155521014303 xustar0030 mtime=1717099345.159992716 30 atime=1717099343.499983772 30 ctime=1717099345.159992716 elk-9.6.8/src/shankeli.f900000644002504400250440000000351514626155521017031 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: shankeli ! !INTERFACE: subroutine shankeli(lmax,x,hl) ! !INPUT/OUTPUT PARAMETERS: ! lmax : maximum order of Hankel function (in,integer) ! x : real argument (in,real) ! hl : array of returned values (out,real(0:lmax)) ! !DESCRIPTION: ! Computes the spherical Hankel function of the first kind with imaginary ! argument, $\tilde{h}_l(x)=i^lh_l(ix)$, for real $x$ and ! $l=0\ldots l_{\rm max}$. The recurrence relation ! $$ \tilde{h}_{l+1}(x)=\frac{2l+1}{x}\tilde{h}_l(x)+\tilde{h}_{l-1}(x) $$ ! is used upwards. The starting values there are ! $\tilde{h}_0(x)=-e^{-x}/x$ and $\tilde{h}_1(x)=\tilde{h}_0(x)(1+1/x)$. ! For $x\ll 1$ we use the asymptotic form ! $$ \tilde{h}_l(x)\approx\frac{-(2l-1)!!}{(-x)^{l+1}}. $$ ! ! !REVISION HISTORY: ! Created April 2008 from sbessel routine (Lars Nordstrom) ! Changed name, September 2021 (JKD) !EOP !BOC implicit none ! arguments integer, intent(in) :: lmax real(8), intent(in) :: x real(8), intent(out) :: hl(0:lmax) ! local variables integer l real(8) xi,h0,h1,t1 if ((lmax < 0).or.(lmax > 50)) then write(*,*) write(*,'("Error(shankeli): lmax out of range : ",I8)') lmax write(*,*) stop end if if ((x <= 0.d0).or.(x > 1.d8)) then write(*,*) write(*,'("Error(shankeli): x out of range : ",G18.10)') x write(*,*) stop end if xi=1.d0/x hl(0)=-xi*exp(-x) if (lmax == 0) return ! treat x << 1 if (x < 1.d-8) then t1=-xi do l=1,lmax t1=t1*xi*dble(2*l-1) hl(l)=t1 end do return end if ! recurse up hl(1)=hl(0)*(1.d0+xi) if (lmax == 1) return h0=hl(0) h1=hl(1) do l=2,lmax t1=(2*l-1)*h1*xi+h0 h0=h1 h1=t1 hl(l)=h1 end do end subroutine !EOC elk-9.6.8/src/PaxHeaders/genfdu.f900000644000000000000000000000013214626155521013755 xustar0030 mtime=1717099345.161992726 30 atime=1717099343.502983788 30 ctime=1717099345.161992726 elk-9.6.8/src/genfdu.f900000644002504400250440000001136614626155521016506 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(idu,u,j,f) ! !USES: use moddftu use modmpi ! !INPUT/OUTPUT PARAMETERS: ! idu : 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) :: idu real(8), intent(inout) :: u,j real(8), intent(inout) :: f(0:2*lmaxdm) ! local variables integer is,l,k,q real(8) ufix,r1,r2 real(8) a(3,3),v1(3),v2(3) ! automatic arrays real(8) e(0:lmaxdm) ! external functions real(8), external :: fyukawa,fyukawa0 is=isldu(1,idu) l=isldu(2,idu) if (l > 3) return ! load input parameters to calculate Slater integrals u=ujdu(1,idu) j=ujdu(2,idu) f(:)=fdu(:,idu) e(:)=edu(:,idu) if (inpdftu < 4) then ! F(0) = U for any l-shell if (inpdftu == 1) f(0)=u select case(l) case(0) ! s electrons only f(0)=u if (inpdftu == 3) then f(0)=e(0) u=f(0) end if case(1) ! p electrons if (inpdftu == 1) then ! F(2) = 5.0 * J f(2)=5.d0*j else if (inpdftu == 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 == 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 == 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 == 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 == 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 end select else if (inpdftu >= 4) then ! define energies for Slater parameters call engyfdu(idu) ! calculate radial functions for Slater parameters call genfdufr(idu) if (inpdftu == 5) then ufix=udufix(idu) ! calculate the screening length λ corresponding to udufix ! lamdu0 is in/out and is initialized to 0 in init0 call findlambda(is,l,ufix,lamdu0(idu),lamdu(idu)) end if do q=0,l k=2*q if (lamdu(idu) < 1.d-2) then ! unscreened Slater parameters f(k)=fyukawa0(is,l,k) else ! screened Slater parameters f(k)=fyukawa(is,l,k,lamdu(idu)) end if end do end if ! calculate U and J from Slater integrals if (inpdftu /= 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) end select end if ! save calculated parameters ! (except Racah parameters that are provided only as input) ujdu(1,idu)=u ujdu(2,idu)=j fdu(:,idu)=f(:) end subroutine !EOC elk-9.6.8/src/PaxHeaders/genfdufr.f900000644000000000000000000000013214626155521014305 xustar0030 mtime=1717099345.163992737 30 atime=1717099343.505983804 30 ctime=1717099345.163992737 elk-9.6.8/src/genfdufr.f900000644002504400250440000000315214626155521017030 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(idu) ! !USES: use modmain use moddftu ! !INPUT/OUTPUT PARAMETERS: ! idu : DFT+U entry (in,integer) ! !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 integer, intent(in) :: idu ! local variables integer is,ia,ias integer nr,nri,ir integer nn,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), external :: splint is=isldu(1,idu) l=isldu(2,idu) 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,efdu(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 < 1.d-20) then write(*,*) write(*,'("Error(genfdufr): degenerate 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 subroutine !EOC elk-9.6.8/src/PaxHeaders/engyfdu.f900000644000000000000000000000013214626155521014146 xustar0030 mtime=1717099345.165992748 30 atime=1717099343.507983815 30 ctime=1717099345.165992748 elk-9.6.8/src/engyfdu.f900000644002504400250440000000310214626155521016664 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: engyfdu ! !INTERFACE: subroutine engyfdu(idu) ! !USES: use modmain use moddftu use modmpi ! !INPUT/OUTPUT PARAMETERS: ! idu : DFT+U entry (in,integer) ! !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 integer, intent(in) :: idu ! local variables integer is,ia,ja,ias,jas integer nr,nri,nnf,l logical fnd ! automatic arrays logical done(natmmax) real(8) vr(nrmtmax) nnf=0 is=isldu(1,idu) l=isldu(2,idu) 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 efdu(l,ias)=-0.5d0 call findband(solsc,l,nrmt(is),rsp(1,is),vr,epsband,demaxbnd,efdu(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) efdu(l,jas)=efdu(l,ias) done(ja)=.true. end if end do ! end loops over atoms and species end do if (mp_mpi.and.(nnf > 0)) then write(*,*) write(*,'("Warning(engyfdu): could not find ",I3," energies")') nnf end if end subroutine !EOC elk-9.6.8/src/PaxHeaders/findlambda.f900000644000000000000000000000013214626155521014566 xustar0030 mtime=1717099345.167992759 30 atime=1717099343.510983831 30 ctime=1717099345.167992759 elk-9.6.8/src/findlambda.f900000644002504400250440000000700714626155521017314 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: findlambda ! !INTERFACE: subroutine findlambda(is,l,ufix,lambda0,lambda) use modmpi ! !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). ! ! !REVISION HISTORY: ! Created July 2009 (Francesco Cricchio) !EOP !BOC implicit none ! arguments integer, intent(in) :: is,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 < umin, assume lambda=lambdamax real(8), parameter :: umin=1.d-4 ! if lambda < lambdamin, perform unscreened calculation real(8), parameter :: lambdamin=1.d-2 ! max value of lambda ! lambdamax=50 is enough to get F^(k)~1.d-3 corresponding to U~0 real(8), parameter :: lambdamax=50.d0 ! initial step for lambda real(8), parameter :: dl0=0.5d0 real(8) f,fp,lambdap,dl,tol ! external functions real(8), external :: fyukawa,fyukawa0 ! small U limit if (ufix < umin) then lambda=lambdamax if (mp_mpi) write(*,'("Info(findlambda): lambda set to lambdamax : ",& &G18.10)') lambdamax return end if ! first perform a search of lambda with half-interval method and low accuracy ! initialize values and search upward from lambda0 lambda=lambda0 dl=dl0 fp=1.d0 tol=1.d-1 nit=0 do it=1,maxit if (lambda < lambdamin) then ! unscreened Slater parameters f=fyukawa0(is,l,0)-ufix else ! screened Slater parameters f=fyukawa(is,l,0,lambda)-ufix end if if ((f*fp) < 0) dl=-0.5d0*dl lambdap=lambda lambda=lambda+dl fp=f nit=nit+1 if (abs(f) < tol) goto 10 end do 10 continue ! use the found value of lambda to continue the search with secant algorithm and ! higher accuracy tol=1.d-8 ! calculate F^(0)-ufix at lambdap value if (lambdap < lambdamin) then ! unscreened Slater parameters fp=fyukawa0(is,l,0)-ufix else ! screened Slater parameters fp=fyukawa(is,l,0,lambdap)-ufix end if ! start secant algorithm do it=1,maxit ! calculate F^(0)-ufix if (lambda < lambdamin) then ! unscreened Slater parameters f=fyukawa0(is,l,0)-ufix else ! screened Slater parameters f=fyukawa(is,l,0,lambda)-ufix end if ! if requested tolerance has been reached exit the loop if (abs(f) < tol) goto 20 ! update lambda with secant algorithm and roll values dl=-f*((lambda-lambdap)/(f-fp)) lambdap=lambda lambda=lambda+dl fp=f nit=nit+1 end do 20 continue if (nit >= maxit) then write(*,*) write(*,'("Error(findlambda): max number of iterations to obtain lambda & &reached")') write(*,*) stop else ! update initial value for lambda for the next iteration in the SC loop ! 0.5*dl0 is enough lambda0=lambda-0.5d0*dl0 if (mp_mpi) write(*,'("Info(findlambda): lambda obtained in ",I4,& &" iterations")') nit end if end subroutine !EOC elk-9.6.8/src/PaxHeaders/vmatmtsc.f900000644000000000000000000000013214626155521014343 xustar0030 mtime=1717099345.169992769 30 atime=1717099343.513983847 30 ctime=1717099345.169992769 elk-9.6.8/src/vmatmtsc.f900000644002504400250440000000273114626155521017070 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2021 J. K. Dewhurst, S. Sharma and E. K. U. Gross. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. subroutine vmatmtsc use modmain use moddftu implicit none ! local variables integer ispn,jspn,ias,lm ! automatic arrays complex(8) a(lmmaxo,lmmaxo),b(lmmaxo,lmmaxo),c(lmmaxo,lmmaxo) lm=min(lmmaxi,lmmaxdm) ! transform the muffin-tin potential matrix elements from a spherical harmonics ! basis to a mixed spherical harmonics/coordinates basis and store in global ! single-precision arrays do ias=1,natmtot if (any(tvmmt(0:lmaxdm,ias))) then do jspn=1,nspinor do ispn=1,nspinor ! inner part of muffin-tin a(1:lmmaxi,1:lmmaxi)=0.d0 a(1:lm,1:lm)=vmatmt(1:lm,ispn,1:lm,jspn,ias) call zgemm('N','N',lmmaxi,lmmaxi,lmmaxi,zone,a,lmmaxo,zfshti,lmmaxi, & zzero,b,lmmaxo) call zgemm('N','N',lmmaxi,lmmaxi,lmmaxi,zone,zbshti,lmmaxi,b,lmmaxo, & zzero,c,lmmaxo) vmatmti(1:lmmaxi,1:lmmaxi,ispn,jspn,ias)=c(1:lmmaxi,1:lmmaxi) ! outer part of muffin-tin a(:,:)=0.d0 a(1:lmmaxdm,1:lmmaxdm)=vmatmt(1:lmmaxdm,ispn,1:lmmaxdm,jspn,ias) call zgemm('N','N',lmmaxo,lmmaxo,lmmaxo,zone,a,lmmaxo,zfshto,lmmaxo, & zzero,b,lmmaxo) call zgemm('N','N',lmmaxo,lmmaxo,lmmaxo,zone,zbshto,lmmaxo,b,lmmaxo, & zzero,c,lmmaxo) vmatmto(:,:,ispn,jspn,ias)=c(:,:) end do end do end if end do end subroutine elk-9.6.8/src/PaxHeaders/genvmatmt.f900000644000000000000000000000013014626155521014505 xustar0029 mtime=1717099345.17199278 30 atime=1717099343.516983863 29 ctime=1717099345.17199278 elk-9.6.8/src/genvmatmt.f900000644002504400250440000000210414626155521017226 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 and/or the potential matrix used for fixed tensor moment calculations. ! 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) ! Fixed bug for dftu=3, January 2021 (JKD) ! Cleaned up and removed options, September 2021 (JKD) !EOP !BOC implicit none ! zero the non-local muffin-tin potential for each atom vmatmt(:,:,:,:,:)=0.d0 ! add the DFT+U potential and calculate the corresponding energies if (dftu /= 0) call vmatmtdu ! add the fixed tensor moment potential if required if (ftmtype > 0) call vmatmtftm ! symmetrise the potential call symdmat(lmaxdm,lmmaxdm,vmatmt) end subroutine !EOC elk-9.6.8/src/PaxHeaders/vmatmtdu.f900000644000000000000000000000013214626155521014346 xustar0030 mtime=1717099345.173992791 30 atime=1717099343.519983879 30 ctime=1717099345.173992791 elk-9.6.8/src/vmatmtdu.f900000644002504400250440000001415114626155521017072 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. subroutine vmatmtdu use modmain use moddftu use modtest implicit none ! local variables integer ispn,jspn integer is,ia,ias,idu integer l,m1,m2,m3,m4 integer ll,nm,lma,lmb integer lm1,lm2,lm3,lm4 real(8) u,j,n,n0 real(8) mg(3),mg0(3) real(8) v,edc,sm complex(8) zsm,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 energy for each atom engyadu(:,:)=0.d0 do idu=1,ndftu is=isldu(1,idu) l=isldu(2,idu) ll=l*(l+1)+1 nm=2*l+1 lma=l**2+1; lmb=lma+2*l ! calculate the Coulomb matrix elements call genveedu(idu,u,j,vee) if ((abs(u) < 1.d-10).and.(abs(j) < 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) ! spin-unpolarised: scale density matrix so that it represents one spin channel ! (thanks to Mike Bruckhoff for this) if (.not.spinpol) dm(:,:,:,:)=0.5d0*dm(:,:,:,:) ! trace of density matrix for each spin dms(:,:)=0.d0 do ispn=1,nspinor do jspn=1,nspinor zsm=0.d0 do lm1=lma,lmb zsm=zsm+dm(lm1,ispn,lm1,jspn) end do dms(ispn,jspn)=dms(ispn,jspn)+zsm 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) ! !---------------------------------! if (dftu == 2) then ! modify density matrices do lm1=lma,lmb 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 end if !------------------------------------! ! DFT+U potential and energy ! !------------------------------------! ! begin loops over m1 and m2 do m1=-l,l lm1=ll+m1 do m2=-l,l lm2=ll+m2 ! begin loops over m3 and m4 do m3=-l,l lm3=ll+m3 do m4=-l,l lm4=ll+m4 v=vee(m1,m3,m2,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,idu)=engyadu(ia,idu)+dble(z1-z2)*v vmatmt(lm1,ispn,lm2,ispn,ias)=vmatmt(lm1,ispn,lm2,ispn,ias) & +dm(lm4,jspn,lm3,jspn)*v vmatmt(lm1,ispn,lm4,jspn,ias)=vmatmt(lm1,ispn,lm4,jspn,ias) & -dm(lm2,ispn,lm3,jspn)*v 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,idu)=0.5d0*engyadu(ia,idu) !-----------------------------------------------------------------! ! fully localised limit (FLL) double counting corrections ! !-----------------------------------------------------------------! if (dftu == 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 lm1=lma,lmb 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 lm1=lma,lmb 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 lm1=lma,lmb 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,idu)=engyadu(ia,idu)-edc end if !---------------------------------------------------------! ! subtract DFT+U potential contribution to energy ! !---------------------------------------------------------! ! trace of dmatmt times vmatmt sm=0.d0 do ispn=1,nspinor do lm1=lma,lmb do jspn=1,nspinor do lm2=lma,lmb sm=sm+dble(dm(lm1,ispn,lm2,jspn)*vmatmt(lm2,jspn,lm1,ispn,ias)) end do end do end do end do engyadu(ia,idu)=engyadu(ia,idu)-sm ! end loop over atoms end do ! end loop over species end do ! write DFT+U energy for each atom 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*ndftu,tol=1.d-4,rva=ujdu) end subroutine elk-9.6.8/src/PaxHeaders/vmatmtftm.f900000644000000000000000000000013214626155521014524 xustar0030 mtime=1717099345.175992802 30 atime=1717099343.522983896 30 ctime=1717099345.175992802 elk-9.6.8/src/vmatmtftm.f900000644002504400250440000000240714626155521017251 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 vmatmtftm use modmain use moddftu implicit none ! local variables integer is,ia,ias,i integer l,k,p,r,t real(8) t0,t1 ! automatic arrays real(8) wkpr(-lmmaxdm:lmmaxdm) complex(8) dm(lmmaxdm,2,lmmaxdm,2) ! loop over fixed tensor moment entries do i=1,ntmfix is=itmfix(1,i) ia=itmfix(2,i) ias=idxas(ia,is) l=itmfix(3,i) k=itmfix(4,i) p=itmfix(5,i) r=itmfix(6,i) t=itmfix(7,i) ! decompose density matrix in 3-index tensor moment components call dmtotm3(l,k,p,r,lmmaxdm,dmatmt(:,:,:,:,ias),wkpr) ! scale factor for conventional normalisation t0=sqrt(dble((2*l+1)*2)) ! take difference between current and target moment t1=wkpr(t)-wkprfix(i)/t0 wkpr(:)=0.d0 wkpr(t)=tauftm*t1 ! compute new density matrix call tm3todm(l,k,p,r,lmmaxdm,wkpr,dm) ! add to global FTM potential matrix vmftm(:,:,:,:,ias)=vmftm(:,:,:,:,ias)+dm(:,:,:,:) end do ! add to muffin-tin potential matrix (fix by Leon Kerber) do i=1,ntmfix is=itmfix(1,i) ia=itmfix(2,i) ias=idxas(ia,is) vmatmt(:,:,:,:,ias)=vmatmt(:,:,:,:,ias)+vmftm(:,:,:,:,ias) end do end subroutine elk-9.6.8/src/PaxHeaders/fyukawa.f900000644000000000000000000000013214626155521014154 xustar0030 mtime=1717099345.177992813 30 atime=1717099343.525983912 30 ctime=1717099345.177992813 elk-9.6.8/src/fyukawa.f900000644002504400250440000000430214626155521016675 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,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) bint(nrmtmax),cint(nrmtmax),fint(nrmtmax) real(8) blow(nrmtmax),bhigh(nrmtmax) real(8) clow(nrmtmax),chigh(nrmtmax) real(8) a(0:2*l,nrmtmax),b(0:2*l,nrmtmax) ias=idxas(1,is) nr=nrmt(is) ! (-1)**k factor takes care of the additional (-1)**k introduced by sbesseli(b) t1=lambda*dble((2*k+1)*(-1)**(k+1)) ! zero all quantities bint(1:nr)=0.d0 blow(1:nr)=0.d0 bhigh(1:nr)=0.d0 clow(1:nr)=0.d0 chigh(1:nr)=0.d0 a(:,1:nr)=0.d0 b(:,1:nr)=0.d0 ! calculate screened Slater parameters do ir=1,nr r2=rlmt(ir,2,is) bint(ir)=fdufr(ir,l,ias)*fdufr(ir,l,ias)*r2 x=rsp(ir,is)*lambda ! spherical Bessel and Hankel functions with imaginary arguments call sbesseli(2*l,x,a(:,ir)) call shankeli(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) end function !EOC elk-9.6.8/src/PaxHeaders/fyukawa0.f900000644000000000000000000000013214626155521014234 xustar0030 mtime=1717099345.179992823 30 atime=1717099343.527983922 30 ctime=1717099345.179992823 elk-9.6.8/src/fyukawa0.f900000644002504400250440000000334514626155521016763 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,l,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,l,k ! local variables integer, parameter :: nstart=1 integer ias,nr,ir integer ir1,ir2,nr1,nr2 real(8) r2,x ! automatic arrays real(8) bint(nrmtmax),cint(nrmtmax),fint(nrmtmax) real(8) blow(nrmtmax),bhigh(nrmtmax) real(8) clow(nrmtmax),chigh(nrmtmax) real(8) ak(nrmtmax),bk(nrmtmax) ias=idxas(1,is) nr=nrmt(is) ak(1:nr)=0.d0 bk(1:nr)=0.d0 ! calculate unscreened Slater parameters do ir=1,nr r2=rlmt(ir,2,is) bint(ir)=fdufr(ir,l,ias)*fdufr(ir,l,ias)*r2 x=rsp(ir,is)**k ak(ir)=x bk(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)*ak(ir2) end do call fderiv(-1,nr1,rsp(nstart,is),blow,clow) do ir1=1,nr2 ir2=ir1+ir-1 bhigh(ir1)=bint(ir2)*bk(ir2) end do call fderiv(-1,nr2,rsp(ir,is),bhigh,chigh) cint(ir-nstart+1)=bint(ir)*(bk(ir)*clow(nr1)+ak(ir)*chigh(nr2)) end do nr1=nr-nstart+1 call fderiv(-1,nr1,rsp(nstart,is),cint,fint) fyukawa0=fint(nr1) end function !EOC elk-9.6.8/src/PaxHeaders/readdmatmt.f900000644000000000000000000000013214626155521014627 xustar0030 mtime=1717099345.181992834 30 atime=1717099343.530983939 30 ctime=1717099345.181992834 elk-9.6.8/src/readdmatmt.f900000644002504400250440000000362514626155521017357 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,idu integer is_,ia_,ispn_,jspn_ integer l,ll,m1,m2,lm1,lm2 integer l_,m1_,m2_ real(8) a,b ! zero the density matrix dmatmt(:,:,:,:,:)=0.d0 ! read density matrix from DMATMT.OUT open(50,file='DMATMT'//trim(filext),form='FORMATTED') do idu=1,ndftu is=isldu(1,idu) l=isldu(2,idu) ll=l*(l+1)+1 do ia=1,natoms(is) ias=idxas(ia,is) read(50,*) read(50,*) read(50,*) is_,ia_,l_ if ((is /= is_).or.(ia /= ia_).or.(l /= 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 /= ispn_).or.(jspn /= 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=ll+m1 do m2=-l,l lm2=ll+m2 read(50,*) m1_,m2_,a,b if ((m1 /= m1_).or.(m2 /= 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) end subroutine elk-9.6.8/src/PaxHeaders/writetm.f900000644000000000000000000000013214626155521014200 xustar0030 mtime=1717099345.183992845 30 atime=1717099343.533983955 30 ctime=1717099345.183992845 elk-9.6.8/src/writetm.f900000644002504400250440000000143514626155521016725 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2009 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 writetm use modmain use moddftu implicit none if (dftu == 0) then write(*,*) write(*,'("Error(writetmdu): dftu = 0")') write(*,*) stop end if ! initialize universal variables call init0 call init1 ! read the potential from file call readstate ! read density matrix from file DMATMT.OUT call readdmatmt ! generate the DFT+U muffin-tin potential matrices call genvmatmt ! write tensor moments to TENSMOM.OUT file call writetm3 write(*,*) write(*,'("Info(writetm): tensor moment decomposition of density matrix")') write(*,'(" in the spherical basis written to TENSMOM.OUT")') end subroutine elk-9.6.8/src/PaxHeaders/writetm3.f900000644000000000000000000000013214626155521014263 xustar0030 mtime=1717099345.185992856 30 atime=1717099343.536983971 30 ctime=1717099345.185992856 elk-9.6.8/src/writetm3.f900000644002504400250440000000617014626155521017011 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: writetm3 ! !INTERFACE: subroutine writetm3 ! !USES: use modmain use moddftu use modtest use modvars ! !DESCRIPTION: ! Decompose the density matrix into 3-index tensor moments and write to ! {\tt TENSMOM.OUT}. See {\it Phys. Rev. B} {\bf 80}, 035121 (2009) and ! {\it J. Phys.: Condens. Matter} {\bf 7} 9947 (1995). See also the routines ! {\tt tm2todm} and {\tt tm3todm}. ! ! !REVISION HISTORY: ! Created April 2008 (F. Cricchio and L. Nordstrom) ! Updated, December 2021 (JKD) !EOP !BOC implicit none ! local variables integer is,ia,ias,idu integer l,p,k,r,t real(8) ehx,sm,t0,t1 ! automatic arrays real(8) wkpr(-lmmaxdm:lmmaxdm) complex(8) zkpr(-lmmaxdm:lmmaxdm) complex(8) gamma(lmmaxdm,2,lmmaxdm,2) ! external functions real(8), external :: trzhmm wkpr(:)=0.d0 ! open TENSMOM.OUT file open(50,file='TENSMOM'//trim(filext),form='FORMATTED',action='WRITE') write(50,'("Density matrix decomposition in coupled tensor moments")') write(50,'("Components are in the spherical basis")') write(50,'(" (see Phys. Rev. B. 80, 035121 (2009))")') ! loop over DFT+U entries do idu=1,ndftu is=isldu(1,idu) l=isldu(2,idu) ! scale factor for conventional normalisation t0=sqrt(dble((2*l+1)*2)) 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,'(" l = ",I1)') l do k=0,2*l do p=0,1 do r=abs(k-p),k+p ! decompose density matrix in 3-index tensor moment components call dmtotm3(l,k,p,r,lmmaxdm,dmatmt(:,:,:,:,ias),wkpr) ! determine the contribution to muffin-tin Hartree + exchange energy call tm3todm(l,k,p,r,lmmaxdm,wkpr,gamma) ehx=0.5d0*trzhmm(lmmaxdm*2,gamma,vmatmt(:,:,:,:,ias)) ! write out tensor moment components and vector magnitude write(50,*) write(50,'(" k = ",I1,", p = ",I1,", r = ",I1)') k,p,r if (tm3old) then ! old complex convention call tm3rtoz(l,k,p,r,lmmaxdm,wkpr,zkpr) do t=-r,r write(50,'(" t = ",I2," : ",2F14.8)') t,zkpr(t) end do else ! new real convention sm=0.d0 do t=-r,r t1=t0*wkpr(t) write(50,'(" t = ",I2," : ",F14.8)') t,t1 sm=sm+t1**2 end do sm=sqrt(sm) write(50,'(" magnitude : ",F14.8)') sm end if write(50,'(" Hartree + exchange energy : ",F14.8)') ehx ! write to VARIABLES.OUT if required, but only on the last iteration if (wrtvars.and.tlast) then call writevars('wkpr',n1=is,n2=ia,n3=l,n4=k,n5=p,n6=r,nv=2*r+1, & rva=wkpr(-r:r)) end if end do end do end do ! end loop over atoms and species end do end do close(50) ! write last entry of tensor moment components to test file if required if (test) then call writetest(820,'Coupled tensor moments',nv=size(wkpr),tol=5.d-4,rva=wkpr) end if end subroutine !EOC elk-9.6.8/src/PaxHeaders/gendmftm.f900000644000000000000000000000013214626155521014306 xustar0030 mtime=1717099345.187992867 30 atime=1717099343.538983982 30 ctime=1717099345.187992867 elk-9.6.8/src/gendmftm.f900000644002504400250440000000324314626155521017032 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,k,p,r,t real(8) t0 ! automatic arrays real(8) wkpr(-lmmaxdm:lmmaxdm) complex(8) dm(lmmaxdm,2,lmmaxdm,2) ! allocate global array if (allocated(dmftm)) deallocate(dmftm) allocate(dmftm(lmmaxdm,2,lmmaxdm,2,natmtot)) ! zero the fixed tensor moment density matrices dmftm(:,:,:,:,:)=0.d0 do i=1,ntmfix is=itmfix(1,i) if (is > nspecies) then write(*,*) write(*,'("Error(gendmftm): invalid species number : ",I8)') is write(*,*) stop end if ia=itmfix(2,i) if (ia > 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 > lmaxdm) then write(*,*) write(*,'("Error(gendmftm): l > lmaxdm ",2I8)') l,lmaxdm write(*,'(" for species ",I4," and atom ",I4)') is,ia write(*,*) stop end if ! generate the 3-index density matrix k=itmfix(4,i) p=itmfix(5,i) r=itmfix(6,i) t=itmfix(7,i) if (abs(t) > lmmaxdm) then write(*,*) write(*,'("Error(gendmftm): invalid t : ",I8)') t write(*,'(" for tensor moment entry ",I3)') i write(*,*) stop end if ! scale factor for conventional normalisation t0=sqrt(dble((2*l+1)*2)) wkpr(:)=0.d0 wkpr(t)=wkprfix(i)/t0 call tm3todm(l,k,p,r,lmmaxdm,wkpr,dm) dmftm(:,:,:,:,ias)=dmftm(:,:,:,:,ias)+dm(:,:,:,:) end do end subroutine elk-9.6.8/src/PaxHeaders/writeftm.f900000644000000000000000000000013214626155521014346 xustar0030 mtime=1717099345.189992877 30 atime=1717099343.541983998 30 ctime=1717099345.189992877 elk-9.6.8/src/writeftm.f900000644002504400250440000000216314626155521017072 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,k,p,r,t real(8) t0 ! automatic arrays real(8) wkpr(-lmmaxdm:lmmaxdm) ! open FTM.OUT open(50,file='FTM.OUT',form='FORMATTED',action='WRITE') do i=1,ntmfix is=itmfix(1,i) ia=itmfix(2,i) ias=idxas(ia,is) l=itmfix(3,i) k=itmfix(4,i) p=itmfix(5,i) r=itmfix(6,i) t=itmfix(7,i) write(50,*) write(50,'("Species : ",I4," (",A,"), atom : ",I4)') is,trim(spsymb(is)),ia write(50,'(" l = ",I2)') l ! scale factor for conventional normalisation t0=sqrt(dble((2*l+1)*nspinor)) 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,k,p,r,lmmaxdm,dmatmt(:,:,:,:,ias),wkpr) write(50,'(" tensor moment")') write(50,'(" current : ",G18.10)') t0*wkpr(t) write(50,'(" target : ",G18.10)') wkprfix(i) end do close(50) end subroutine elk-9.6.8/src/PaxHeaders/writetdtm3.f900000644000000000000000000000013214626155521014613 xustar0030 mtime=1717099345.191992888 30 atime=1717099343.544984014 30 ctime=1717099345.191992888 elk-9.6.8/src/writetdtm3.f900000644002504400250440000000243014626155521017334 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2022 Leon Kerber, 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 writetdtm3 use modmain use modtddft use moddftu implicit none ! local variables integer is,ia,ias,idu integer l,p,k,r,t,i real(8) t0 character(256) fname ! automatic arrays real(8) wkpr(-lmmaxdm:lmmaxdm) ! loop over DFT+U entries i=0 do idu=1,ndftu is=isldu(1,idu) l=isldu(2,idu) ! scale factor for conventional normalisation t0=sqrt(dble((2*l+1)*2)) do ia=1,natoms(is) ias=idxas(ia,is) do k=0,2*l do p=0,1 do r=abs(k-p),k+p i=i+1 ! decompose density matrix in 3-index tensor moment components call dmtotm3(l,k,p,r,lmmaxdm,dmatmt(:,:,:,:,ias),wkpr) ! construct the filename write(fname,'("TMTD_S",I2.2,"_A",I3.3,"_L",I1,"_K",I1,"_P",I1,& &"_R",I1,".OUT")') is,ia,l,k,p,r if (itimes <= 1) then open(50,file=trim(fname),form='FORMATTED') else open(50,file=trim(fname),form='FORMATTED',position='APPEND') end if write(50,'(20G18.10)') times(itimes),(t0*(wkpr(t)-wkpr0(t,i)),t=-r,r) close(50) end do end do end do end do end do end subroutine elk-9.6.8/src/PaxHeaders/genwkpr0.f900000644000000000000000000000013114626155521014241 xustar0030 mtime=1717099345.193992899 29 atime=1717099343.54798403 30 ctime=1717099345.193992899 elk-9.6.8/src/genwkpr0.f900000644002504400250440000000202514626155521016763 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2022 Leon Kerber, 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 genwkpr0 use modmain use modtddft use moddftu implicit none integer is,ia,ias,idu integer n,l,p,k,r,i ! determine the total number of tensor moments n=0 do idu=1,ndftu is=isldu(1,idu) l=isldu(2,idu) do ia=1,natoms(is) do k=0,2*l do p=0,1 do r=abs(k-p),k+p n=n+1 end do end do end do end do end do ! allocate the t=0 tensor moment global array if (allocated(wkpr0)) deallocate(wkpr0) allocate(wkpr0(-lmmaxdm:lmmaxdm,n)) i=0 do idu=1,ndftu is=isldu(1,idu) l=isldu(2,idu) do ia=1,natoms(is) ias=idxas(ia,is) do k=0,2*l do p=0,1 do r=abs(k-p),k+p i=i+1 ! decompose density matrix in 3-index tensor moment components call dmtotm3(l,k,p,r,lmmaxdm,dmatmt(:,:,:,:,ias),wkpr0(:,i)) end do end do end do end do end do end subroutine elk-9.6.8/src/PaxHeaders/tm3rtoz.f900000644000000000000000000000013014626155521014125 xustar0029 mtime=1717099345.19599291 30 atime=1717099343.550984046 29 ctime=1717099345.19599291 elk-9.6.8/src/tm3rtoz.f900000644002504400250440000000241114626155521016647 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2022 Leon Kerber, 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 tm3rtoz(l,k,p,r,ld,wkpr,zkpr) use modmain implicit none ! arguments integer, intent(in) :: l,k,p,r,ld real(8), intent(in) :: wkpr(-ld:ld) complex(8), intent(out) :: zkpr(-ld:ld) ! local variables integer g,t real(8) a,b,t0,t1,t2 ! external functions real(8), external :: wigner3j,factn,factn2,factr ! old convention normalisation factors and phase factors g=k+p+r if (mod(g,2) == 0) then t0=1.d0/wigner3j(k,p,r,0,0,0) else t0=sqrt(factr(g+1,g-2*k)/(factn(g-2*p)*factn(g-2*r))) t0=t0*factn2(g-2*k)*factn2(g-2*p)*factn2(g-2*r)/factn2(g) end if t0=t0/sqrt(dble(2*r+1)) t0=t0*sqrt(factn(2*l-k)*factn(2*l+k+1))/factn(2*l) t0=t0*sqrt(factn(2+p)) if (mod(k+p,2) /= 0) t0=-t0 ! remove orthonormal convention normalisation factors t0=t0/sqrt(dble(2*k+1)) t0=t0/sqrt(dble(2*p+1)) t0=t0/2.d0 do t=-r,r t1=t0*(wkpr(t)+wkpr(-t)) t2=t0*(wkpr(t)-wkpr(-t)) if (mod(t,2) == 0) then a=t1 b=t2 else a=-t2 b=-t1 end if if ((k == r).and.(p == 1)) then if (mod(k,2) == 0) then b=-b else a=-a end if end if zkpr(t)=cmplx(a,b,8) end do end subroutine elk-9.6.8/src/PaxHeaders/rdmft.f900000644000000000000000000000013014626155521013617 xustar0029 mtime=1717099345.19799292 30 atime=1717099343.552984057 29 ctime=1717099345.19799292 elk-9.6.8/src/rdmft.f900000644002504400250440000000627014626155521016350 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 ! 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(*,'("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 end subroutine !EOC elk-9.6.8/src/PaxHeaders/rdmwriteengy.f900000644000000000000000000000013214626155521015225 xustar0030 mtime=1717099345.199992931 30 atime=1717099343.555984073 30 ctime=1717099345.199992931 elk-9.6.8/src/rdmwriteengy.f900000644002504400250440000000206614626155521017753 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 > 0.d0) then write(fnum,'(" entropy",T30,": ",G18.10)') rdmentrpy end if write(fnum,'(" total energy",T30,": ",G18.10)') engytot flush(fnum) end subroutine !EOC elk-9.6.8/src/PaxHeaders/rdmminc.f900000644000000000000000000000013214626155521014136 xustar0030 mtime=1717099345.201992942 30 atime=1717099343.558984089 30 ctime=1717099345.201992942 elk-9.6.8/src/rdmminc.f900000644002504400250440000000261014626155521016657 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 < 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 writevcl1223 ! update evecsv, orthogonalise and write to file call rdmvaryc ! 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 end subroutine !EOC elk-9.6.8/src/PaxHeaders/rdmvaryc.f900000644000000000000000000000013014626155521014332 xustar0030 mtime=1717099345.203992953 28 atime=1717099343.5609841 30 ctime=1717099345.203992953 elk-9.6.8/src/rdmvaryc.f900000644002504400250440000000233314626155521017057 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 use modmpi ! !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 ! allocatable arrays complex(8), allocatable :: dedc(:,:,:),evecsv(:,:) ! compute the derivative w.r.t. evecsv allocate(dedc(nstsv,nstsv,nkpt)) call rdmdedc(dedc) allocate(evecsv(nstsv,nstsv)) do ik=1,nkpt ! distribute among MPI processes if (mod(ik-1,np_mpi) /= lp_mpi) cycle ! get the eigenvectors from file call getevecsv(filext,ik,vkl(:,ik),evecsv) ! calculate new evecsv evecsv(:,:)=evecsv(:,:)-taurdmc*dedc(:,:,ik) ! othogonalise evecsv call unitary(nstsv,evecsv) ! write new evecsv to file call putevecsv(filext,ik,evecsv) ! end loop over k-points end do deallocate(dedc,evecsv) ! synchronise MPI processes call mpi_barrier(mpicom,ierror) end subroutine !EOC elk-9.6.8/src/PaxHeaders/rdmdedc.f900000644000000000000000000000013214626155521014107 xustar0030 mtime=1717099345.205992963 30 atime=1717099343.563984116 30 ctime=1717099345.205992963 elk-9.6.8/src/rdmdedc.f900000644002504400250440000000256414626155521016640 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) end subroutine !EOC elk-9.6.8/src/PaxHeaders/rdmengyxc.f900000644000000000000000000000013214626155521014505 xustar0030 mtime=1717099345.207992974 30 atime=1717099343.566984133 30 ctime=1717099345.207992974 elk-9.6.8/src/rdmengyxc.f900000644002504400250440000000353114626155521017231 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 :: vcl1221(:,:,:) ! calculate the prefactor if (rdmxctype == 0) then engyx=0.d0 return else if (rdmxctype == 1) then ! Hartree-Fock functional t1=0.5d0/occmax else if (rdmxctype == 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(vcl1221(nstsv,nstsv,nkpt)) ! start loop over non-reduced k-points do ik1=1,nkptnr call getvcl1221(ik1,vcl1221) ! 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 == 1) then t2=t1*wkpt(ik2)*occsv(ist2,ik2)*occsv(ist1,jk) ! Power functional else if (rdmxctype == 2) then t3=occsv(ist2,ik2)*occsv(ist1,jk) t4=sum(abs(vkl(:,ik2)-vkl(:,ik1))) if ((ist2 == ist1).and.(t4 < epslat)) then t2=(0.5d0/occmax)*wkpt(ik2)*t3 else t2=t1*wkpt(ik2)*(t3**rdmalpha) end if end if engyx=engyx-t2*vcl1221(ist2,ist1,ik2) end do end do end do end do deallocate(vcl1221) end subroutine !EOC elk-9.6.8/src/PaxHeaders/rdmminn.f900000644000000000000000000000013214626155521014151 xustar0030 mtime=1717099345.209992985 30 atime=1717099343.569984149 30 ctime=1717099345.209992985 elk-9.6.8/src/rdmminn.f900000644002504400250440000000307014626155521016673 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 < 1) return ! write the Coulomb matrix elements to file call writevcl1221 ! 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) == 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 end subroutine !EOC elk-9.6.8/src/PaxHeaders/rdmvaryn.f900000644000000000000000000000013214626155521014347 xustar0030 mtime=1717099345.211992996 30 atime=1717099343.572984165 30 ctime=1717099345.211992996 elk-9.6.8/src/rdmvaryn.f900000644002504400250440000000735414626155521017102 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,sm,gs,gsp,dgs real(8) kapa,dkapa,t1 ! allocatable arrays real(8), allocatable :: dedn(:,:),gamma(:,:) ! add constant to occupation numbers for charge conservation sm=0.d0 do ik=1,nkpt do ist=1,nstsv sm=sm+wkpt(ik)*occsv(ist,ik) end do end do t1=(chgval-sm)/dble(nstsv) occsv(:,:)=occsv(:,:)+t1 ! redistribute charge so that occupation numbers are in the interval [0,occmax] sm=0.d0 do ik=1,nkpt do ist=1,nstsv if (occsv(ist,ik) > occmax) then sm=sm+wkpt(ik)*(occsv(ist,ik)-occmax) occsv(ist,ik)=occmax end if if (occsv(ist,ik) < 0.d0) then sm=sm+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 (sm > 0.d0) then t1=wkpt(ik)*(occmax-occsv(ist,ik)) t1=min(t1,sm) occsv(ist,ik)=occsv(ist,ik)+t1/wkpt(ik) sm=sm-t1 else t1=wkpt(ik)*occsv(ist,ik) t1=min(t1,-sm) occsv(ist,ik)=occsv(ist,ik)-t1/wkpt(ik) sm=sm+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 sm=0.d0 do ik=1,nkpt do ist=1,nstsv t1=dedn(ist,ik)-kapa if (t1 > 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) sm=sm+wkpt(ik)*gamma(ist,ik)**2 end do end do sm=sqrt(sm) sm=max(sm,1.d0) t1=abs(gs)/sm if (t1 < eps) goto 10 if (it >= 2) then dgs=gs-gsp if (gs*dgs > 0.d0) dkapa=-dkapa if (gs*gsp < 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 occupation numbers to file call rdmwritededn(dedn) deallocate(dedn) ! normalize gamma if sum of squares is greater than 1 sm=0.d0 do ik=1,nkpt do ist=1,nstsv sm=sm+wkpt(ik)*gamma(ist,ik)**2 end do end do if (sm > 1.d0) then t1=1.d0/sqrt(sm) gamma(:,:)=t1*gamma(:,:) end if ! find step size which keeps occupation numbers in the interval [0,occmax] tau=taurdmn 20 continue if (abs(tau) < eps) goto 30 do ik=1,nkpt do ist=1,nstsv t1=occsv(ist,ik)+tau*gamma(ist,ik) if (gamma(ist,ik) > 0.d0) then if (t1 > occmax+eps) then tau=0.75d0*tau goto 20 end if end if if (gamma(ist,ik) < 0.d0) then if (t1 < -eps) then tau=0.75d0*tau goto 20 end if end if end do end do 30 continue ! update occupation numbers 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) end subroutine !EOC elk-9.6.8/src/PaxHeaders/rdmdkdc.f900000644000000000000000000000013214626155521014115 xustar0030 mtime=1717099345.213993006 30 atime=1717099343.575984181 30 ctime=1717099345.213993006 elk-9.6.8/src/rdmdkdc.f900000644002504400250440000000203614626155521016640 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) end subroutine !EOC elk-9.6.8/src/PaxHeaders/rdmenergy.f900000644000000000000000000000013214626155521014501 xustar0030 mtime=1717099345.215993017 30 atime=1717099343.578984197 30 ctime=1717099345.215993017 elk-9.6.8/src/rdmenergy.f900000644002504400250440000000427014626155521017226 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 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) wo complex(8) z1 ! automatic arrays real(8) rfmt(npmtmax) ! allocatable arrays complex(8), allocatable :: evecsv(:,:) ! external functions real(8), external :: rfmtinp complex(8), external :: zdotc ! 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 if (spincore) then ! spin-polarised core 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 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 engyvcl=engyvcl+rfmtinp(nr,nri,wrmt(:,is),rfmt,vclmt(:,ias)) end do engykn=engykncr allocate(evecsv(nstsv,nstsv)) do ik=1,nkpt call getevecsv(filext,ik,vkl(:,ik),evecsv) do ist=1,nstsv wo=wkpt(ik)*occsv(ist,ik) ! Coulomb energy from valence states engyvcl=engyvcl+wo*dble(vclmat(ist,ist,ik)) ! kinetic energy from valence states z1=zdotc(nstsv,evecsv(:,ist),1,dkdc(:,ist,ik),1) engykn=engykn+wo*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 > 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) end subroutine !EOC elk-9.6.8/src/PaxHeaders/rdmwritededn.f900000644000000000000000000000013214626155521015175 xustar0030 mtime=1717099345.217993028 30 atime=1717099343.580984208 30 ctime=1717099345.217993028 elk-9.6.8/src/rdmwritededn.f900000644002504400250440000000203714626155521017721 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) end subroutine !EOC elk-9.6.8/src/PaxHeaders/rdmdedn.f900000644000000000000000000000013214626155521014122 xustar0030 mtime=1717099345.219993039 30 atime=1717099343.583984224 30 ctime=1717099345.219993039 elk-9.6.8/src/rdmdedn.f900000644002504400250440000000265614626155521016655 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 > 0.d0) call rdmdtsdn(dedn) end subroutine !EOC elk-9.6.8/src/PaxHeaders/rdmdexcdn.f900000644000000000000000000000012714626155521014461 xustar0029 mtime=1717099345.22199305 29 atime=1717099343.58698424 29 ctime=1717099345.22199305 elk-9.6.8/src/rdmdexcdn.f900000644002504400250440000000420314626155521017176 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 :: vcl1221(:,:,:) if (rdmxctype == 0) return ! calculate the prefactor if (rdmxctype == 1) then t1=1.d0/occmax ! Power functional else if (rdmxctype == 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(vcl1221(nstsv,nstsv,nkpt)) ! start loop over non-reduced k-points do ik1=1,nkptnr ! get the Coulomb matrix elements call getvcl1221(ik1,vcl1221) ! 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 == 1) then t2=t1*occsv(ist1,jk) ! Power functional else if (rdmxctype == 2) then t3=sum(abs(vkl(:,ik2)-vkl(:,ik1))) if ((ist2 == ist1).and.(t3 < 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*vcl1221(ist2,ist1,ik2) end do end do end do end do deallocate(vcl1221) end subroutine !EOC elk-9.6.8/src/PaxHeaders/genvcl1223.f900000644000000000000000000000013014626155521014271 xustar0029 mtime=1717099345.22399306 30 atime=1717099343.589984257 29 ctime=1717099345.22399306 elk-9.6.8/src/genvcl1223.f900000644002504400250440000001164314626155521017022 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: genvcl1223 ! !INTERFACE: subroutine genvcl1223(ikp,vcl1223) ! !USES: use modmain ! !INPUT/OUTPUT PARAMETERS: ! ikp : k-point from non-reduced set (in,integer) ! vcl1223 : Coulomb matrix elements (out,complex(nstsv,nstsv,nstsv,nkpt)) ! !DESCRIPTION: ! Calculates Coulomb matrix elements of the type ! $$ V(1,2,2,3)=\int d^3r\,d^3r'\,\frac{\varphi_{i_1{\bf k}}^*({\bf r}) ! \varphi_{i_2{\bf k}'}({\bf r})\varphi_{i_2{\bf k}'}^*({\bf r}') ! \varphi_{i_3{\bf k}}({\bf r}')}{|{\bf r}-{\bf r}'|}. $$ ! ! !REVISION HISTORY: ! Created 2008 (Sharma) !EOP !BOC implicit none ! arguments integer, intent(in) :: ikp complex(8), intent(out) :: vcl1223(nstsv,nstsv,nstsv,nkpt) ! local variables integer ik,ist1,ist2,ist3 integer iv(3),iq,ig real(8) vc(3) complex(8) z1 ! allocatable arrays real(8), allocatable :: vgqc(:,:),gqc(:),gclgq(:),jlgqrmt(:,:,:) complex(8), allocatable :: apwalm(:,:,:,:),evecfv(:,:),evecsv(:,:) complex(8), allocatable :: ylmgq(:,:),sfacgq(:,:) complex(4), allocatable :: wfmt1(:,:,:,:),wfir1(:,:,:) complex(4), allocatable :: wfmt2(:,:,:,:),wfir2(:,:,:) complex(4), allocatable :: crhomt(:,:,:),crhoir(:,:) complex(4), allocatable :: cvclmt(:,:),cvclir(:) ! external functions complex(8), external :: zcfinp ! 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(crhomt(npcmtmax,natmtot,nstsv),crhoir(ngtc,nstsv)) allocate(cvclmt(npcmtmax,natmtot),cvclir(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) ! calculate the wavefunctions for all states of passed non-reduced k-point ikp call genwfsv_sp(.false.,.false.,nstsv,[0],ngdgc,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(:) if (any(mod(iv(:),ngridk(:)) /= 0)) cycle iv(:)=iv(:)/ngridk(:) iq=ivqiq(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(.true.,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_sp(.false.,.false.,nstsv,[0],ngdgc,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 gencrho(.true.,.true.,ngtc,wfmt2(:,:,:,ist2),wfir2(:,:,ist2), & wfmt1(:,:,:,ist1),wfir1(:,:,ist1),crhomt(:,:,ist1),crhoir(:,ist1)) end do do ist3=1,nstsv ! compute the Coulomb potential call gencvclmt(nrcmt,nrcmti,nrcmtmax,rlcmt,wprcmt,npcmtmax, & crhomt(:,:,ist3),cvclmt) call cpotcoul(nrcmt,nrcmti,npcmt,nrcmtmax,rlcmt,ngdgc,igfc,ngvc,gqc, & gclgq,ngvc,jlgqrmt,ylmgq,sfacgq,crhoir(:,ist3),npcmtmax,cvclmt,cvclir) cvclir(:)=cvclir(:)*cfrc(:) do ist1=ist3,nstsv z1=zcfinp(crhomt(:,:,ist1),crhoir(:,ist1),cvclmt,cvclir) vcl1223(ist1,ist3,ist2,ik)=wqptnr*z1 end do end do end do ! calculate the lower diagonal do ist1=1,nstsv do ist3=1,ist1-1 vcl1223(ist3,ist1,:,ik)=conjg(vcl1223(ist1,ist3,:,ik)) end do end do ! 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(crhomt,crhoir,cvclmt,cvclir) end subroutine !EOC elk-9.6.8/src/PaxHeaders/getvcl1221.f900000644000000000000000000000013214626155521014277 xustar0030 mtime=1717099345.225993071 30 atime=1717099343.591984267 30 ctime=1717099345.225993071 elk-9.6.8/src/getvcl1221.f900000644002504400250440000000173514626155521017027 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: getvcl1221 ! !INTERFACE: subroutine getvcl1221(ikp,vcl1221) ! !USES: use modmain ! !INPUT/OUTPUT PARAMETERS: ! ikp : k-point from non-reduced set (in,integer) ! vcl1221 : Coulomb matrix elements (out,real(nstsv,nstsv,nkpt)) ! !DESCRIPTION: ! Retrieves Coulomb matrix elements of the type $V(1,2,2,1)$ from the file ! {\tt VCL1221.OUT}. ! ! !REVISION HISTORY: ! Created 2009 (Sharma) !EOP !BOC implicit none ! arguments integer, intent(in) :: ikp real(8), intent(out) :: vcl1221(nstsv,nstsv,nkpt) ! local variables integer recl ! determine record length inquire(iolength=recl) vcl1221 !$OMP CRITICAL(u260) open(260,file='VCL1221.OUT',form='UNFORMATTED',access='DIRECT',recl=recl) read(260,rec=ikp) vcl1221 close(260) !$OMP END CRITICAL(u260) end subroutine !EOC elk-9.6.8/src/PaxHeaders/getvcl1223.f900000644000000000000000000000013214626155521014301 xustar0030 mtime=1717099345.227993082 30 atime=1717099343.594984283 30 ctime=1717099345.227993082 elk-9.6.8/src/getvcl1223.f900000644002504400250440000000175714626155521017035 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: getvcl1223 ! !INTERFACE: subroutine getvcl1223(ikp,vcl1223) ! !USES: use modmain ! !INPUT/OUTPUT PARAMETERS: ! ikp : k-point from non-reduced set (in,integer) ! vcl1223 : Coulomb matrix elements (out,complex(nstsv,nstsv,nstsv,nkpt)) ! !DESCRIPTION: ! Retrieves Coulomb matrix elements of the type $V(1,2,2,3)$ from the file ! {\tt VCL1223.OUT}. ! ! !REVISION HISTORY: ! Created 2009 (Sharma) !EOP !BOC implicit none ! arguments integer, intent(in) :: ikp complex(8), intent(out) :: vcl1223(nstsv,nstsv,nstsv,nkpt) ! local variables integer recl ! determine record length inquire(iolength=recl) vcl1223 !$OMP CRITICAL(u262) open(262,file='VCL1223.OUT',form='UNFORMATTED',access='DIRECT',recl=recl) read(262,rec=ikp) vcl1223 close(262) !$OMP END CRITICAL(u262) end subroutine !EOC elk-9.6.8/src/PaxHeaders/writevcl1221.f900000644000000000000000000000013014626155521014650 xustar0030 mtime=1717099345.229993093 28 atime=1717099343.5979843 30 ctime=1717099345.229993093 elk-9.6.8/src/writevcl1221.f900000644002504400250440000000276314626155521017404 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: writevcl1221 ! !INTERFACE: subroutine writevcl1221 ! !USES: use modmain use modmpi use modomp ! !DESCRIPTION: ! Generates Coulomb matrix elements of the type $V(1,2,2,1)$ and outputs them ! to the file {\tt VCL1221.OUT}. ! ! !REVISION HISTORY: ! Created 2008 (Sharma) !EOP !BOC implicit none ! allocatable arrays real(8), allocatable :: vcl1221(:,:,:) integer recl,ik,nthd ! determine record length for vcl1221 and open file allocate(vcl1221(nstsv,nstsv,nkpt)) inquire(iolength=recl) vcl1221 deallocate(vcl1221) open(260,file='VCL1221.OUT',form='UNFORMATTED',access='DIRECT',recl=recl) call holdthd(nkptnr/np_mpi,nthd) !$OMP PARALLEL DEFAULT(SHARED) & !$OMP PRIVATE(vcl1221) & !$OMP NUM_THREADS(nthd) allocate(vcl1221(nstsv,nstsv,nkpt)) !$OMP DO do ik=1,nkptnr ! distribute among MPI processes if (mod(ik-1,np_mpi) /= lp_mpi) cycle !$OMP CRITICAL(writevcl1221_) write(*,'("Info(writevcl1221): ",I6," of ",I6," k-points")') ik,nkptnr !$OMP END CRITICAL(writevcl1221_) ! calculate Coulomb matrix elements of the type V(1,2,2,1) call genvcl1221(ik,vcl1221) !$OMP CRITICAL(u260) write(260,rec=ik) vcl1221 !$OMP END CRITICAL(u260) end do !$OMP END DO deallocate(vcl1221) !$OMP END PARALLEL call freethd(nthd) close(260) ! synchronise MPI processes call mpi_barrier(mpicom,ierror) end subroutine !EOC elk-9.6.8/src/PaxHeaders/writevcl1223.f900000644000000000000000000000013214626155521014654 xustar0030 mtime=1717099345.231993104 30 atime=1717099343.600984316 30 ctime=1717099345.231993104 elk-9.6.8/src/writevcl1223.f900000644002504400250440000000415314626155521017401 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: writevcl1223 ! !INTERFACE: subroutine writevcl1223 ! !USES: use modmain use modmpi use modomp ! !DESCRIPTION: ! Generates Coulomb matrix elements of the type $V(1,2,2,3)$ and outputs them ! to the file {\tt VCL1223.OUT}. Also writes the real diagonal of this matrix, ! $V(1,2,2,1)$, to {\tt VCL1221.OUT}. ! ! !REVISION HISTORY: ! Created 2008 (Sharma) !EOP !BOC implicit none ! local variables integer ik,ist,recl,nthd ! allocatable arrays real(8), allocatable :: vcl1221(:,:,:) complex(8), allocatable :: vcl1223(:,:,:,:) ! determine record length for vcl1221 and open file allocate(vcl1221(nstsv,nstsv,nkpt)) inquire(iolength=recl) vcl1221 deallocate(vcl1221) open(260,file='VCL1221.OUT',form='UNFORMATTED',access='DIRECT',recl=recl) ! determine record length for vcl1223 and open file allocate(vcl1223(nstsv,nstsv,nstsv,nkpt)) inquire(iolength=recl) vcl1223 deallocate(vcl1223) open(262,file='VCL1223.OUT',form='UNFORMATTED',access='DIRECT',recl=recl) call holdthd(nkptnr/np_mpi,nthd) !$OMP PARALLEL DEFAULT(SHARED) & !$OMP PRIVATE(vcl1221,vcl1223,ist) & !$OMP NUM_THREADS(nthd) allocate(vcl1221(nstsv,nstsv,nkpt),vcl1223(nstsv,nstsv,nstsv,nkpt)) !$OMP DO do ik=1,nkptnr ! distribute among MPI processes if (mod(ik-1,np_mpi) /= lp_mpi) cycle !$OMP CRITICAL(writevcl1223_) write(*,'("Info(writevcl1223): ",I6," of ",I6," k-points")') ik,nkptnr !$OMP END CRITICAL(writevcl1223_) ! calculate Coulomb matrix elements of the type V(1,2,2,3) call genvcl1223(ik,vcl1223) ! make a copy of the diagonal elements V(1,2,2,1) do ist=1,nstsv vcl1221(ist,:,:)=dble(vcl1223(ist,ist,:,:)) end do !$OMP CRITICAL(u260) write(260,rec=ik) vcl1221 !$OMP END CRITICAL(u260) !$OMP CRITICAL(u262) write(262,rec=ik) vcl1223 !$OMP END CRITICAL(u262) end do !$OMP END DO deallocate(vcl1221,vcl1223) !$OMP END PARALLEL call freethd(nthd) close(260) close(262) ! synchronise MPI processes call mpi_barrier(mpicom,ierror) end subroutine !EOC elk-9.6.8/src/PaxHeaders/rdmdexcdc.f900000644000000000000000000000013214626155521014442 xustar0030 mtime=1717099345.233993114 30 atime=1717099343.602984326 30 ctime=1717099345.233993114 elk-9.6.8/src/rdmdexcdc.f900000644002504400250440000000463714626155521017176 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 :: vcl1223(:,:,:,:),evecsv(:,:) if (rdmxctype == 0) return ! calculate the prefactor if (rdmxctype == 1) then ! Hartree-Fock functional t1=1.d0/occmax else if (rdmxctype == 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(vcl1223(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 getvcl1223(ik1,vcl1223) ! 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 == 1) then ! Hartree-Fock functional t2=t1*occsv(ist3,ik2)*occsv(ist4,jk) else if (rdmxctype == 2) then ! Power functional t3=sum(abs(vkl(:,ik2)-vkl(:,ik1))) if ((ist3 == ist4).and.(t3 < 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)* & vcl1223(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(vcl1223,evecsv) end subroutine !EOC elk-9.6.8/src/PaxHeaders/rdmdtsdn.f900000644000000000000000000000013214626155521014324 xustar0030 mtime=1717099345.235993125 30 atime=1717099343.605984343 30 ctime=1717099345.235993125 elk-9.6.8/src/rdmdtsdn.f900000644002504400250440000000164014626155521017047 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 ! with respect to the 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 end subroutine !EOC elk-9.6.8/src/PaxHeaders/rdmentropy.f900000644000000000000000000000013214626155521014710 xustar0030 mtime=1717099345.237993136 30 atime=1717099343.608984359 30 ctime=1717099345.237993136 elk-9.6.8/src/rdmentropy.f900000644002504400250440000000156014626155521017434 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 end subroutine !EOC elk-9.6.8/src/PaxHeaders/rdmeval.f900000644000000000000000000000013214626155521014137 xustar0030 mtime=1717099345.239993147 30 atime=1717099343.611984375 30 ctime=1717099345.239993147 elk-9.6.8/src/rdmeval.f900000644002504400250440000000165014626155521016663 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) end subroutine !EOC elk-9.6.8/src/PaxHeaders/genvcl1221.f900000644000000000000000000000013214626155521014271 xustar0030 mtime=1717099345.241993157 30 atime=1717099343.613984386 30 ctime=1717099345.241993157 elk-9.6.8/src/genvcl1221.f900000644002504400250440000001102014626155521017005 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: genvcl1221 ! !INTERFACE: subroutine genvcl1221(ikp,vcl1221) ! !USES: use modmain ! !INPUT/OUTPUT PARAMETERS: ! ikp : k-point from non-reduced set (in,integer) ! vcl1221 : Coulomb matrix elements (out,real(nstsv,nstsv,nkpt)) ! !DESCRIPTION: ! Calculates the Coulomb matrix elements of the type $V(1,2,2,1)$. See the ! routine {\tt genvcl1223} for details. ! ! !REVISION HISTORY: ! Created June 2008 (Sharma) !EOP !BOC implicit none ! arguments integer, intent(in) :: ikp real(8), intent(out) :: vcl1221(nstsv,nstsv,nkpt) ! local variables integer ik,ist1,ist2 integer iv(3),iq,ig real(8) vc(3) complex(8) z1 ! allocatable arrays real(8), allocatable :: vgqc(:,:),gqc(:),gclgq(:),jlgqrmt(:,:,:) complex(8), allocatable :: apwalm(:,:,:,:),evecfv(:,:),evecsv(:,:) complex(8), allocatable :: ylmgq(:,:),sfacgq(:,:) complex(4), allocatable :: wfmt1(:,:,:,:),wfir1(:,:,:) complex(4), allocatable :: wfmt2(:,:,:,:),wfir2(:,:,:) complex(4), allocatable :: crhomt(:,:),crhoir(:) complex(4), allocatable :: cvclmt(:,:),cvclir(:) ! external functions complex(8), external :: zcfinp ! 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(crhomt(npcmtmax,natmtot),crhoir(ngtc)) allocate(cvclmt(npcmtmax,natmtot),cvclir(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) ! calculate the wavefunctions for all states of passed non-reduced k-point ikp call genwfsv_sp(.false.,.false.,nstsv,[0],ngdgc,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(:) if (any(mod(iv(:),ngridk(:)) /= 0)) cycle iv(:)=iv(:)/ngridk(:) iq=ivqiq(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(.true.,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_sp(.false.,.false.,nstsv,[0],ngdgc,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 gencrho(.true.,.true.,ngtc,wfmt2(:,:,:,ist2),wfir2(:,:,ist2), & wfmt1(:,:,:,ist1),wfir1(:,:,ist1),crhomt,crhoir) ! compute the potential and G=0 coefficient of the density call gencvclmt(nrcmt,nrcmti,nrcmtmax,rlcmt,wprcmt,npcmtmax,crhomt,cvclmt) call cpotcoul(nrcmt,nrcmti,npcmt,nrcmtmax,rlcmt,ngdgc,igfc,ngvc,gqc, & gclgq,ngvc,jlgqrmt,ylmgq,sfacgq,crhoir,npcmtmax,cvclmt,cvclir) cvclir(:)=cvclir(:)*cfrc(:) z1=zcfinp(crhomt,crhoir,cvclmt,cvclir) vcl1221(ist1,ist2,ik)=wqptnr*dble(z1) ! end loop over ist2 end do ! end loop over ist1 end do ! 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(crhomt,crhoir,cvclmt,cvclir) end subroutine !EOC elk-9.6.8/src/PaxHeaders/gwdmat.f900000644000000000000000000000013214626155521013770 xustar0030 mtime=1717099345.243993168 30 atime=1717099343.616984402 30 ctime=1717099345.243993168 elk-9.6.8/src/gwdmat.f900000644002504400250440000000300614626155521016511 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,lp,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 DO DEFAULT(SHARED) & !$OMP NUM_THREADS(nthd) do ik=1,nkpt ! distribute among MPI processes if (mod(ik-1,np_mpi) /= lp_mpi) cycle call gwdmatk(ik) end do !$OMP END PARALLEL DO call freethd(nthd) ! broadcast occupation number array to every MPI process if (np_mpi > 1) then do ik=1,nkpt lp=mod(ik-1,np_mpi) call mpi_bcast(occsv(:,ik),nstsv,mpi_double_precision,lp,mpicom,ierror) end do end if if (mp_mpi) then ! write the occupation numbers to file do ik=1,nkpt call putoccsv(filext,ik,occsv(:,ik)) end do 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 end subroutine elk-9.6.8/src/PaxHeaders/gwlocal.f900000644000000000000000000000013214626155521014135 xustar0030 mtime=1717099345.245993179 30 atime=1717099343.619984418 30 ctime=1717099345.245993179 elk-9.6.8/src/gwlocal.f900000644002504400250440000000350214626155521016657 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 use modomp 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,nthd integer nrc,nrci,npc call holdthd(natmtot+1,nthd) !$OMP PARALLEL DEFAULT(SHARED) & !$OMP PRIVATE(ias,is) & !$OMP PRIVATE(nrc,nrci,npc,idm) & !$OMP NUM_THREADS(nthd) !$OMP DO 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),vmt(:,ias)) ! negate because V_xc should be removed from the self-energy vmt(1:npc,ias)=-vmt(1:npc,ias) ! convert to spherical coordinates call rbshtip(nrc,nrci,vmt(:,ias)) ! multiply by radial integration weights call rfcmtwr(nrc,nrci,wrcmt(:,is),vmt(:,ias)) end do !$OMP END DO NOWAIT ! negate and multiply the interstitial V_xc by the characteristic function !$OMP SINGLE vir(:)=-vxcir(:)*cfunir(:) !$OMP END SINGLE NOWAIT ! do the same for B_xc in the spin-polarised case if (spinpol) then do idm=1,ndmag !$OMP DO do ias=1,natmtot is=idxis(ias) nrc=nrcmt(is) nrci=nrcmti(is) npc=npcmt(is) call rfmtftoc(nrc,nrci,bxcmt(:,ias,idm),bmt(:,ias,idm)) bmt(1:npc,ias,idm)=-bmt(1:npc,ias,idm) call rbshtip(nrc,nrci,bmt(:,ias,idm)) call rfcmtwr(nrc,nrci,wrcmt(:,is),bmt(:,ias,idm)) end do !$OMP END DO NOWAIT end do !$OMP SINGLE do idm=1,ndmag bir(:,idm)=-bxcir(:,idm)*cfunir(:) end do !$OMP END SINGLE end if !$OMP END PARALLEL call freethd(nthd) end subroutine elk-9.6.8/src/PaxHeaders/genwgw.f900000644000000000000000000000013014626155521014001 xustar0029 mtime=1717099345.24799319 30 atime=1717099343.622984434 29 ctime=1717099345.24799319 elk-9.6.8/src/genwgw.f900000644002504400250440000000326414626155521016532 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 <= 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(4,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 >= 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 == 0) then write(*,*) write(*,'("Error(genwgw): not enough Matsubara frequencies")') write(*,'("Increase wmaxgw")') write(*,*) stop end if if (mod(n,2) == 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 end subroutine elk-9.6.8/src/PaxHeaders/gwtails.f900000644000000000000000000000013114626155521014156 xustar0030 mtime=1717099345.249993201 29 atime=1717099343.62598445 30 ctime=1717099345.249993201 elk-9.6.8/src/gwtails.f900000644002504400250440000000435114626155521016704 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. !BOP ! !ROUTINE: gwtails ! !INTERFACE: pure complex(8) function gwtails(ge) ! !USES: use modmain use modgw ! !INPUT/OUTPUT PARAMETERS: ! ge : Green's function at the Matsubara end points (in,complex(4)) ! !DESCRIPTION: ! Sums the tails of the Green's function over the Matsubara frequencies as ! part of the evaluation of the density matrix. Thus if the Green's function ! $G(ij{\bf k},\omega_n)$ has been determined numerically over all Fermionic ! Matsubara frequencies up to $\pm \omega_{N_{\rm F}}$, then the density ! matrix is approximated by ! $$ \gamma_{ij{\bf k}}=\frac{1}{\beta}\sum_{n\;{\rm odd}}^{\pm N_{\rm F}} ! \left[G(ij{\bf k},\omega_n)+\frac{a_2}{\omega_n^2} ! -\frac{a_4}{\omega_n^4}\right]+\frac{1}{\beta}\left[\frac{\beta}{2}a_1 ! -\frac{\beta^2}{4}a_2+\frac{\beta^4}{48}a_4\right], $$ ! where $a_1$, $a_2$ and $a_4$ are chosen so that the Green's function is ! equal to ! $$ g(z)=\frac{a_1}{z}+\frac{a_2}{z^2}+\frac{a_3}{z^3}+\frac{a_4}{z^4} $$ ! at the points $n\in \{-n_{\rm F}, -n_{\rm F}+2, n_{\rm F}-2, n_{\rm F}\}$. ! ! !REVISION HISTORY: ! Created April 2018 (A. Davydov) ! Increased Laurent series order to 4, December 2023 (JKD) !EOP !BOC implicit none ! arguments complex(8), intent(in) :: ge(4) ! local variables integer iw real(8) sm2,sm4,t1,t2,t3 real(8) c2,c3,c4,d2,d3,d4 complex(8) a1,a2,a4,z1,z2 ! π / β t1=pi*kboltz*tempk t2=1.d0/(8.d0*dble(nwfm-1)) t3=dble(nwfm) c2=t3**2 c3=c2*t3 c4=c3*t3 t3=dble(nwfm-2) d2=t3**2 d3=d2*t3 d4=d3*t3 ! determine the coefficients a1, a2 and a4 a1=(d3*(ge(2)-ge(3))+c3*(ge(4)-ge(1)))*t1*t2 a1=cmplx(-aimag(a1),dble(a1),8) z1=ge(2)+ge(3) z2=ge(1)+ge(4) t3=t1**2 a2=(d4*z1-c4*z2)*t3*t2 t3=t3**2 a4=(d2*z1-c2*z2)*c2*d2*t3*t2 ! evaluate the sums analytically over all Matsubara frequencies t1=1.d0/(2.d0*kboltz*tempk) t2=t1**2 gwtails=a1*t1-a2*t2+a4*(t2**2)/3.d0 ! remove the contributions over the finite set of frequencies sm2=0.d0 sm4=0.d0 do iw=0,nwfm t1=aimag(wfm(iw))**2 sm2=sm2+1.d0/t1 sm4=sm4+1.d0/t1**2 end do gwtails=gwtails+sm2*a2-sm4*a4 end function !EOC elk-9.6.8/src/PaxHeaders/minf_nm.f900000644000000000000000000000013214626155521014130 xustar0030 mtime=1717099345.251993211 30 atime=1717099343.627984461 30 ctime=1717099345.251993211 elk-9.6.8/src/minf_nm.f900000644002504400250440000000402414626155521016652 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,sm,t1 ! automatic arrays real(8) f(n+1),xm(n),xr(n),xe(n),xc(n) ! external functions real(8), external :: fmin_nm if (n < 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 >= maxit) return ! find the lowest and highest vertex il=1 iu=1 do i=2,n+1 if (f(i) < f(il)) il=i if (f(i) > f(iu)) iu=i end do ! check for convergence if ((f(iu)-f(il)) < eps) return ! compute the mean of the n lowest vertices t1=1.d0/dble(n) do i=1,n sm=0.d0 do j=1,iu-1 sm=sm+x(i,j) end do do j=iu+1,n+1 sm=sm+x(i,j) end do xm(i)=t1*sm end do xr(:)=xm(:)+alpha*(xm(:)-x(:,iu)) fr=fmin_nm(id,rd,xr) if (f(il) > fr) goto 30 if ((f(il) <= fr).and.(fr < 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 > 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 < 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 end subroutine elk-9.6.8/src/PaxHeaders/acpole.f900000644000000000000000000000013214626155521013750 xustar0030 mtime=1717099345.253993222 30 atime=1717099343.630984477 30 ctime=1717099345.253993222 elk-9.6.8/src/acpole.f900000644002504400250440000000262714626155521016501 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), 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 > 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) end subroutine elk-9.6.8/src/PaxHeaders/gwrhomag.f900000644000000000000000000000013214626155521014320 xustar0030 mtime=1717099345.255993233 30 atime=1717099343.633984494 30 ctime=1717099345.255993233 elk-9.6.8/src/gwrhomag.f900000644002504400250440000000473114626155521017047 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,lp,nthd ! allocatable arrays real(8), allocatable :: vmt(:,:),vir(:) real(8), allocatable :: bmt(:,:,:),bir(:,:) complex(8), allocatable :: se(:,:,:) ! generate the momentum matrix elements call genpmat ! generate the inverse RPA response function 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) ! 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) /= lp_mpi) cycle !$OMP CRITICAL(gwrhomag_) write(*,'("Info(gwrhomag): ",I6," of ",I6," k-points")') ik,nkpt !$OMP END CRITICAL(gwrhomag_) ! 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) deallocate(vmt,vir) if (spinpol) deallocate(bmt,bir) ! synchronise MPI processes call mpi_barrier(mpicom,ierror) ! 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 DO DEFAULT(SHARED) & !$OMP NUM_THREADS(nthd) do ik=1,nkpt ! distribute among MPI processes if (mod(ik-1,np_mpi) /= lp_mpi) cycle call gwdmatk(ik) end do !$OMP END PARALLEL DO call freethd(nthd) ! broadcast occupation number array to every MPI process if (np_mpi > 1) then do ik=1,nkpt lp=mod(ik-1,np_mpi) call mpi_bcast(occsv(:,ik),nstsv,mpi_double_precision,lp,mpicom,ierror) end do end if ! write the occupation numbers to file if (mp_mpi) then do ik=1,nkpt call putoccsv(filext,ik,occsv(:,ik)) end do end if ! synchronise MPI processes call mpi_barrier(mpicom,ierror) ! determine the density and magnetisation in the usual way call rhomag end subroutine elk-9.6.8/src/PaxHeaders/gwdmatk.f900000644000000000000000000000013114626155521014142 xustar0030 mtime=1717099345.257993244 29 atime=1717099343.63698451 30 ctime=1717099345.257993244 elk-9.6.8/src/gwdmatk.f900000644002504400250440000000477514626155521016702 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 use modomp implicit none ! arguments integer, intent(in) :: ik ! local variables integer ist,jst,iw,i,nthd real(8) e,t1 complex(8) z1 ! automatic arrays complex(8) gs(nstsv),g(nstsv,nstsv),ge(4,nstsv,nstsv) complex(8) evecsv(nstsv,nstsv),d(nstsv,nstsv),a(nstsv,nstsv) ! allocatable arrays complex(8), allocatable :: se(:,:,:) ! external functions complex(8), external :: gwtails ! read the self-energy from file allocate(se(nstsv,nstsv,0:nwfm)) call getgwsefm(ik,se) ! zero the density matrix d(:,:)=0.d0 ! loop over fermionic Matsubara frequencies call holdthd(nwfm+1,nthd) !$OMP PARALLEL DO DEFAULT(SHARED) & !$OMP PRIVATE(gs,g,ist,e,z1,i) & !$OMP REDUCTION(+:d) & !$OMP NUM_THREADS(nthd) 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 Σ 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 Σ)⁻¹ 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 end point frequencies i=0 if (iw == 0) i=1 if (iw == 1) i=2 if (iw == nwfm-1) i=3 if (iw == nwfm) i=4 if (i /= 0) ge(i,:,:)=g(:,:) end do !$OMP END PARALLEL DO call freethd(nthd) ! add the Matsubara tails analytically do jst=1,nstsv do ist=1,nstsv d(ist,jst)=d(ist,jst)+gwtails(ge(:,ist,jst)) end do end do ! multiply by 1/β t1=kboltz*tempk d(:,:)=t1*d(:,:) deallocate(se) ! make density matrix Hermitian do ist=1,nstsv do jst=1,ist-1 z1=0.5d0*(d(ist,jst)+conjg(d(jst,ist))) d(ist,jst)=z1 d(jst,ist)=conjg(z1) end do d(ist,ist)=dble(d(ist,ist)) end do ! diagonalise the density matrix for the natural orbitals and occupation numbers call eveqnzh(nstsv,nstsv,d,occsv(:,ik)) occsv(:,ik)=occsv(:,ik)*occmax ! get the second-variational eigenvectors from file call getevecsv(filext,ik,vkl(:,ik),evecsv) ! apply unitary transformation to the third-variational states so that they ! refer to the first-variational basis 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) end subroutine elk-9.6.8/src/PaxHeaders/gwefermi.f900000644000000000000000000000013214626155521014312 xustar0030 mtime=1717099345.259993254 30 atime=1717099343.639984526 30 ctime=1717099345.259993254 elk-9.6.8/src/gwefermi.f900000644002504400250440000000326614626155521017043 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 logical done integer, parameter :: maxit=1000 integer ik,ist,it,nthd real(8) e0,e1,e,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 < e0) e0=e if (e > e1) e1=e end do end do done=.false. do it=1,maxit if (mp_mpi.and.(mod(it,10) == 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 DO DEFAULT(SHARED) & !$OMP PRIVATE(chgk) REDUCTION(+:chg) & !$OMP NUM_THREADS(nthd) do ik=1,nkpt ! distribute among MPI processes if (mod(ik-1,np_mpi) /= lp_mpi) cycle call gwchgk(ik,chgk) chg=chg+chgk end do !$OMP END PARALLEL DO call freethd(nthd) ! add charge from each process and redistribute if (np_mpi > 1) then call mpi_allreduce(mpi_in_place,chg,1,mpi_double_precision,mpi_sum,mpicom, & ierror) end if if (chg < chgval) then e0=efermi else e1=efermi end if ! check for convergence if ((e1-e0) < 1.d-12) done=.true. ! broadcast done from master process to all other processes call mpi_bcast(done,1,mpi_logical,0,mpicom,ierror) if (done) return end do write(*,*) write(*,'("Warning(gwefermi): could not find GW Fermi energy")') end subroutine elk-9.6.8/src/PaxHeaders/dysonr.f900000644000000000000000000000013214626155521014023 xustar0030 mtime=1717099345.261993265 30 atime=1717099343.641984537 30 ctime=1717099345.261993265 elk-9.6.8/src/dysonr.f900000644002504400250440000000354714626155521016556 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,sm,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 DO DEFAULT(SHARED) & !$OMP PRIVATE(ist) & !$OMP NUM_THREADS(nthd) do jst=1,nstsv do ist=1,nstsv if (tsediag.and.(ist /= 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 PARALLEL DO 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,sm) & !$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 Σ 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 Σ)⁻¹ G_s do jst=1,nstsv z1=gs(jst) g(:,jst)=g(:,jst)*z1 end do ! determine the spectral function sm=0.d0 do ist=1,nstsv sm=sm+abs(aimag(g(ist,ist))) end do sf(iw)=sm*occmax/pi end do !$OMP END DO deallocate(gs,g) !$OMP END PARALLEL call freethd(nthd) deallocate(ser) end subroutine elk-9.6.8/src/PaxHeaders/gwsefm.f900000644000000000000000000000013214626155521013775 xustar0030 mtime=1717099345.263993276 30 atime=1717099343.644984553 30 ctime=1717099345.263993276 elk-9.6.8/src/gwsefm.f900000644002504400250440000000435114626155521016522 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 ! 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 occupation numbers 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) /= 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) end subroutine elk-9.6.8/src/PaxHeaders/putgwsefm.f900000644000000000000000000000013214626155521014526 xustar0030 mtime=1717099345.265993287 30 atime=1717099343.647984569 30 ctime=1717099345.265993287 elk-9.6.8/src/putgwsefm.f900000644002504400250440000000156514626155521017257 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 use modramdisk implicit none ! arguments integer, intent(in) :: ik complex(8), intent(in) :: se(nstsv,nstsv,0:nwfm) ! local variables integer recl !$OMP CRITICAL(u280) ! write to RAM disk if required if (ramdisk) then call putrd('GWSEFM.OUT',ik,v1=vkl(:,ik),n1=nstsv,n2=nwfm, & nzv=nstsv*nstsv*(nwfm+1),zva=se) end if ! write to disk if required if (wrtdsk) then ! find the record length inquire(iolength=recl) vkl(:,ik),nstsv,nwfm,se open(280,file='GWSEFM.OUT',form='UNFORMATTED',access='DIRECT',recl=recl) write(280,rec=ik) vkl(:,ik),nstsv,nwfm,se close(280) end if !$OMP END CRITICAL(u280) end subroutine elk-9.6.8/src/PaxHeaders/getgwsefm.f900000644000000000000000000000013214626155521014475 xustar0030 mtime=1717099345.267993297 30 atime=1717099343.650984585 30 ctime=1717099345.267993297 elk-9.6.8/src/getgwsefm.f900000644002504400250440000000313614626155521017222 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 use modramdisk implicit none ! arguments integer, intent(in) :: ik complex(8), intent(out) :: se(nstsv,nstsv,0:nwfm) ! local variables logical tgs integer recl,nstsv_,nwfm_ real(8) vkl_(3),t1 !$OMP CRITICAL(u280) ! read from RAM disk if required if (ramdisk) then call getrd('GWSEFM.OUT',ik,tgs,v1=vkl_,n1=nstsv_,n2=nwfm_, & nzv=nstsv*nstsv*(nwfm+1),zva=se) if (tgs) goto 10 end if ! find the record length inquire(iolength=recl) vkl_,nstsv_,nwfm_,se open(280,file='GWSEFM.OUT',form='UNFORMATTED',access='DIRECT',recl=recl) read(280,rec=ik) vkl_,nstsv_,nwfm_,se close(280) 10 continue !$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 > 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 /= 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 /= 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 end subroutine elk-9.6.8/src/PaxHeaders/writeigw.f900000644000000000000000000000013214626155521014346 xustar0030 mtime=1717099345.269993308 30 atime=1717099343.653984601 30 ctime=1717099345.269993308 elk-9.6.8/src/writeigw.f900000644002504400250440000000151114626155521017066 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 flush(fnum) end subroutine elk-9.6.8/src/PaxHeaders/polefit.f900000644000000000000000000000013214626155521014147 xustar0030 mtime=1717099345.271993319 30 atime=1717099343.655984612 30 ctime=1717099345.271993319 elk-9.6.8/src/polefit.f900000644002504400250440000000101614626155521016667 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),c(2*npole+1) ! local variables integer iw complex(8) z1 ! external functions complex(8), external :: zfpole polefit=0.d0 do iw=0,nwfm z1=zfm(iw)-zfpole(c,wfm(iw)) polefit=polefit+dble(z1)**2+aimag(z1)**2 end do end function elk-9.6.8/src/PaxHeaders/gwchgk.f900000644000000000000000000000013014626155521013755 xustar0029 mtime=1717099345.27399333 30 atime=1717099343.658984628 29 ctime=1717099345.27399333 elk-9.6.8/src/gwchgk.f900000644002504400250440000000335514626155521016507 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 use modomp implicit none ! arguments integer, intent(in) :: ik real(8), intent(out) :: chgk ! local variables integer ist,iw,i,nthd real(8) e complex(8) z1 ! automatic arrays complex(8) gs(nstsv),g(nstsv,nstsv),ge(4,nstsv) ! allocatable arrays complex(8), allocatable :: se(:,:,:) ! external functions complex(8), external :: gwtails ! read the self-energy from file allocate(se(nstsv,nstsv,0:nwfm)) call getgwsefm(ik,se) ! zero the charge chgk=0.d0 ! loop over fermionic Matsubara frequencies call holdthd(nwfm+1,nthd) !$OMP PARALLEL DO DEFAULT(SHARED) & !$OMP PRIVATE(gs,g,ist,e,z1,i) & !$OMP REDUCTION(+:chgk) & !$OMP NUM_THREADS(nthd) 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 Σ 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 Σ)⁻¹ 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 end point frequencies i=0 if (iw == 0) i=1 if (iw == 1) i=2 if (iw == nwfm-1) i=3 if (iw == nwfm) i=4 if (i /= 0) then do ist=1,nstsv ge(i,ist)=g(ist,ist) end do end if end do !$OMP END PARALLEL DO call freethd(nthd) ! add the Matsubara tails analytically do ist=1,nstsv chgk=chgk+dble(gwtails(ge(:,ist))) end do chgk=chgk*wkpt(ik)*occmax*kboltz*tempk deallocate(se) end subroutine elk-9.6.8/src/PaxHeaders/gwsefmk.f900000644000000000000000000000013214626155521014150 xustar0030 mtime=1717099345.275993341 30 atime=1717099343.661984644 30 ctime=1717099345.275993341 elk-9.6.8/src/gwsefmk.f900000644002504400250440000002232414626155521016675 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 integer iw,jw,it,nthd real(8) vl(3),vc(3),wo,t1,t2 complex(8) z1 complex(4) c1 ! automatic arrays integer(omp_lock_kind) lock(nwgw) real(8) vgqc(3,ngvc),gqc(ngvc),gclgq(ngvc) complex(8) zfgq(ngrf) complex(4) cvclmt(npcmtmax,natmtot),cvclir(ngtc) ! allocatable arrays real(8), allocatable :: jlgqr(:,:,:),jlgqrmt(:,:,:) complex(8), allocatable :: apwalm(:,:,:,:),evecfv(:,:),evecsv(:,:) complex(8), allocatable :: ylmgq(:,:),sfacgq(:,:) complex(4), allocatable :: wfmt1(:,:,:,:),wfir1(:,:,:) complex(4), allocatable :: wfmt2(:,:,:,:),wfir2(:,:,:) complex(4), allocatable :: crhomt(:,:,:),crhoir(:,:) complex(8), allocatable :: epsi(:,:,:),v(:,:),gs(:,:) complex(4), allocatable :: crgq(:,:,:),stau(:,:,:),wc(:,:),cv(:) ! external functions complex(8), external :: zcfinp ! allocate local arrays 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(crhomt(npcmtmax,natmtot,nstsv),crhoir(ngtc,nstsv)) allocate(epsi(ngrf,ngrf,nwrf),v(nstsv,nstsv),gs(nwgw,nstsv)) allocate(crgq(nstsv,ngrf,nstsv),stau(nstsv,nstsv,nwgw)) ! initialise the OpenMP locks 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) ! calculate the wavefunctions for all states of the input k-point call genwfsv_sp(.false.,.true.,nstsv,[0],ngdgc,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 cftwfir(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.e0 ! 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(:) if (any(mod(iv(:),ngridk(:)) /= 0)) cycle iv(:)=iv(:)/ngridk(:) iq=ivqiq(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(.true.,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_sp(.false.,.false.,nstsv,[0],ngdgc,igfc,ngk(1,ik),igkig(:,1,ik),& apwalm,evecfv,evecsv,wfmt2,ngtc,wfir2) call holdthd(nstsv,nthd) !$OMP PARALLEL DEFAULT(SHARED) & !$OMP PRIVATE(cvclmt,cvclir,zfgq) & !$OMP PRIVATE(ist1,ist2,ist3) & !$OMP PRIVATE(wo,z1,t1,iw) & !$OMP NUM_THREADS(nthd) ! determine the complex densities and Fourier transform to G+q-space do ist3=1,nstsv !$OMP DO do ist1=1,nstsv call gencrho(.true.,.true.,ngtc,wfmt2(:,:,:,ist3),wfir2(:,:,ist3), & wfmt1(:,:,:,ist1),wfir1(:,:,ist1),crhomt(:,:,ist1),crhoir(:,ist1)) call zftcf(ngrf,jlgqr,ylmgq,ngvc,sfacgq,crhomt(:,:,ist1),crhoir(:,ist1), & zfgq) crgq(ist1,:,ist3)=conjg(zfgq(:)) end do !$OMP END DO !--------------------------------------! ! valence Fock matrix elements ! !--------------------------------------! wo=wqptnr*occsv(ist3,jk)/occmax if (abs(wo) < epsocc) cycle !$OMP DO do ist2=1,nstsv ! calculate the Coulomb potential call gencvclmt(nrcmt,nrcmti,nrcmtmax,rlcmt,wprcmt,npcmtmax, & crhomt(:,:,ist2),cvclmt) call cpotcoul(nrcmt,nrcmti,npcmt,nrcmtmax,rlcmt,ngdgc,igfc,ngvc,gqc, & gclgq,ngvc,jlgqrmt,ylmgq,sfacgq,crhoir(:,ist2),npcmtmax,cvclmt,cvclir) cvclir(:)=cvclir(:)*cfrc(:) do ist1=1,ist2 z1=zcfinp(crhomt(:,:,ist1),crhoir(:,ist1),cvclmt,cvclir) v(ist1,ist2)=v(ist1,ist2)-wo*z1 end do end do !$OMP END DO end do !-------------------------------------! ! correlation matrix elements ! !-------------------------------------! ! generate G_s in state and tau-space !$OMP DO 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 DO !$OMP END PARALLEL call freethd(nthd) ! get RPA inverse dielectric function from file ! this is the symmetric version: ϵ⁻¹ = 1 - v¹⸍² χ₀ v¹⸍² call getcfgq('EPSINV.OUT',vl,ngrf,nwrf,epsi) ! symmetrise the Coulomb Green's function gclgq(1:ngrf)=sqrt(gclgq(1:ngrf)) call holdthd(ngrf,nthd) !$OMP PARALLEL DEFAULT(SHARED) & !$OMP PRIVATE(wc,cv,t1,t2,ig,iw,jw) & !$OMP PRIVATE(it,ist2,ist3,z1,c1) & !$OMP NUM_THREADS(nthd) allocate(wc(nwgw,ngrf),cv(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)) == 0.d0) cycle ! subtract one from ϵ⁻¹ 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.e0 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 cfftifc(1,nwgw,1,wc(:,ig)) end do do it=1,nwgw do ist3=1,nstsv z1=gs(it,ist3) if (twdiag) then ! use only the diagonal elements of W_c c1=z1*wc(it,jg) cv(:)=c1*crgq(:,jg,ist3) else ! use the full W_c cv(:)=0.e0 do ig=1,ngrf c1=z1*wc(it,ig) cv(:)=cv(:)+c1*crgq(:,ig,ist3) 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 c1=conjg(crgq(ist2,jg,ist3)) stau(ist2,ist2,it)=stau(ist2,ist2,it)+c1*cv(ist2) end do else ! compute the full self-energy matrix do ist2=1,nstsv c1=conjg(crgq(ist2,jg,ist3)) stau(:,ist2,it)=stau(:,ist2,it)+c1*cv(:) end do end if call omp_unset_lock(lock(it)) end do end do end do !$OMP END DO deallocate(wc,cv) !$OMP END PARALLEL call freethd(nthd) ! end loop over k-points end do ! destroy the OpenMP locks do it=1,nwgw call omp_destroy_lock(lock(it)) end do ! 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(cv,ist1,iw,jw) & !$OMP NUM_THREADS(nthd) allocate(cv(nwgw)) !$OMP DO do ist2=1,nstsv do ist1=1,nstsv cv(1:nwgw)=stau(ist1,ist2,1:nwgw) call cfftifc(1,nwgw,-1,cv) do iw=-nwfm,nwfm,2 jw=(iw+nwfm)/2 se(ist1,ist2,jw)=t1*cv(iwfft(iw)) end do end do end do !$OMP END DO deallocate(cv) !$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(jlgqr,jlgqrmt) deallocate(ylmgq,sfacgq,apwalm,evecfv,evecsv) deallocate(wfmt1,wfir1,wfmt2,wfir2) deallocate(crhomt,crhoir,epsi,v,gs,stau,crgq) end subroutine elk-9.6.8/src/PaxHeaders/gwspecf.f900000644000000000000000000000013214626155521014143 xustar0030 mtime=1717099345.278993357 30 atime=1717099343.664984661 30 ctime=1717099345.278993357 elk-9.6.8/src/gwspecf.f900000644002504400250440000000575314626155521016677 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 occupation numbers 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) /= 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 > 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) end subroutine elk-9.6.8/src/PaxHeaders/writegwsf.f900000644000000000000000000000013214626155521014526 xustar0030 mtime=1717099345.280993368 30 atime=1717099343.667984677 30 ctime=1717099345.280993368 elk-9.6.8/src/writegwsf.f900000644002504400250440000000154614626155521017256 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) end subroutine elk-9.6.8/src/PaxHeaders/acgwse.f900000644000000000000000000000013214626155521013756 xustar0030 mtime=1717099345.282993378 30 atime=1717099343.670984693 30 ctime=1717099345.282993378 elk-9.6.8/src/acgwse.f900000644002504400250440000000163514626155521016505 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) end subroutine elk-9.6.8/src/PaxHeaders/fmin_nm.f900000644000000000000000000000013214626155521014130 xustar0030 mtime=1717099345.284993389 30 atime=1717099343.672984704 30 ctime=1717099345.284993389 elk-9.6.8/src/fmin_nm.f900000644002504400250440000000106514626155521016654 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), 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 end function elk-9.6.8/src/PaxHeaders/zfpole.f900000644000000000000000000000012514626155521014006 xustar0028 mtime=1717099345.2869934 29 atime=1717099343.67598472 28 ctime=1717099345.2869934 elk-9.6.8/src/zfpole.f900000644002504400250440000000076214626155521016533 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. pure 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 > 1.d-8) zfpole=zfpole+c(i+1)/z1 i=i+2 end do end function elk-9.6.8/src/PaxHeaders/gwbandstr.f900000644000000000000000000000013214626155521014500 xustar0030 mtime=1717099345.287993405 30 atime=1717099343.678984736 30 ctime=1717099345.287993405 elk-9.6.8/src/gwbandstr.f900000644002504400250440000000541714626155521017231 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 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 vkloff0(:)=vkloff(:) ! 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 ! Fourier transform Kohn-Sham potential to G-space call genvsig ! 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(85,file='GWBAND.OUT',form='FORMATTED',action='WRITE') write(85,'(2I6," : grid size")') nwplot,npp1d end if ! loop over plot points along path do ip=ip01d,npp1d if (mp_mpi) then 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(*,'("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(85,'(3G18.10)') dpp1d(ip),wr(iw),sf(iw) end do flush(85) 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(85) write(*,*) write(*,'("Info(gwbandstr):")') write(*,'(" GW spectral function band structure written to GWBAND.OUT")') end if ! restore original input parameters vkloff(:)=vkloff0(:) ! synchronise MPI processes call mpi_barrier(mpicom,ierror) end subroutine elk-9.6.8/src/PaxHeaders/writeatdisp.f900000644000000000000000000000013214626155521015044 xustar0030 mtime=1717099345.290993421 30 atime=1717099343.681984752 30 ctime=1717099345.290993421 elk-9.6.8/src/writeatdisp.f900000644002504400250440000000133214626155521017565 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2023 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 writeatdisp use modmain use modtddft implicit none ! local variables integer is,ia real(8) vl(3) open(50,file='ATDISPL_TD.OUT',form='FORMATTED',position='APPEND') open(51,file='ATDISPC_TD.OUT',form='FORMATTED',position='APPEND') write(50,'(I8,G18.10)') itimes,times(itimes) write(51,'(I8,G18.10)') itimes,times(itimes) do is=1,nspecies do ia=1,natoms(is) call r3mv(ainv,atdvc(:,0,ia,is),vl) write(50,'(2I4,3G18.10)') is,ia,vl(:) write(51,'(2I4,3G18.10)') is,ia,atdvc(:,0,ia,is) end do end do close(50) close(51) end subroutine elk-9.6.8/src/PaxHeaders/writetdforces.f900000644000000000000000000000013214626155521015371 xustar0030 mtime=1717099345.291993427 30 atime=1717099343.684984768 30 ctime=1717099345.291993427 elk-9.6.8/src/writetdforces.f900000644002504400250440000000136014626155521020113 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2023 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 writetdforces use modmain use modtddft implicit none ! local variables integer is,ia,ias ! write the total force on each atom open(50,file='FORCETOT_TD.OUT',form='FORMATTED',position='APPEND') write(50,'(I8,G18.10)') itimes,times(itimes) do is=1,nspecies do ia=1,natoms(is) ias=idxas(ia,is) write(50,'(2I4,3G18.10)') is,ia,forcetot(1:3,ias) end do end do close(50) ! write the maximum force magnitude over all atoms open(50,file='FORCEMAX_TD.OUT',form='FORMATTED',position='APPEND') write(50,'(2G18.10)') times(itimes),forcemax close(50) end subroutine elk-9.6.8/src/PaxHeaders/readatdvc.f900000644000000000000000000000013214626155521014442 xustar0030 mtime=1717099345.293993438 30 atime=1717099343.686984779 30 ctime=1717099345.293993438 elk-9.6.8/src/readatdvc.f900000644002504400250440000000151514626155521017166 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2020 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 readatdvc use modmain implicit none ! local variables integer is,ia,is_,ia_,ios open(50,file='ATDVC.OUT',form='FORMATTED',action='READ',status='OLD',iostat=ios) if (ios /= 0) then write(*,*) write(*,'("Error(readatdvc): error opening ATDVC.OUT")') write(*,*) stop end if do is=1,nspecies do ia=1,natoms(is) read(50,*) is_,ia_,atdvc(:,:,ia,is) if ((is /= is_).or.(ia /= ia_)) then write(*,*) write(*,'("Error(readatdvc): species or atom number mismatch")') write(*,'(" internal : ",2I4)') is,ia write(*,'(" ATDVC.OUT : ",2I4)') is_,ia_ write(*,*) stop end if end do end do close(50) end subroutine elk-9.6.8/src/PaxHeaders/writetdengy.f900000644000000000000000000000013214626155521015052 xustar0030 mtime=1717099345.295993448 30 atime=1717099343.689984795 30 ctime=1717099345.295993448 elk-9.6.8/src/writetdengy.f900000644002504400250440000000056714626155521017604 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2023 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 writetdengy use modmain use modtddft implicit none open(50,file='TOTENERGY_TD.OUT',form='FORMATTED',position='APPEND') write(50,'(2G18.10)') times(itimes),engytot close(50) end subroutine elk-9.6.8/src/PaxHeaders/writemomtd.f900000644000000000000000000000013214626155521014700 xustar0030 mtime=1717099345.297993459 30 atime=1717099343.692984811 30 ctime=1717099345.297993459 elk-9.6.8/src/writemomtd.f900000644002504400250440000000202214626155521017416 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2023 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 writemomtd use modmain use modtddft implicit none ! local variables integer is,ia,ias ! write the total spin moment open(50,file='MOMENT_TD.OUT',form='FORMATTED',position='APPEND') write(50,'(4G18.10)') times(itimes),momtot(1:ndmag) close(50) ! write the total spin moment magnitude open(50,file='MOMENTM_TD.OUT',form='FORMATTED',position='APPEND') write(50,'(2G18.10)') times(itimes),momtotm close(50) ! write 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) ! write interstitial moment open(50,file='MOMENTIR_TD.OUT',form='FORMATTED',position='APPEND') write(50,'(4G18.10)') times(itimes),momir(1:ndmag) close(50) end subroutine elk-9.6.8/src/PaxHeaders/tddftlr.f900000644000000000000000000000013014626155521014146 xustar0029 mtime=1717099345.29999347 30 atime=1717099343.695984828 29 ctime=1717099345.29999347 elk-9.6.8/src/tddftlr.f900000644002504400250440000002260414626155521016676 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,it,i,j,n integer iw,ioc,nthd real(8) v(3),t1,t2 complex(8) vfxcp,z1 character(256) fname ! allocatable arrays integer(omp_lock_kind), 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) > epslat).or.(v(2) > epslat).or.(v(3) > 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(:))) < epslat) tq0=.true. ! read density and potentials from file call readstate ! 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 occupation numbers 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 functions allocate(vgqc(3,ngrf),gqc(ngrf),jlgqr(njcmax,nspecies,ngrf)) allocate(ylmgq(lmmaxo,ngrf),sfacgq(ngrf,natmtot)) call gengqf(ngrf,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 ! for q = 0 the head is a 3 x 3 matrix and the wings are 3 x ngrf nm=ngrf+2 else ! otherwise the head is just G = G' = 0 and finite q 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¹⸍² χ₀ v¹⸍² (the symmetric version of v χ₀) vchi0(:,:,:)=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) /= lp_mpi) cycle !$OMP CRITICAL(tddftlr_) write(*,'("Info(tddftlr): ",I6," of ",I6," k-points")') ik,nkptnr !$OMP END CRITICAL(tddftlr_) ! add to v¹⸍² χ₀ v¹⸍² call genvchi0(.true.,ik,lock,vecql,gclgq,jlgqr,ylmgq,sfacgq,nm,vchi0) end do !$OMP END PARALLEL DO 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 > 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 ϵ_0 = 1 - v¹⸍² χ₀ v¹⸍² eps0(:,:,:)=-vchi0(:,:,:) do i=1,nm eps0(i,i,:)=eps0(i,i,:)+1.d0 end do ! initialise ϵ for use with the bootstrap functional if (any(fxctype(1) == [210,211])) then epsi(:,:,:)=vchi0(:,:,:) do i=1,nm epsi(i,i,:)=epsi(i,i,:)+1.d0 end do end if allocate(a(nm,nm)) vfxcp=0.d0 it=0 10 continue ! compute v χ₀ v⁻¹⸍² f_xc v⁻¹⸍² v χ₀ call genvfxc(tq0,.true.,gclgq,nm,vchi0,eps0,epsi,vfxc) ! begin loop over frequencies do iw=1,nwrf ! compute 1 - v¹⸍² χ₀ v¹⸍² - v⁻¹⸍² f_xc v⁻¹⸍² v χ₀ a(:,:)=eps0(:,:,iw)-vfxc(:,:,iw) ! invert this matrix call zminv(nm,a) ! left multiply by v¹⸍² χ₀ v¹⸍² call zgemm('N','N',nm,nm,nm,zone,vchi0(:,:,iw),nm,a,nm,zzero,epsi(:,:,iw),nm) ! compute ϵ⁻¹ = 1 + v¹⸍² χ v¹⸍² do i=1,nm epsi(i,i,iw)=1.d0+epsi(i,i,iw) end do end do if (fxctype(1) == 210) then ! self-consistent bootstrap f_xc it=it+1 if (it > maxit) then write(*,*) write(*,'("Error(tddftlr): bootstrap kernel failed to converge")') write(*,*) stop end if if (mod(it,10) == 0) then write(*,'("Info(tddftlr): done ",I4," bootstrap iterations")') it t1=dble(vfxc(1,1,1)) write(*,'(" head of matrix v⁻¹⸍² f_xc v⁻¹⸍² : ",G18.10)') t1 write(*,'(" multiplied by -4π gives α : ",G18.10)') -fourpi*t1 end if ! check for convergence t1=abs(vfxcp)-abs(vfxc(1,1,1)) vfxcp=vfxc(1,1,1) if (abs(t1) > 1.d-8) goto 10 else if (fxctype(1) == 211) then ! single iteration bootstrap it=it+1 if (it <= 1) goto 10 end if deallocate(gclgq,jlgqr) deallocate(ylmgq,sfacgq) deallocate(vchi0,vfxc) ! invert ϵ⁻¹ to find ϵ and store in array eps0 do iw=1,nwrf eps0(:,:,iw)=epsi(:,:,iw) call zminv(nm,eps0(:,:,iw)) end do if (mp_mpi) then ! write G = G' = 0 components to file if (tq0) then do ioc=1,noptcomp i=optcomp(1,ioc) j=optcomp(2,ioc) 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 else open(50,file='EPSILON_TDDFT.OUT',form='FORMATTED') open(51,file='EPSINV_TDDFT.OUT',form='FORMATTED') do iw=2,nwrf write(50,'(2G18.10)') dble(wrf(iw)),dble(eps0(1,1,iw)) write(51,'(2G18.10)') dble(wrf(iw)),dble(epsi(1,1,iw)) end do write(50,*) write(51,*) do iw=2,nwrf write(50,'(2G18.10)') dble(wrf(iw)),aimag(eps0(1,1,iw)) write(51,'(2G18.10)') dble(wrf(iw)),aimag(epsi(1,1,iw)) end do close(50) close(51) end if ! find the macroscopic part of ϵ by inverting the 3x3 head only if (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 ioc=1,noptcomp i=optcomp(1,ioc) j=optcomp(2,ioc) 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 end if ! write inverse ϵ to test file call writetest(320,'inverse ϵ',nv=nm*nm*nwrf,tol=1.d-2,zva=epsi) deallocate(eps0,epsi,a) if (mp_mpi) then write(*,*) write(*,'("Info(tddftlr):")') if (tq0) then write(*,'(" Dielectric tensor written to EPSILON_TDDFT_ij.OUT")') write(*,'(" Inverse written to EPSINV_TDDFT_ij.OUT")') write(*,'(" Macroscopic part written to EPSM_TDDFT_ij.OUT")') write(*,'(" for components")') do ioc=1,noptcomp write(*,'(" i = ",I1,", j = ",I1)') optcomp(1:2,ioc) end do 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")') write(*,*) write(*,'(" Note that the q-vector is zero and therefore the head of the")') write(*,'(" tensor is a 3 x 3 matrix and the wings are 3 x ngrf matrices")') else write(*,'(" Dielectric tensor written to EPSILON_TDDFT.OUT")') write(*,'(" Inverse written to EPSINV_TDDFT.OUT")') write(*,'(" q-vector (lattice coordinates) : ")') write(*,'(3G18.10)') vecql write(*,'(" q-vector length : ",G18.10)') gqc(1) end if end if deallocate(gqc) end subroutine elk-9.6.8/src/PaxHeaders/genhmlt.f900000644000000000000000000000013214626155521014143 xustar0030 mtime=1717099345.302993486 30 atime=1717099343.698984844 30 ctime=1717099345.302993486 elk-9.6.8/src/genhmlt.f900000644002504400250440000000426014626155521016667 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,bmt,bir,kmat,pmat,h) use modmain use modtddft use modmpi implicit none ! arguments integer, intent(in) :: ik real(8), intent(in) :: vmt(npcmtmax,natmtot),vir(ngtot) real(8), intent(in) :: bmt(npcmtmax,natmtot,ndmag),bir(ngtot,ndmag) complex(8), intent(in) :: kmat(nstsv,nstsv),pmat(nstsv,nstsv,3) complex(8), intent(out) :: h(nstsv,nstsv) ! local variables integer jst,i real(8) ca,t1 ! allocatable arrays complex(8), allocatable :: apwalm(:,:,:,:),evecfv(:,:),evecsv(:,:) complex(4), allocatable :: wfmt(:,:,:,:),wfgk(:,:,:) 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) ! calculate the wavefunctions for all states of the input k-point allocate(wfmt(npcmtmax,natmtot,nspinor,nstsv),wfgk(ngkmax,nspinor,nstsv)) call genwfsv_sp(.false.,.true.,nstsv,[0],ngridg,igfft,ngk(:,ik),igkig(:,:,ik), & apwalm,evecfv,evecsv,wfmt,ngkmax,wfgk) deallocate(apwalm,evecfv) ! Kohn-Sham potential and magnetic field matrix elements if (spinpol) then call genvbmatk(vmt,vir,bmt,bir,ngk(:,ik),igkig(:,:,ik),wfmt,ngkmax,wfgk,h) else call genvmatk(vmt,vir,ngk(:,ik),igkig(:,:,ik),wfmt,ngkmax,wfgk,h) end if deallocate(wfmt,wfgk) ! add the kinetic matrix elements in the second-variational basis do jst=1,nstsv h(1:jst,jst)=h(1:jst,jst)+kmat(1:jst,jst) end do ! coupling constant of the external A-field (-1/c) ca=-1.d0/solsc ! add the A-field matrix elements in the second-variational basis do i=1,3 t1=ca*afieldt(i,itimes) if (abs(t1) > 1.d-10) then do jst=1,nstsv h(1:jst,jst)=h(1:jst,jst)+t1*pmat(1:jst,jst,i) end do end if end do ! add the spin-polarised A-field if required if (tafspt) call genhafspt(evecsv,pmat,h) deallocate(evecsv) end subroutine elk-9.6.8/src/PaxHeaders/writetddos.f900000644000000000000000000000013114626155521014674 xustar0030 mtime=1717099345.304993497 29 atime=1717099343.70198486 30 ctime=1717099345.304993497 elk-9.6.8/src/writetddos.f900000644002504400250440000000457314626155521017430 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. !BOP ! !ROUTINE: writetddos ! !INTERFACE: subroutine writetddos ! !USES: use modmain use modtddft use modmpi ! !DESCRIPTION: ! Calculates the time-dependent density of states (DOS). This is defined as ! $$ {\rm DOS}(\omega,t)=\frac{\Omega}{(2\pi)^3}\int d^3k \sum_i ! \delta(\varepsilon_{i{\bf k}}-\omega) F_{i{\bf k}}(t), $$ ! where ! $$ F_{i{\bf k}}(t)=\sum_j f_{j{\bf k}}|\langle\varphi_{i{\bf k}}| ! \phi_{j{\bf k}}(t)\rangle|^2, $$ ! with occupation numbers $f_{j{\bf k}}$, ground-state orbitals ! $\varphi_{i{\bf k}}$ and time-dependent orbitals $\phi_{j{\bf k}}(t)$. ! ! !REVISION HISTORY: ! Created April 2015 (JKD) !EOP !BOC implicit none ! local variables integer ik,ist,jst,lp real(8) sm,t1 complex(8) z1 character(256) fext ! allocatable arrays real(8), allocatable :: occsvp(:,:) complex(8), allocatable :: evecsv(:,:),evecsvt(:,:) ! external functions complex(8), external :: zdotc ! file extension write(fext,'("_TS",I8.8,".OUT")') itimes allocate(occsvp(nstsv,nkpt)) allocate(evecsv(nstsv,nstsv),evecsvt(nstsv,nstsv)) do ik=1,nkpt ! distribute among MPI processes if (mod(ik-1,np_mpi) /= lp_mpi) cycle ! 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 occupation numbers do ist=1,nstsv sm=0.d0 do jst=1,nstsv t1=occsv(jst,ik) if (abs(t1) < epsocc) cycle z1=zdotc(nstsv,evecsv(:,ist),1,evecsvt(:,jst),1) sm=sm+t1*(dble(z1)**2+aimag(z1)**2) end do occsvp(ist,ik)=sm end do ! write projected occupation numbers to file call putoccsv('P'//trim(fext),ik,occsvp(:,ik)) end do deallocate(evecsv,evecsvt) ! broadcast projected occupation numbers to every MPI process if (np_mpi > 1) then do ik=1,nkpt lp=mod(ik-1,np_mpi) call mpi_bcast(occsvp(:,ik),nstsv,mpi_double_precision,lp,mpicom,ierror) end do end if if (mp_mpi) then ! compute the effective electronic temperature and write to file call tdtemp(occsvp) ! write the DOS to file call dos(fext,.true.,occsvp) end if deallocate(occsvp) ! synchronise MPI processes call mpi_barrier(mpicom,ierror) end subroutine !EOC elk-9.6.8/src/PaxHeaders/writeafpdt.f900000644000000000000000000000013214626155521014656 xustar0030 mtime=1717099345.306993508 30 atime=1717099343.704984876 30 ctime=1717099345.306993508 elk-9.6.8/src/writeafpdt.f900000644002504400250440000000255614626155521017410 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), 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² : ",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) end subroutine elk-9.6.8/src/PaxHeaders/readafindt.f900000644000000000000000000000013214626155521014606 xustar0030 mtime=1717099345.308993518 30 atime=1717099343.707984892 30 ctime=1717099345.308993518 elk-9.6.8/src/readafindt.f900000644002504400250440000000101414626155521017324 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2020 Peter Elliott, 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 readafindt use modtddft implicit none ! local variables integer ios open(50,file='AFINDT.OUT',form='FORMATTED',action='READ',status='OLD', & iostat=ios) if (ios /= 0) then write(*,*) write(*,'("Error(readafindt): error opening AFINDT.OUT")') write(*,*) stop end if read(50,*) afindt(:,:) close(50) end subroutine elk-9.6.8/src/PaxHeaders/genvfxc.f900000644000000000000000000000013214626155521014145 xustar0030 mtime=1717099345.310993529 30 atime=1717099343.709984903 30 ctime=1717099345.310993529 elk-9.6.8/src/genvfxc.f900000644002504400250440000000331614626155521016672 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⁻¹⸍² f_xc v⁻¹⸍² 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 j=1,nm do i=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¹⸍² χ₀ v¹⸍² 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) end subroutine elk-9.6.8/src/PaxHeaders/genfxcr.f900000644000000000000000000000013014626155521014137 xustar0029 mtime=1717099345.31299354 30 atime=1717099343.712984919 29 ctime=1717099345.31299354 elk-9.6.8/src/genfxcr.f900000644002504400250440000000625414626155521016672 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 end subroutine elk-9.6.8/src/PaxHeaders/tdtemp.f900000644000000000000000000000013214626155521014002 xustar0030 mtime=1717099345.314993551 30 atime=1717099343.715984935 30 ctime=1717099345.314993551 elk-9.6.8/src/tdtemp.f900000644002504400250440000000241014626155521016521 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,sm,sp real(8) x,t1,t2,t3 ! external functions real(8), 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 sm=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 sm=sm+(occsvp(ist,ik)-t2)*t3 end do end do if ((sm*sp) < 0.d0) then dsw=-0.5d0*dsw if (abs(dsw) < eps) goto 10 else dsw=1.5d0*dsw end if sp=sm sw=sw+dsw if ((sw < 0.d0).or.(sw > 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) end subroutine elk-9.6.8/src/PaxHeaders/writetdlsj.f900000644000000000000000000000013214626155521014700 xustar0030 mtime=1717099345.316993561 30 atime=1717099343.718984952 30 ctime=1717099345.316993561 elk-9.6.8/src/writetdlsj.f900000644002504400250440000000215014626155521017420 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(:,:,:,:,:) 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 end subroutine elk-9.6.8/src/PaxHeaders/genspfxcr.f900000644000000000000000000000013214626155521014504 xustar0030 mtime=1717099345.318993572 30 atime=1717099343.721984968 30 ctime=1717099345.318993572 elk-9.6.8/src/genspfxcr.f900000644002504400250440000001204014626155521017223 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) > 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 fxcmt(1:np,ias,i,j)=fxc(1:np,i,j) 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) > 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 pure 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) > 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 end subroutine end subroutine elk-9.6.8/src/PaxHeaders/genvfxcg.f900000644000000000000000000000013214626155521014314 xustar0030 mtime=1717099345.320993583 30 atime=1717099343.724984984 30 ctime=1717099345.320993583 elk-9.6.8/src/genvfxcg.f900000644002504400250440000000216414626155521017041 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) >= intgv(1,1)).and.(iv(1) <= intgv(2,1)).and. & (iv(2) >= intgv(1,2)).and.(iv(2) <= intgv(2,2)).and. & (iv(3) >= intgv(1,3)).and.(iv(3) <= 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) end subroutine elk-9.6.8/src/PaxHeaders/tddftsplr.f900000644000000000000000000000012714626155521014517 xustar0030 mtime=1717099345.322993594 27 atime=1717099343.727985 30 ctime=1717099345.322993594 elk-9.6.8/src/tddftsplr.f900000644002504400250440000002064514626155521017244 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(omp_lock_kind), 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) > epslat).or.(v(2) > epslat).or.(v(3) > 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 ! 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 occupation numbers 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 functions allocate(vgqc(3,ngrf),gqc(ngrf),jlgqr(njcmax,nspecies,ngrf)) allocate(ylmgq(lmmaxo,ngrf),sfacgq(ngrf,natmtot)) call gengqf(ngrf,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 χ₀ allocate(chi(ngrf,4,ngrf,4,nwrf)) chi(:,:,:,:,:)=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) /= lp_mpi) cycle !$OMP CRITICAL(tddftsplr_) write(*,'("Info(tddftsplr): ",I6," of ",I6," k-points")') ik,nkptnr !$OMP END CRITICAL(tddftsplr_) call genspchi0(ik,lock,vecql,jlgqr,ylmgq,sfacgq,chi) end do !$OMP END PARALLEL DO call freethd(nthd) ! destroy the OpenMP locks do iw=1,nwrf call omp_destroy_lock(lock(iw)) end do deallocate(lock) ! add χ₀ from each process and redistribute if (np_mpi > 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 χ₀ 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 χ₀ 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 χ₀ to file if (mp_mpi) then ! write χ₀ 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',action='WRITE') 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 χ₀ for collinear case if (.not.ncmag) then open(50,file='CHI0_T.OUT',form='FORMATTED',action='WRITE') 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 -χ₀ 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 χ₀ on the right and store in χ 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 χ 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 χ matrix if required if (task == 331) then open(120,file='CHI.OUT',form='UNFORMATTED',action='WRITE') write(120) chi close(120) end if ! write χ 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',action='WRITE') 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 χ for collinear case if (.not.ncmag) then open(50,file='CHI_T.OUT',form='FORMATTED',action='WRITE') 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 χ_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 χ labeled by (i,j) form the 4x4 matrix :")') write(*,*) write(*,'(" ⎛_|_ _ _⎞")') write(*,'(" χ(G,G'',q,w) = ⎜ | ⎟")') write(*,'(" ⎜ | ⎟")') write(*,'(" ⎝ | ⎠")') write(*,*) write(*,'(" (0,0) is the charge-charge response dρ/dv")') write(*,'(" (0,1-3) is the charge-magnetisation response dρ/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 response 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 == 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 pure 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 end subroutine pure 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 end subroutine end subroutine elk-9.6.8/src/PaxHeaders/genspfxcg.f900000644000000000000000000000013214626155521014471 xustar0030 mtime=1717099345.324993605 30 atime=1717099343.729985011 30 ctime=1717099345.324993605 elk-9.6.8/src/genspfxcg.f900000644002504400250440000000233614626155521017217 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) >= intgv(1,1)).and.(iv(1) <= intgv(2,1)).and. & (iv(2) >= intgv(1,2)).and.(iv(2) <= intgv(2,2)).and. & (iv(3) >= intgv(1,3)).and.(iv(3) <= 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) end subroutine elk-9.6.8/src/PaxHeaders/genafieldt.f900000644000000000000000000000013214626155521014607 xustar0030 mtime=1717099345.326993615 30 atime=1717099343.732985027 30 ctime=1717099345.326993615 elk-9.6.8/src/genafieldt.f900000644002504400250440000001556014626155521017340 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) ! Added spin-dependent A-fields, January 2023 (E. Harris-Lee) !EOP !BOC implicit none ! local variables integer its,i,j real(8) av0(3),t0,d,w,phi,rc real(8) ft,ppd,s,t real(8) av(3),s0,sv(3) real(8) t1,t2,t3,t4 ! 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 write(50,'("Number of steps : ",I6)') nstep ! allocate and zero time-dependent A-field array if (allocated(afieldt)) deallocate(afieldt) allocate(afieldt(3,ntimes)) afieldt(:,:)=0.d0 ! allocate and zero spin- and time-dependent A-field array if (tafspt) then if (allocated(afspt)) deallocate(afspt) allocate(afspt(3,3,ntimes)) afspt(:,:,:)=0.d0 end if !----------------------! ! laser pulses ! !----------------------! do i=1,npulse ! vector amplitude av0(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) ! Gaussian 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)') av0(:) 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 σ = FWHM / 2√(2ln2) : ",G18.10)') s t1=av0(1)**2+av0(2)**2+av0(3)**2 ppd=t1*(w**2)/(8.d0*pi*solsc) write(50,'(" peak laser power density : ",G18.10)') ppd write(50,'(" in W/cm² : ",G18.10)') ppd*cpd if (tafspt) then s0=pulse(9,i) sv(1:3)=pulse(10:12,i) write(50,'(" spin components for σ_0, σ_x, σ_y, σ_z : ")') write(50,'(4G18.10)') s0,sv(:) end if ! 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 ft=exp(t2)*sin(t3) if (abs(ft) < 1.d-20) ft=0.d0 av(:)=ft*av0(:) ! spin-polarised vector potential if (tafspt) then do j=1,3 afspt(:,j,its)=afspt(:,j,its)+av(:)*sv(j) end do av(:)=s0*av(:) end if afieldt(:,its)=afieldt(:,its)+av(:) end do end do !---------------! ! ramps ! !---------------! do i=1,nramp ! vector amplitude av0(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) ! cubic coefficient t3=ramp(7,i) ! quartic coefficient t4=ramp(8,i) ! write information to TD_INFO.OUT write(50,*) write(50,'("Ramp : ",I6)') i write(50,'(" vector amplitude : ",3G18.10)') av0(:) write(50,'(" ramp start time : ",G18.10)') t0 write(50,'(" coefficients : ",4G18.10)') t1,t2,t3,t4 if (tafspt) then s0=ramp(9,i) sv(1:3)=ramp(10:12,i) write(50,'(" spin components for σ_0, σ_x, σ_y, σ_z : ")') write(50,'(4G18.10)') s0,sv(:) end if ! loop over time steps do its=1,ntimes t=times(its)-t0 if (t > 0.d0) then ft=t*(t1+t*(t2+t*(t3+t*t4))) av(:)=ft*av0(:) if (tafspt) then do j=1,3 afspt(:,j,its)=afspt(:,j,its)+av(:)*sv(j) end do av(:)=s0*av(:) end if afieldt(:,its)=afieldt(:,its)+av(:) end if end do end do !---------------! ! steps ! !---------------! do i=1,nstep ! vector amplitude av(1:3)=step(1:3,i) ! step start time t0=step(4,i)-1.d-14 ! step stop time t1=step(5,i) ! write information to TD_INFO.OUT write(50,*) write(50,'("Step : ",I6)') i write(50,'(" vector amplitude : ",3G18.10)') av(:) write(50,'(" step start and stop times : ",2G18.10)') t0,t1 if (tafspt) then s0=step(6,i) sv(1:3)=step(7:9,i) write(50,'(" spin components for σ_0, σ_x, σ_y, σ_z : ")') write(50,'(4G18.10)') s0,sv(:) end if ! loop over time steps do its=1,ntimes t=times(its) if (t > t1) exit if (t >= t0) then afieldt(:,its)=afieldt(:,its)+av(:) if (tafspt) then do j=1,3 afspt(:,j,its)=afspt(:,j,its)+av(:)*sv(j) end do end if 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 the spin-polarised vector potential to AFSPT.OUT if (tafspt) then open(50,file='AFSPT.OUT',form='FORMATTED') write(50,'(I8," : number of time steps")') ntimes do its=1,ntimes write(50,'(I8,10G18.10)') its,times(its),afspt(:,:,its) end do close(50) end if write(*,*) write(*,'("Info(genafieldt):")') write(*,'(" Time-dependent A-field written to AFIELDT.OUT")') if (tafspt) then write(*,'(" Time- and spin-dependent A-field written to AFSPT.OUT")') end if write(*,'(" Laser pulse, ramp and step 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) end subroutine !EOC elk-9.6.8/src/PaxHeaders/writetddft.f900000644000000000000000000000013214626155521014665 xustar0030 mtime=1717099345.328993626 30 atime=1717099343.735985043 30 ctime=1717099345.328993626 elk-9.6.8/src/writetddft.f900000644002504400250440000001107214626155521017410 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 use moddelf implicit none ! local variables integer is,ia,ias character(32) fext ! allocatable arrays real(8), allocatable :: rvfmt(:,:,:),rvfir(:,:) ! file extension write(fext,'("_TS",I8.8,".OUT")') itimes ! delete files at first time step if (itimes <= 1) then call delfile('TOTENERGY_TD.OUT') call delfile('CHARGEMT_TD.OUT') call delfile('CHARGEIR_TD.OUT') if (spinpol) then call delfile('MOMENT_TD.OUT') call delfile('MOMENTM_TD.OUT') call delfile('MOMENTMT_TD.OUT') call delfile('MOMENTIR_TD.OUT') end if call delfile('JTOT_TD.OUT') call delfile('JTOTM_TD.OUT') if (tddos) call delfile('TDTEMP.OUT') if (tdlsj) call delfile('TDLSJ.OUT') if (tforce) call delfile('FORCETOT_TD.OUT') if (tatdisp) then call delfile('ATDISPL_TD.OUT') call delfile('ATDISPC_TD.OUT') end if if (tafindt) call delfile('AFIND_TD.OUT') end if ! total energy call writetdengy ! 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) ! write spin moments to file if required if (spinpol) call writemomtd ! total current open(50,file='JTOT_TD.OUT',form='FORMATTED',position='APPEND') write(50,'(4G18.10)') times(itimes),jtot(:) close(50) ! total current magnitude open(50,file='JTOTM_TD.OUT',form='FORMATTED',position='APPEND') write(50,'(4G18.10)') times(itimes),jtotm close(50) ! write the time-dependent atomic forces if (tforce.and.ttsforce) then call writetdforces open(50,file='FORCES'//trim(fext),form='FORMATTED',action='WRITE') call writeforces(50) close(50) end if ! write the time-dependent atomic displacements if (tatdisp.and.ttsforce) call writeatdisp ! write the time-dependent induced A-field if (tafindt) then open(50,file='AFIND_TD.OUT',form='FORMATTED',position='APPEND') write(50,'(4G18.10)') times(itimes),afindt(:,0) close(50) end if ! write optional quantities if (.not.ttswrite) return ! charge density in 1D if (tdrho1d) then open(50,file='RHO1D'//trim(fext),form='FORMATTED',action='WRITE') open(51,file='RHOLINES.OUT',form='FORMATTED',action='WRITE') 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',action='WRITE') 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',action='WRITE') call plot3d(50,1,rhomt,rhoir) close(50) end if ! magnetisation in 1D, 2D or 3D if ((tdmag1d.or.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 (tdmag1d) then open(50,file='MAG1D'//trim(fext),form='FORMATTED',action='WRITE') open(51,file='MAGLINES.OUT',form='FORMATTED',action='WRITE') call plot1d(50,51,3,rvfmt,rvfir) close(50) close(51) end if if (tdmag2d) then open(50,file='MAG2D'//trim(fext),form='FORMATTED',action='WRITE') call plot2d(.true.,50,3,rvfmt,rvfir) close(50) end if if (tdmag3d) then open(50,file='MAG3D'//trim(fext),form='FORMATTED',action='WRITE') call plot3d(50,3,rvfmt,rvfir) close(50) end if deallocate(rvfmt,rvfir) end if ! gauge-invariant current density in 1D if (tdjr1d) then open(50,file='JR1D'//trim(fext),form='FORMATTED',action='WRITE') open(51,file='JRLINES.OUT',form='FORMATTED',action='WRITE') call plot1d(50,51,3,jrmt,jrir) close(50) close(51) end if ! gauge-invariant current density in 2D if (tdjr2d) then open(50,file='JR2D'//trim(fext),form='FORMATTED',action='WRITE') call plot2d(.true.,50,3,jrmt,jrir) close(50) end if ! gauge-invariant current density in 3D if (tdjr3d) then open(50,file='JR3D'//trim(fext),form='FORMATTED',action='WRITE') call plot3d(50,3,jrmt,jrir) close(50) end if ! calculate and write tensor moments if (dftu /= 0) then if (tmwrite) call writetdtm3 end if end subroutine elk-9.6.8/src/PaxHeaders/dielectric_tdrt.f900000644000000000000000000000013214626155521015651 xustar0030 mtime=1717099345.330993637 30 atime=1717099343.738985059 30 ctime=1717099345.330993637 elk-9.6.8/src/dielectric_tdrt.f900000644002504400250440000001024414626155521020374 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 its,iw,i,j real(8) w1,w2,t0,t1,t2 complex(8) eta,z1,z2 character(256) fname ! allocatable arrays real(8), allocatable :: w(:),wt(:),jt(:,:) real(8), allocatable :: f1(:),f2(:) complex(8), allocatable :: ew(:,:),jw(:,:),eps(:) ! initialise global variables call init0 call init1 ! generate energy grid (always non-negative) allocate(w(nwplot)) 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) ! determine the weights for the spline integration allocate(wt(ntimes)) call wsplint(ntimes,times,wt) ! compute the electric field from E = -1/c dA/dt and Fourier transform allocate(f1(ntimes),f2(ntimes),ew(nwplot,3)) t0=-1.d0/solsc do i=1,3 if (task == 480) then ! Fourier transform E(t) numerically do iw=1,nwplot do its=1,ntimes t1=afieldt(i,its) t2=w(iw)*times(its) f1(its)=t1*cos(t2) f2(its)=t1*sin(t2) end do t1=dot_product(wt(:),f1(:)) t2=dot_product(wt(:),f2(:)) ew(iw,i)=t0*w(iw)*cmplx(t2,-t1,8) end do ! filter the high-frequency components from E(ω) with a Lorentzian convolution call zlrzncnv(nwplot,swidth,w,ew(:,i)) else ! analytic Fourier transform of E(t) assumed to be a delta function at t=0 t1=t0*afieldt(i,1) ew(:,i)=t1 end if end do ! read in the total current from file allocate(jt(3,ntimes)) call readjtot(jt) ! divide by the unit cell volume jt(:,:)=jt(:,:)/omega ! set the constant part of J(t) to zero if required; this effectively removes ! the Drude term if (jtconst0) then do i=1,3 f1(1:ntimes)=jt(i,1:ntimes) t1=dot_product(wt(:),f1(:)) t1=t1/times(ntimes) jt(i,1:ntimes)=jt(i,1:ntimes)-t1 end do end if ! Fourier transform the current allocate(jw(nwplot,3)) do i=1,3 do iw=1,nwplot do its=1,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(:),f1(:)) t2=dot_product(wt(:),f2(:)) jw(iw,i)=cmplx(t1,t2,8) end do ! filter the high-frequency components from J(ω) with a Lorentzian convolution call zlrzncnv(nwplot,swidth,w,jw(:,i)) end do deallocate(wt,f1,f2,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 > 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)+eta) if (i == j) z1=z1+1.d0 eps(iw)=z1 end do ! filter the high-frequency components of ϵ call zlrzncnv(nwplot,2.d0*swidth,w,eps) 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 Fourier transform of electric field to file open(50,file='EFIELDW.OUT',form='FORMATTED') do i=1,3 do iw=1,nwplot write(50,'(3G18.10)') w(iw),ew(iw,i) end do write(50,*) end do close(50) ! write Fourier transform of total current to file open(50,file='JTOTW.OUT',form='FORMATTED') do i=1,3 do iw=1,nwplot write(50,'(3G18.10)') w(iw),jw(iw,i) end do write(50,*) end do close(50) 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)")') write(*,*) write(*,'(" Fourier transform of electric field E(ω) written to EFIELDW.OUT")') write(*,'(" Fourier transform of total current J(ω) written to JTOTW.OUT")') deallocate(w,ew,jw,eps) end subroutine elk-9.6.8/src/PaxHeaders/readjtot.f900000644000000000000000000000013214626155521014321 xustar0030 mtime=1717099345.332993648 30 atime=1717099343.741985075 30 ctime=1717099345.332993648 elk-9.6.8/src/readjtot.f900000644002504400250440000000172714626155521017052 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 readjtot(jt) use modmain use modtddft implicit none ! arguments real(8), intent(out) :: jt(3,ntimes) ! local variables integer its,ios real(8) times_,t1 open(50,file='JTOT_TD.OUT',form='FORMATTED',action='READ',status='OLD', & iostat=ios) if (ios /= 0) then write(*,*) write(*,'("Error(readjtot): error opening JTOT_TD.OUT")') write(*,*) stop end if do its=1,ntimes-1 read(50,*) times_,jt(:,its) t1=abs(times(its)-times_) if (t1 > 1.d-10) then write(*,*) write(*,'("Error(readjtot): time step mismatch for step number ",I8)') its write(*,'(" internal : ",G18.10)') times(its) write(*,'(" JTOT_TD.OUT : ",G18.10)') times_ write(*,*) stop end if end do close(50) ! set current at last time step jt(:,ntimes)=jt(:,ntimes-1) end subroutine elk-9.6.8/src/PaxHeaders/afindtstep.f900000644000000000000000000000013214626155521014646 xustar0030 mtime=1717099345.334993659 30 atime=1717099343.744985092 30 ctime=1717099345.334993659 elk-9.6.8/src/afindtstep.f900000644002504400250440000000326414626155521017375 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2020 Peter Elliott, 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. !BOP ! !ROUTINE: afindtstep ! !INTERFACE: subroutine afindtstep ! !USES: use modmain use modtddft use modmpi ! !DESCRIPTION: ! Performs a time step of the macroscopic Maxwell equation and updates the ! induced vector potential ${\bf A}(t)$. In practice, a more general damped ! Proca equation is solved: ! $$ p_0{\bf A}+p_1\dot{\bf A}+p_2\ddot{\bf A}= ! \frac{4\pi c}{\Omega}{\bf J}, $$ ! where $\Omega$ is the unit cell volume, ${\bf J}$ is the total current ! across the unit cell, and the parameters $p_i$, $i=0,1,2$ are stored in the ! array {\tt afindpm}. This generalisation allows for both a mass and damping ! term, however the default values of $p_0=p_1=0$ and $p_2=1$ recover the ! physical Maxwell equation. ! ! !REVISION HISTORY: ! Created January 2020 (P. Elliott) ! Added mass and damping terms, December 2022 (JKD) !EOP !BOC implicit none ! local variables integer i real(8) dt,t1,t2,t3 ! time step length dt=times(itimes+1)-times(itimes) ! add to the time derivative of the induced A-field t1=fourpi*solsc/omega t2=dt/afindpm(2) do i=1,3 t3=t1*jtot(i)-afindpm(1)*afindt(i,1)-afindpm(0)*afindt(i,0) afindt(i,1)=afindt(i,1)+t2*t3 end do ! add to the induced A-field afindt(:,0)=afindt(:,0)+afindt(:,1)*dt ! add to the total A-field afieldt(:,itimes+1)=afieldt(:,itimes+1)+afindt(:,0) ! write the induced A-field and its time derivative to file if (mp_mpi) then open(50,file='AFINDT.OUT',form='FORMATTED') write(50,'(6G18.10)') afindt(:,:) close(50) end if end subroutine !EOC elk-9.6.8/src/PaxHeaders/genefieldt.f900000644000000000000000000000013214626155521014613 xustar0030 mtime=1717099345.336993669 30 atime=1717099343.746985102 30 ctime=1717099345.336993669 elk-9.6.8/src/genefieldt.f900000644002504400250440000000115414626155521017336 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2020 Peter Elliott, 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 genefieldt use modmain use modtddft implicit none ! local variables integer np,it,i,j real(8) t0 ! automatic arrays real(8) ya(4) ! external functions real(8), external :: polynm ! determine the electric field at the current time step t0=-1.d0/solsc np=min(4,itimes) it=itimes-np+1 do i=1,3 do j=1,np ya(j)=afieldt(i,it+j-1) end do efieldt(i)=t0*polynm(1,np,times(it),ya,times(itimes)) end do end subroutine elk-9.6.8/src/PaxHeaders/energytd.f900000644000000000000000000000013014626155521014324 xustar0029 mtime=1717099345.33899368 30 atime=1717099343.749985119 29 ctime=1717099345.33899368 elk-9.6.8/src/energytd.f900000644002504400250440000000216414626155521017053 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2020 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 energytd use modmain use modtddft implicit none ! local variables integer is,ias real(8) ca,engya,t1,t2 ! external functions real(8), external :: rfinp ! 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 ! exchange and correlation energy engyx=rfinp(rhomt,rhoir,exmt,exir) engyc=rfinp(rhomt,rhoir,ecmt,ecir) ! vector potential contributions to energy ca=-1.d0/solsc ! coupling term -1/c A(t)·J(t) engya=ca*dot_product(afieldt(:,itimes),jtot(:)) ! constant term 1/2c² A(t)²Q ca=0.5d0/solsc**2 t1=sum(afieldt(:,itimes)**2) t2=sum(chgstot(:))/3.d0 engya=engya+ca*t1*(chgtot-t2) ! electric field contribution 1/2 E(t)² t1=sum(efieldt(:)**2) engya=engya+0.5d0*t1 ! mass term t2=ca*(afindpm(0)/afindpm(2)) engya=engya+t1*t2 ! total energy engytot=engykn+0.5d0*engyvcl+engymad+engyx+engyc+engya end subroutine elk-9.6.8/src/PaxHeaders/engyknk.f900000644000000000000000000000013214626155521014153 xustar0030 mtime=1717099345.340993691 30 atime=1717099343.752985135 30 ctime=1717099345.340993691 elk-9.6.8/src/engyknk.f900000644002504400250440000000221214626155521016672 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2020 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 engyknk(ik,kmat,evecsv,evecsvt) use modmain use modtddft implicit none ! arguments integer, intent(in) :: ik complex(8), intent(in) :: kmat(nstsv,nstsv) complex(8), intent(in) :: evecsv(nstsv,nstsv),evecsvt(nstsv,nstsv) ! local variables integer ist real(8) wo complex(8) z1 ! allocatable arrays complex(8), allocatable :: a(:,:),b(:,:) ! external functions complex(8), external :: zdotc allocate(a(nstsv,nstsv),b(nstsv,nstsv)) ! form the kinetic operator matrix elements in the first-variational basis 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,b,nstsv) ! add to the kinetic energy call zgemm('N','N',nstsv,nstsv,nstsv,zone,b,nstsv,evecsvt,nstsv,zzero,a,nstsv) do ist=1,nstsv wo=occsv(ist,ik) if (abs(wo) < epsocc) cycle wo=wo*wkpt(ik) z1=zdotc(nstsv,evecsvt(:,ist),1,a(:,ist),1) !$OMP ATOMIC engykn=engykn+wo*dble(z1) end do deallocate(a,b) end subroutine elk-9.6.8/src/PaxHeaders/readforcet.f900000644000000000000000000000013214626155521014623 xustar0030 mtime=1717099345.342993702 30 atime=1717099343.755985151 30 ctime=1717099345.342993702 elk-9.6.8/src/readforcet.f900000644002504400250440000000336314626155521017352 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2020 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 readforcet use modmain use modtddft implicit none ! local variables integer ios,its,its_ integer is,ia,ias,is_,ia_ real(8) times_,t1 ! allocate and zero the time-dependent force array if (allocated(forcet)) deallocate(forcet) allocate(forcet(3,natmtot,ntimes)) forcet(:,:,:)=0.d0 ! read in the time-dependent total atomic forces open(50,file='FORCETOT_TD.OUT',form='FORMATTED',action='READ',status='OLD', & iostat=ios) if (ios /= 0) then write(*,*) write(*,'("Error(readforcet): error opening FORCETOT_TD.OUT")') write(*,*) stop end if do its=1,ntimes-1,ntsforce read(50,*) its_,times_ if (its /= its_) then write(*,*) write(*,'("Error(readforcet): time step number mismatch")') write(*,'(" internal : ",I8)') its write(*,'(" FORCETOT_TD.OUT : ",I8)') its_ write(*,*) stop end if t1=abs(times(its)-times_) if (t1 > 1.d-10) then write(*,*) write(*,'("Error(readforcet): time step mismatch for step number ",I8)') its write(*,'(" internal : ",G18.10)') times(its) write(*,'(" FORCETOT_TD.OUT : ",G18.10)') times_ stop end if do is=1,nspecies do ia=1,natoms(is) ias=idxas(ia,is) read(50,*) is_,ia_,forcet(:,ias,its) if ((is /= is_).or.(ia /= ia_)) then write(*,*) write(*,'("Error(readforcet): species or atom number mismatch for time & &step number ",I8)') its write(*,'(" internal : ",2I4)') is,ia write(*,'(" FORCETOT_TD.OUT : ",2I4)') is_,ia_ write(*,*) stop end if end do end do end do close(50) end subroutine elk-9.6.8/src/PaxHeaders/tdrestart.f900000644000000000000000000000013214626155521014521 xustar0030 mtime=1717099345.344993712 30 atime=1717099343.758985167 30 ctime=1717099345.344993712 elk-9.6.8/src/tdrestart.f900000644002504400250440000000141214626155521017241 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2020 Peter Elliott, 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 tdrestart use modmain use modtddft use moddftu implicit none ! last time step for which the eigenvectors were written to file call readtimes ! generate the density and magnetisation call rhomag ! compute the time-dependent Kohn-Sham potential and magnetic field call potkst ! DFT+U if (dftu /= 0) then call gendmatmt call genvmatmt end if ! read in the induced A-field and its time derivative if (tafindt) call readafindt ! read in the atomic displacements and velocities if (tatdisp) trdatdv=.true. ! begin TDDFT loop with next time step itimes0=itimes0+1 end subroutine elk-9.6.8/src/PaxHeaders/writeatdvc.f900000644000000000000000000000013214626155521014661 xustar0030 mtime=1717099345.346993723 30 atime=1717099343.760985178 30 ctime=1717099345.346993723 elk-9.6.8/src/writeatdvc.f900000644002504400250440000000101714626155521017402 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2020 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 writeatdvc use modmain implicit none ! local variables integer is,ia ! write the atomic displacements and velocities in Cartesian coordinates to file open(50,file='ATDVC.OUT',form='FORMATTED',action='WRITE') do is=1,nspecies do ia=1,natoms(is) write(50,'(2I4,6G18.10)') is,ia,atdvc(:,:,ia,is) end do end do close(50) end subroutine elk-9.6.8/src/PaxHeaders/rhostatic.f900000644000000000000000000000013214626155521014505 xustar0030 mtime=1717099345.348993734 30 atime=1717099343.763985194 30 ctime=1717099345.348993734 elk-9.6.8/src/rhostatic.f900000644002504400250440000000545214626155521017235 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2020 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 rhostatic use modmain use modtddft use modmpi implicit none ! local variables integer is,ia,ias,np,i real(8) t0,t1 ! allocatable arrays real(8), allocatable :: jrmt0(:,:,:),jrir0(:,:) ! external functions real(8), external :: rfmtint,rfint ! store original parameters maxscl0=maxscl afieldc0(:)=afieldc(:) tforce0=tforce tjr0=tjr ! initialise global variables call init0 ! only one self-consistent loop required maxscl=1 ! read potential from STATE.OUT trdstate=.true. ! calculate current density with zero A-field tjr=.true. afieldc(:)=0.d0 ! switch off forces tforce=.false. ! run the ground-state calculation call gndstate ! store the current density allocate(jrmt0(npmtmax,natmtot,3),jrir0(ngtot,3)) do i=1,3 call rfcopy(jrmt(:,:,i),jrir(:,i),jrmt0(:,:,i),jrir0(:,i)) end do ! allocate static density and charge global arrays if (allocated(rhosmt)) deallocate(rhosmt) allocate(rhosmt(npmtmax,natmtot,3)) if (allocated(rhosir)) deallocate(rhosir) allocate(rhosir(ngtot,3)) if (allocated(chgsmt)) deallocate(chgsmt) allocate(chgsmt(natmtot,3)) ! magnitude of applied external A-field t0=0.75d0*solsc t1=solsc/t0 ! loop over three directions do i=1,3 afieldc(:)=0.d0 afieldc(i)=t0 ! run the ground-state calculation call gndstate ! muffin-tin static density do ias=1,natmtot is=idxis(ias) np=npmt(is) rhosmt(1:np,ias,i)=rhomt(1:np,ias)+t1*(jrmt0(1:np,ias,i)-jrmt(1:np,ias,i)) ! compute the muffin-tin static charge chgsmt(ias,i)=rfmtint(nrmt(is),nrmti(is),wrmt(:,is),rhosmt(:,ias,i)) end do ! interstitial static density rhosir(:,i)=rhoir(:)+t1*(jrir0(:,i)-jrir(:,i)) ! compute the static charge chgstot(i)=rfint(rhosmt(:,:,i),rhosir(:,i)) end do if (mp_mpi) then ! write static density and charges to binary file open(100,file='RHOSTAT.OUT',form='UNFORMATTED',action='WRITE') write(100) natmtot write(100) npmtmax write(100) ngtot write(100) rhosmt,rhosir write(100) chgsmt write(100) chgstot close(100) ! write static charges to text file open(50,file='CHGSTAT.OUT',form='FORMATTED',action='WRITE') write(50,'("Muffin-tin static charges :")') do is=1,nspecies write(50,'(" species : ",I4," (",A,")")') is,trim(spsymb(is)) write(50,'(" core charge",T25,": ",G18.10)') chgcr(is) do ia=1,natoms(is) ias=idxas(ia,is) write(50,'(" atom ",I4,T25,": ",3G18.10)') ia,chgsmt(ias,:) end do end do write(50,*) write(50,'("Total static charge",T25,": ",3G18.10)') chgstot(:) close(50) end if deallocate(jrmt0,jrir0) ! restore original input parameters maxscl=maxscl0 afieldc(:)=afieldc0(:) tforce=tforce0 tjr=tjr0 ! synchronise MPI processes call mpi_barrier(mpicom,ierror) end subroutine elk-9.6.8/src/PaxHeaders/jtotk.f900000644000000000000000000000013114626155521013637 xustar0030 mtime=1717099345.350993745 29 atime=1717099343.76698521 30 ctime=1717099345.350993745 elk-9.6.8/src/jtotk.f900000644002504400250440000000226214626155521016364 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2020 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 jtotk(ik,pmat,evecsv,evecsvt) use modmain implicit none ! arguments integer, intent(in) :: ik complex(8), intent(in) :: pmat(nstsv,nstsv,3) complex(8), intent(in) :: evecsv(nstsv,nstsv),evecsvt(nstsv,nstsv) ! local variables integer ist,l real(8) wo complex(8) z1 ! allocatable arrays complex(8), allocatable :: a(:,:),b(:,:) ! external functions complex(8), external :: zdotc allocate(a(nstsv,nstsv),b(nstsv,nstsv)) do l=1,3 ! form the momentum operator matrix elements in the first-variational basis call zgemm('N','C',nstsv,nstsv,nstsv,zone,pmat(:,:,l),nstsv,evecsv,nstsv, & zzero,a,nstsv) call zgemm('N','N',nstsv,nstsv,nstsv,zone,evecsv,nstsv,a,nstsv,zzero,b,nstsv) ! add to the total current call zgemm('N','N',nstsv,nstsv,nstsv,zone,b,nstsv,evecsvt,nstsv,zzero,a,nstsv) do ist=1,nstsv wo=occsv(ist,ik) if (abs(wo) < epsocc) cycle wo=wo*wkpt(ik) z1=zdotc(nstsv,evecsvt(:,ist),1,a(:,ist),1) !$OMP ATOMIC jtot(l)=jtot(l)+wo*dble(z1) end do end do deallocate(a,b) end subroutine elk-9.6.8/src/PaxHeaders/rhosplot.f900000644000000000000000000000013214626155521014357 xustar0030 mtime=1717099345.352993755 30 atime=1717099343.768985221 30 ctime=1717099345.352993755 elk-9.6.8/src/rhosplot.f900000644002504400250440000000223114626155521017077 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2020 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 rhosplot use modmain use modtddft implicit none ! local variables integer is,ias,ispn integer nr,nri,iro,ir,i ! determine the static density and charge call rhostatic ! remove the core charge density do ias=1,natmtot is=idxis(ias) nr=nrmt(is) nri=nrmti(is) iro=nri+1 do ispn=1,nspncr i=1 do ir=1,nri rhosmt(i,ias,:)=rhosmt(i,ias,:)-rhocr(ir,ias,ispn) i=i+lmmaxi end do do ir=iro,nr rhosmt(i,ias,:)=rhosmt(i,ias,:)-rhocr(ir,ias,ispn) i=i+lmmaxo end do end do end do ! produce 1D plot of the static density open(50,file='RHOS1D.OUT',form='FORMATTED',action='WRITE') open(51,file='RHOSLINES.OUT',form='FORMATTED',action='WRITE') call plot1d(50,51,3,rhosmt,rhosir) close(50) close(51) write(*,*) write(*,'("Info(rhosplot):")') write(*,'(" 1D static density plot written to RHOS1D.OUT")') write(*,'(" vertex location lines written to RHOSLINES.OUT")') write(*,*) write(*,'(" The core density is not included in the plot")') end subroutine elk-9.6.8/src/PaxHeaders/bornecdyn.f900000644000000000000000000000013214626155521014470 xustar0030 mtime=1717099345.354993766 30 atime=1717099343.771985237 30 ctime=1717099345.354993766 elk-9.6.8/src/bornecdyn.f900000644002504400250440000000702014626155521017211 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2020 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 bornecdyn use modmain use modphonon use modtddft use modmpi use modtest implicit none ! local variables integer its,iw,i real(8) vc(3),w1,w2,t0,t1,t2 character(256) fext ! allocatable arrays real(8), allocatable :: w(:),wt(:),jt(:,:) real(8), allocatable :: f1(:),f2(:) complex(8), allocatable :: bec(:,:) ! initialise universal variables call init0 ! store original parameters atposl0(:,:,:)=atposl(:,:,:) atposc0(:,:,:)=atposc(:,:,:) afieldc0(:)=afieldc(:) tshift0=tshift ! no shifting of atomic basis allowed tshift=.false. ! generate the time step grid call gentimes ! allocate local arrays allocate(w(nwplot),wt(ntimes),jt(3,ntimes)) allocate(f1(ntimes),f2(ntimes),bec(nwplot,3)) ! 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 ! determine the weights for the spline integration call wsplint(ntimes,times,wt) ! generate a zero A-field and write to file npulse=0 nramp=0 if (mp_mpi) call genafieldt ! initial ground-state run should start from atomic densities trdstate=.false. ! begin new Born effective charge task 10 continue call bectask(80,fext) ! if nothing more to do then restore original input parameters and return if (isph == 0) then filext='.OUT' atposl(:,:,:)=atposl0(:,:,:) afieldc(:)=afieldc0(:) tshift=tshift0 trdatdv=.false. deallocate(w,wt,jt,f1,f2,bec) return end if if (mp_mpi) then write(*,'("Info(bornecdyn): working on ",A)') 'BEC'//trim(fext) end if ! break the crystal symmetry for the displaced atom atposl(:,:,:)=atposl0(:,:,:) atposc(:,:,:)=atposc0(:,:,:) vc(:)=atposc(:,iaph,isph) vc(ipph)=vc(ipph)-0.5d0*deltaph call r3mv(ainv,vc,atposl(:,iaph,isph)) ! apply a small static A-field afieldc(:)=0.d0 afieldc(ipph)=1.d-4 ! run the ground-state calculation call gndstate ! subsequent calculations will read in the previous potential trdstate=.true. ! write zero atomic forces to file if (mp_mpi) call becforce ! write displacement to file atdvc(:,:,:,:)=0.d0 atdvc(ipph,0,iaph,isph)=deltaph if (mp_mpi) call writeatdvc trdatdv=.true. ! run the time evolution calculation with Ehrenfest dynamics task=462 call tddft task=478 ! read in the total current from file call readjtot(jt) ! filter the high-frequency components from the current do its=1,ntimes t1=exp(-swidth*times(its)) jt(:,its)=t1*jt(:,its) end do ! compute the dynamical BEC from the Fourier transformed current t0=1.d0/(deltaph*cos(tdphi)) do i=1,3 do iw=1,nwplot do its=1,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(:),f1(:)) t2=dot_product(wt(:),f2(:)) bec(iw,i)=t0*cmplx(t1,t2,8) end do end do ! static and nuclear charge t1=sum(chgsmt(iasph,1:3))/3.d0+spzn(isph) ! write Born effective charge matrix row to file if (mp_mpi) then do i=1,3 if (i == ipph) then t2=t1 else t2=0.d0 end if do iw=1,nwplot write(80,'(2G18.10)') w(iw),dble(bec(iw,i))+t2 end do write(80,*) do iw=1,nwplot write(80,'(2G18.10)') w(iw),aimag(bec(iw,i)) end do write(80,*) end do close(80) end if ! synchronise MPI processes call mpi_barrier(mpicom,ierror) ! write test file if required and return if (test) then call writetest(478,'dynamical Born effective charge',nv=nwplot,tol=1.d-2, & zva=bec) return end if goto 10 end subroutine elk-9.6.8/src/PaxHeaders/becforce.f900000644000000000000000000000013214626155521014255 xustar0030 mtime=1717099345.356993777 30 atime=1717099343.774985253 30 ctime=1717099345.356993777 elk-9.6.8/src/becforce.f900000644002504400250440000000115314626155521016777 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2020 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 becforce use modmain use modphonon use modtddft implicit none integer its,is,ia ! generate the time step grid call gentimes ! write zero force to file for all time steps open(50,file='FORCETOT_TD.OUT',form='FORMATTED') do its=1,ntimes,ntsforce write(50,'(I8,G18.10)') its,times(its) do is=1,nspecies do ia=1,natoms(is) write(50,'(2I4,3G18.10)') is,ia,0.d0,0.d0,0.d0 end do end do end do close(50) end subroutine elk-9.6.8/src/PaxHeaders/tdinit.f900000644000000000000000000000013214626155521014000 xustar0030 mtime=1717099345.358993788 30 atime=1717099343.777985269 30 ctime=1717099345.358993788 elk-9.6.8/src/tdinit.f900000644002504400250440000000712614626155521016530 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2022 J. K. Dewhurst, S. Sharma and E. K. U. Gross. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. subroutine tdinit use modmain use modtddft use moddftu use modmpi use modomp use modramdisk implicit none ! local variables integer ik ! allocatable arrays real(8), allocatable :: evalfv(:,:) complex(8), allocatable :: evecfv(:,:,:),evecsv(:,:) if ((task == 460).or.(task == 462)) then ! calculation starts at t=0 tdt0=.true. else ! calculation restarts tdt0=.false. end if ! determine the static density and charge and write to file if (tdt0) call rhostatic ! store original parameters tforce0=tforce tfav00=tfav0 tjr0=tjr ! currents should be calculated with forces if (tforce) tjr=.true. ! average force can be non-zero (allow for translation of atomic basis) tfav0=.false. ! ensure eigenvectors are written to disk during initialisation wrtdsk0=wrtdsk wrtdsk=.true. ! initialise global variables call init0 call init1 ! read the charge density and potentials from file call readstate call genvsig call gencore call energykncr call linengy call genapwlofr call gensocfr if (tdt0) then ! generate eigenvalues and eigenvectors only at t=0 (not for the restart) for ! the k-point set reduced with the symmetries which leave A(t) invariant for all ! time steps call genevfsv else ! only read in the second-variational eigenvalues for restarts call readevalsv ! read in the static density and charge call readrhos end if ! compute the occupation numbers call occupy ! DFT+U if (dftu /= 0) then call gendmatmt call genvmatmt call vmatmtsc if (tmwrite) call genwkpr0 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 (tdt0) then allocate(evalfv(nstfv,nspnfv),evecfv(nmatmax,nstfv,nspnfv)) allocate(evecsv(nstsv,nstsv)) do ik=1,nkpt ! distribute among MPI processes if (mod(ik-1,np_mpi) /= lp_mpi) cycle 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) ! Ehrenfest dynamics if ((task == 462).or.(task == 463)) then ! forces should not be calculated tforce=.false. ! enable small amplitude displacements tatdisp=.true. ! zero the displacements and velocities atdvc(:,:,:,:)=0.d0 ! generate the gradient of the nucleus and static density Coulomb potential call gengvnsmt end if if (tdt0) then ! start from t=0 itimes0=1 else ! restart if required call tdrestart end if ! deallocate the static density if not required if (.not.tjr) deallocate(rhosmt,rhosir) ! read the forces calculated during the previous TDDFT run if (tatdisp) call readforcet ! read the atomic displacements and velocities if (trdatdv) call readatdvc wrtdsk=wrtdsk0 ! make the time-dependent Kohn-Sham orbitals strictly orthogonal after each ! time step for complex time evolution if (tdphi /= 0.d0) ntsorth=1 end subroutine elk-9.6.8/src/PaxHeaders/readrhos.f900000644000000000000000000000013214626155521014314 xustar0030 mtime=1717099345.360993798 30 atime=1717099343.780985286 30 ctime=1717099345.360993798 elk-9.6.8/src/readrhos.f900000644002504400250440000000277714626155521017053 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2022 J. K. Dewhurst, S. Sharma and E. K. U. Gross. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. subroutine readrhos use modmain use modtddft implicit none integer ios integer natmtot_,npmtmax_,ngtot_ ! allocate static density and charge global arrays if (allocated(rhosmt)) deallocate(rhosmt) allocate(rhosmt(npmtmax,natmtot,3)) if (allocated(rhosir)) deallocate(rhosir) allocate(rhosir(ngtot,3)) if (allocated(chgsmt)) deallocate(chgsmt) allocate(chgsmt(natmtot,3)) open(100,file='RHOSTAT.OUT',form='UNFORMATTED',action='READ',status='OLD', & iostat=ios) if (ios /= 0) then write(*,*) write(*,'("Error(readrhos): error opening RHOSTAT.OUT")') write(*,*) stop end if read(100) natmtot_ if (natmtot /= natmtot_) then write(*,*) write(*,'("Error(readrhos): differing natmtot")') write(*,'(" current : ",I6)') natmtot write(*,'(" RHOSTAT.OUT : ",I6)') natmtot_ write(*,*) stop end if read(100) npmtmax_ if (npmtmax /= npmtmax_) then write(*,*) write(*,'("Error(readrhos): differing npmtmax")') write(*,'(" current : ",I6)') npmtmax write(*,'(" RHOSTAT.OUT : ",I6)') npmtmax_ write(*,*) stop end if read(100) ngtot_ if (ngtot /= ngtot_) then write(*,*) write(*,'("Error(readrhos): differing ngtot")') write(*,'(" current : ",I8)') ngtot write(*,'(" RHOSTAT.OUT : ",I8)') ngtot_ write(*,*) stop end if read(100) rhosmt,rhosir read(100) chgsmt read(100) chgstot close(100) end subroutine elk-9.6.8/src/PaxHeaders/gengvnsmt.f900000644000000000000000000000013214626155521014515 xustar0030 mtime=1717099345.362993809 30 atime=1717099343.783985302 30 ctime=1717099345.362993809 elk-9.6.8/src/gengvnsmt.f900000644002504400250440000000250614626155521017242 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2020 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 gengvnsmt use modmain use modtddft implicit none ! local variables integer is,ias integer nr,nri,iro integer np,i0,i1 ! automatic arrays real(8) rfmt(npmtmax) complex(8) zrhomt(npmtmax),zvclmt(npmtmax) ! allocate global array if (allocated(gvnsmt)) deallocate(gvnsmt) allocate(gvnsmt(npmtmax,3,natmtot)) ! loop over atoms do ias=1,natmtot is=idxis(ias) nr=nrmt(is) nri=nrmti(is) iro=nri+1 np=npmt(is) ! take the average of the static density over the three directions rfmt(1:np)=(1.d0/3.d0) & *(rhosmt(1:np,ias,1)+rhosmt(1:np,ias,2)+rhosmt(1:np,ias,3)) ! convert to complex spherical harmonics expansion call rtozfmt(nr,nri,rfmt,zrhomt) ! solve Poisson's equation in the muffin-tin call zpotclmt(nr,nri,nrmtmax,rlmt(:,:,is),wprmt(:,:,is),zrhomt,zvclmt) ! add the nuclear Coulomb potential i1=lmmaxi*(nri-1)+1 zvclmt(1:i1:lmmaxi)=zvclmt(1:i1:lmmaxi)+vcln(1:nri,is) i0=i1+lmmaxi i1=lmmaxo*(nr-iro)+i0 zvclmt(i0:i1:lmmaxo)=zvclmt(i0:i1:lmmaxo)+vcln(iro:nr,is) ! compute the gradient of the potential and store in global array call gradzfmt(nr,nri,rlmt(:,-1,is),wcrmt(:,:,is),zvclmt,npmtmax, & gvnsmt(:,:,ias)) end do end subroutine elk-9.6.8/src/PaxHeaders/genhafspt.f900000644000000000000000000000013014626155521014462 xustar0029 mtime=1717099345.36499382 30 atime=1717099343.786985318 29 ctime=1717099345.36499382 elk-9.6.8/src/genhafspt.f900000644002504400250440000000211614626155521017206 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2023 E. Harris-Lee, S. Sharma 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 genhafspt(evecsv,pmat,h) use modmain use modtddft implicit none ! arguments complex(8), intent(in) :: evecsv(nstsv,nstsv),pmat(nstsv,nstsv,3) complex(8), intent(inout) :: h(nstsv,nstsv) ! local variables integer i,j,l real(8) ca,v(3) complex(8) zm(2,2) ! allocatable arrays complex(8), allocatable :: smat(:,:,:,:) allocate(smat(nstsv,nstsv,2,2)) ! generate the spin operator matrix elements in the second-variational basis call gensmatk(evecsv,smat) ! coupling constant of the external spin-polarised A-field (-1/c) ca=-1.d0/solsc ! add the spin-current operator to the Hamiltonian do l=1,3 v(:)=ca*afspt(l,:,itimes) zm(1,1)=v(3) zm(1,2)=cmplx(v(1),-v(2),8) zm(2,1)=cmplx(v(1),v(2),8) zm(2,2)=-v(3) do j=1,2 do i=1,2 call zhemm('L','U',nstsv,nstsv,zm(i,j),pmat(:,:,l),nstsv,smat(:,:,i,j), & nstsv,zone,h,nstsv) end do end do end do deallocate(smat) end subroutine elk-9.6.8/src/PaxHeaders/writeaxsf.f900000644000000000000000000000013214626155521014521 xustar0030 mtime=1717099345.366993831 30 atime=1717099343.788985329 30 ctime=1717099345.366993831 elk-9.6.8/src/writeaxsf.f900000644002504400250440000000163314626155521017246 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2023 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 writeaxsf use modmain use modtddft implicit none ! local variables integer is,ia ! write header at first time step if (itimes <= 1) then open(50,file='crystal.axsf',form='FORMATTED') write(50,'("ANIMSTEPS ",I8)') (ntimes-2)/ntsforce+1 write(50,'("CRYSTAL")') 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 close(50) end if open(50,file='crystal.axsf',form='FORMATTED',position='APPEND') write(50,*) write(50,'("PRIMCOORD ",I8)') (itimes-1)/ntsforce+1 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) end subroutine elk-9.6.8/src/PaxHeaders/atptstep.f900000644000000000000000000000013114626155521014350 xustar0030 mtime=1717099345.368993842 29 atime=1717099343.79098534 30 ctime=1717099345.368993842 elk-9.6.8/src/atptstep.f900000644002504400250440000000162214626155521017074 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2020 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 atptstep(ft) use modmain use modtddft use modmpi implicit none ! arguments real(8), intent(in) :: ft(3,natmtot) ! local variables integer itn,is,ia,ias real(8) dt,t1,t2 ! next time step when the forces will be calculated itn=itimes+ntsforce if (itn > ntimes) return ! time step length dt=times(itn)-times(itimes) do is=1,nspecies t1=1.d0-atdfc*dt if (t1 < 0.d0) t1=0.d0 t2=dt/spmass(is) do ia=1,natoms(is) ias=idxas(ia,is) ! add to the atomic velocities atdvc(:,1,ia,is)=t1*atdvc(:,1,ia,is)+t2*ft(:,ias) ! add to the atomic displacements atdvc(:,0,ia,is)=atdvc(:,0,ia,is)+atdvc(:,1,ia,is)*dt end do end do ! write the atomic displacements and velocities to file if (mp_mpi) call writeatdvc end subroutine elk-9.6.8/src/PaxHeaders/potkst.f900000644000000000000000000000013114626155521014030 xustar0030 mtime=1717099345.370993852 29 atime=1717099343.79298535 30 ctime=1717099345.370993852 elk-9.6.8/src/potkst.f900000644002504400250440000000053314626155521016554 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 ! adiabatic approximation to the exchange-correlation potential call potks(.true.) end subroutine elk-9.6.8/src/PaxHeaders/tdbackup.f900000644000000000000000000000013214626155521014302 xustar0030 mtime=1717099345.372993863 30 atime=1717099343.795985366 30 ctime=1717099345.372993863 elk-9.6.8/src/tdbackup.f900000644002504400250440000000210014626155521017015 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 use modramdisk implicit none ! local variables integer ik ! allocatable arrays complex(8), allocatable :: evecsvt(:,:) if (ntsbackup <= 0) return if (mod(itimes-1,ntsbackup) /= 0) return ! ensure eigenvectors are written to disk wrtdsk0=wrtdsk wrtdsk=.true. allocate(evecsvt(nstsv,nstsv)) do ik=1,nkpt ! distribute among MPI processes if (mod(ik-1,np_mpi) /= lp_mpi) cycle ! 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 if (mp_mpi) then open(50,file='TIMESTEP_BACKUP.OUT',form='FORMATTED') write(50,'(I8,G18.10)') itimes,times(itimes) close(50) end if wrtdsk=wrtdsk0 ! synchronise MPI processes call mpi_barrier(mpicom,ierror) end subroutine elk-9.6.8/src/PaxHeaders/writetimes.f900000644000000000000000000000013214626155521014701 xustar0030 mtime=1717099345.374993874 30 atime=1717099343.797985377 30 ctime=1717099345.374993874 elk-9.6.8/src/writetimes.f900000644002504400250440000000057514626155521017432 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) end subroutine elk-9.6.8/src/PaxHeaders/readtimes.f900000644000000000000000000000013214626155521014462 xustar0030 mtime=1717099345.376993885 30 atime=1717099343.799985388 30 ctime=1717099345.376993885 elk-9.6.8/src/readtimes.f900000644002504400250440000000211514626155521017203 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 use modmain use modtddft implicit none ! local variables integer ios real(8) times_,t1 open(50,file='TIMESTEP.OUT',form='FORMATTED',status='OLD',iostat=ios) if (ios /= 0) then write(*,*) write(*,'("Error(readtimes): error opening TIMESTEP.OUT")') write(*,*) stop end if read(50,*,iostat=ios) itimes0,times_ if (ios /= 0) then write(*,*) write(*,'("Error(readtimes): error reading time step from TIMESTEP.OUT")') write(*,*) stop end if if ((itimes0 < 1).or.(itimes0 > ntimes)) then write(*,*) write(*,'("Error(readtimes): invalid itimes : ",I8)') itimes0 write(*,*) stop end if t1=abs(times(itimes0)-times_) if (t1 > 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) end subroutine elk-9.6.8/src/PaxHeaders/gentimes.f900000644000000000000000000000013214626155521014320 xustar0030 mtime=1717099345.378993896 30 atime=1717099343.801985399 30 ctime=1717099345.378993896 elk-9.6.8/src/gentimes.f900000644002504400250440000000117714626155521017050 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 if (tstime < dtimes) then write(*,*) write(*,'("Error(gentimes): tstime < dtimes : ",2G18.10)') tstime,dtimes write(*,*) stop end if ! number of time steps ntimes=nint(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 end subroutine elk-9.6.8/src/PaxHeaders/readafieldt.f900000644000000000000000000000013214626155521014751 xustar0030 mtime=1717099345.380993906 30 atime=1717099343.803985409 30 ctime=1717099345.380993906 elk-9.6.8/src/readafieldt.f900000644002504400250440000000475614626155521017507 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 ios,ntimes_,its,its_ real(8) times_,t1 ! generate the time step grid call gentimes ! read in the time-dependent vector potential open(50,file='AFIELDT.OUT',form='FORMATTED',action='READ',status='OLD', & iostat=ios) if (ios /= 0) then write(*,*) write(*,'("Error(readafieldt): error opening AFIELDT.OUT")') write(*,*) stop end if read(50,*) ntimes_ if (ntimes_ <= 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 /= 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 > 1.d-10) then write(*,*) write(*,'("Error(readafieldt): time step mismatch for step number ",& &I8)') its write(*,'(" internal : ",G18.10)') times(its) write(*,'(" AFIELDT.OUT : ",G18.10)') times_ stop end if end do close(50) if (.not.tafspt) return open(50,file='AFSPT.OUT',form='FORMATTED',action='READ',status='OLD',iostat=ios) if (ios /= 0) then write(*,*) write(*,'("Error(readafieldt): error opening AFSPT.OUT")') write(*,*) stop end if read(50,*) ntimes_ if (ntimes /= ntimes_) then write(*,*) write(*,'("Error(readafieldt): differing ntimes")') write(*,'(" internal : ",I8)') ntimes write(*,'(" AFSPT.OUT : ",I8)') ntimes_ write(*,*) stop end if if (allocated(afspt)) deallocate(afspt) allocate(afspt(3,3,ntimes)) do its=1,ntimes read(50,*) its_,times_,afspt(:,:,its) if (its /= its_) then write(*,*) write(*,'("Error(readafieldt): time step number mismatch")') write(*,'(" internal : ",I8)') its write(*,'(" AFSPT.OUT : ",I8)') its_ write(*,*) stop end if t1=abs(times(its)-times_) if (t1 > 1.d-10) then write(*,*) write(*,'("Error(readafieldt): time step mismatch for step number ",& &I8)') its write(*,'(" internal : ",G18.10)') times(its) write(*,'(" AFSPT.OUT : ",G18.10)') times_ stop end if end do close(50) end subroutine elk-9.6.8/src/PaxHeaders/genjr.f900000644000000000000000000000013214626155521013612 xustar0030 mtime=1717099345.383993922 30 atime=1717099343.806985426 30 ctime=1717099345.383993922 elk-9.6.8/src/genjr.f900000644002504400250440000000154114626155521016335 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2020 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 genjr use modmain use modtddft implicit none ! local variables integer is,ias,np,l real(8) ca,t1 ! generate the paramagnetic current call genjpr ! add the diamagnetic term if a time-dependent A-field is present if (tafieldt) then ! coupling constant of the external A-field (-1/c) ca=-1.d0/solsc ! muffin-tin part do l=1,3 t1=ca*afieldt(l,itimes) do ias=1,natmtot is=idxis(ias) np=npmt(is) jrmt(1:np,ias,l)=jrmt(1:np,ias,l)+t1*(rhomt(1:np,ias)-rhosmt(1:np,ias,l)) end do end do ! interstitial part do l=1,3 t1=ca*afieldt(l,itimes) jrir(1:ngtot,l)=jrir(1:ngtot,l)+t1*(rhoir(1:ngtot)-rhosir(1:ngtot,l)) end do end if end subroutine elk-9.6.8/src/PaxHeaders/tddft.f900000644000000000000000000000013214626155521013612 xustar0030 mtime=1717099345.385993933 30 atime=1717099343.808985436 30 ctime=1717099345.385993933 elk-9.6.8/src/tddft.f900000644002504400250440000000563614626155521016346 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 modramdisk use modtest implicit none if (tshift) then write(*,*) write(*,'("Error(tddft): use tshift = .false. for the ground-state run")') write(*,*) stop end if ! initialise TDDFT variables call tdinit ! 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,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 ! check for STOP file call checkstop ! write all files on last loop if ((itimes == ntimes-1).or.tstop) wrtdsk=.true. ! flag for writing observables at this time step ttswrite=.false. if (ntswrite(1) > 0) then if (mod(itimes-1,ntswrite(1)) == 0) then if ((itimes == 1).or.(itimes >= ntswrite(2))) ttswrite=.true. end if end if ! flag for calculating forces at this time step if (mod(itimes-1,ntsforce) == 0) then ttsforce=.true. else ttsforce=.false. end if ! evolve the wavefunctions across a single time step call timestep ! generate the density and magnetisation at current time step call rhomag ! compute the gauge-invariant current j(r) if required if (tjr) call genjr ! time step the induced A-field if (tafindt) call afindtstep ! calculate the electric field call genefieldt ! compute the time-dependent Kohn-Sham potential and magnetic field call potkst ! add the fixed spin moment effective field if required call addbfsm ! DFT+U if (dftu /= 0) then call gendmatmt call genvmatmt call vmatmtsc end if ! compute the total energy call energytd ! calculate the atomic forces if required if (tforce.and.ttsforce) call force ! time step the atomic positions for Ehrenfest dynamics using forces calculated ! during the previous TDDFT run if (tatdisp.and.ttsforce) call atptstep(forcet(:,:,itimes)) ! write general TDDFT output if (mp_mpi) call writetddft ! write time-dependent DOS if required if (tddos.and.ttswrite) call writetddos ! write muffin-tin L, S and J if required if (tdlsj.and.ttswrite) call writetdlsj ! write the k-point dependent total current if (tdjtk.and.ttswrite) call writetdjtk if (tstop) exit end do filext='.OUT' ! restore original input parameters tforce=tforce0 tfav0=tfav00 tjr=tjr0 tatdisp=.false. ! write the total current of the last step to test file call writetest(460,'total current of last time step',nv=3,tol=5.d-4,rva=jtot) ! synchronise MPI processes call mpi_barrier(mpicom,ierror) end subroutine elk-9.6.8/src/PaxHeaders/timestep.f900000644000000000000000000000013214626155521014337 xustar0030 mtime=1717099345.387993944 30 atime=1717099343.810985447 30 ctime=1717099345.387993944 elk-9.6.8/src/timestep.f900000644002504400250440000001116614626155521017066 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,i,j,nthd real(8) ca,dt,t1 complex(8) z1,z2 ! automatic arrays real(8) w(nstsv) ! allocatable arrays real(8), allocatable :: vmt(:,:),vir(:),bmt(:,:,:) complex(8), allocatable :: evecsv(:,:),evectv(:,:),evecsvt(:,:) complex(8), allocatable :: kmat(:,:),pmat(:,:,:) complex(8), allocatable :: a(:,:),b(:,:),c(:,:) if (itimes >= ntimes) then write(*,*) write(*,'("Error(timestep): itimes >= ntimes : ",2I8)') itimes,ntimes write(*,*) stop end if allocate(vmt(npcmtmax,natmtot),vir(ngtot)) if (spinpol) allocate(bmt(npcmtmax,natmtot,ndmag)) ! generate the Kohn-Sham potential and magnetic field in spherical coordinates ! and multiply by the radial integration weights; also multiply the interstitial ! potential with the characteristic function call vblocal(vmt,vir,bmt) ! time step length dt=times(itimes+1)-times(itimes) ! zero the kinetic energy engykn=0.d0 ! zero the total current jtot(:)=0.d0 ! loop over k-points call holdthd(nkpt/np_mpi,nthd) !$OMP PARALLEL DEFAULT(SHARED) & !$OMP PRIVATE(evecsv,evectv,evecsvt) & !$OMP PRIVATE(kmat,pmat,w,a,b,c) & !$OMP PRIVATE(i,j,t1,z1,z2) & !$OMP NUM_THREADS(nthd) allocate(evecsv(nstsv,nstsv),evectv(nstsv,nstsv),evecsvt(nstsv,nstsv)) allocate(kmat(nstsv,nstsv),pmat(nstsv,nstsv,3)) allocate(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) /= lp_mpi) cycle ! get the kinetic matrix elements from file call getkmat(ik,kmat) ! get the momentum matrix elements from file call getpmat(vkl(:,ik),pmat) ! generate the Hamiltonian matrix in the ground-state second-variational basis call genhmlt(ik,vmt,vir,bmt,bsir,kmat,pmat,evectv) ! diagonalise the Hamiltonian to get third-variational eigenvectors if (spinpol.and.(.not.ncmag)) then ! collinear case requires block diagonalisation call eveqnzh(nstfv,nstsv,evectv,w) i=nstfv+1 call eveqnzh(nstfv,nstsv,evectv(i,i),w(i)) do j=1,nstfv evectv(nstfv+1:nstsv,j)=0.d0 evectv(1:nstfv,nstfv+j)=0.d0 end do else ! non-collinear or spin-unpolarised: full diagonalisation call eveqnzh(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 if (tdphi == 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 z2=cmplx(sin(tdphi),cos(tdphi),8) do i=1,nstsv t1=-w(i)*dt z1=exp(t1*z2) 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 (ntsorth > 0) then if (mod(itimes-1,ntsorth) == 0) call unitary(nstsv,evecsvt) end if ! add to the kinetic energy call engyknk(ik,kmat,evecsv,evecsvt) ! add to the total current call jtotk(ik,pmat,evecsv,evecsvt) ! write the new eigenvectors to file call putevecsv(filext,ik,evecsvt) end do !$OMP END DO deallocate(evecsv,evectv,evecsvt) deallocate(kmat,pmat,a,b,c) !$OMP END PARALLEL call freethd(nthd) deallocate(vmt,vir) if (spinpol) deallocate(bmt) ! add the kinetic energy and total current from each process and redistribute if (np_mpi > 1) then call mpi_allreduce(mpi_in_place,engykn,1,mpi_double_precision,mpi_sum,mpicom,& ierror) call mpi_allreduce(mpi_in_place,jtot,3,mpi_double_precision,mpi_sum,mpicom, & ierror) end if ! add the core kinetic energy engykn=engykn+engykncr ! coupling constant of the external A-field (-1/c) ca=-1.d0/solsc ! add the diamagnetic current to total jtot(:)=jtot(:)+ca*afieldt(:,itimes)*(chgtot-chgstot(:)) ! symmetrise the vector call symvec(jtot) ! total current magnitude jtotm=sqrt(jtot(1)**2+jtot(2)**2+jtot(3)**2) ! write the time step to file if (mp_mpi) call writetimes ! backup existing time-dependent Kohn-Sham eigenvectors if required call tdbackup ! synchronise MPI processes call mpi_barrier(mpicom,ierror) end subroutine elk-9.6.8/src/PaxHeaders/writetdjtk.f900000644000000000000000000000013214626155521014700 xustar0030 mtime=1717099345.389993955 30 atime=1717099343.812985458 30 ctime=1717099345.389993955 elk-9.6.8/src/writetdjtk.f900000644002504400250440000000514014626155521017422 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2023 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 writetdjtk use modmain use modtddft use modmpi use modomp implicit none ! local variables integer ik,ist,l,lp,nthd real(8) ca,t1,t2 complex(8) z1 character(32) fext ! allocatable arrays real(8), allocatable :: jtk(:,:) complex(8), allocatable :: evecsv(:,:),evecsvt(:,:) complex(8), allocatable :: pmat(:,:,:),a(:,:),b(:,:) ! external functions complex(8), external :: zdotc ! coupling constant of the external A-field (-1/c) ca=-1.d0/solsc allocate(jtk(3,nkpt)) jtk(:,:)=0.d0 call holdthd(nkpt/np_mpi,nthd) !$OMP PARALLEL DEFAULT(SHARED) & !$OMP PRIVATE(evecsv,evecsvt,pmat) & !$OMP PRIVATE(a,b,l,t1,t2,ist,z1) & !$OMP NUM_THREADS(nthd) allocate(evecsv(nstsv,nstsv),evecsvt(nstsv,nstsv)) allocate(pmat(nstsv,nstsv,3),a(nstsv,nstsv),b(nstsv,nstsv)) !$OMP DO do ik=1,nkpt ! distribute among MPI processes if (mod(ik-1,np_mpi) /= lp_mpi) cycle ! get the momentum matrix elements from file call getpmat(vkl(:,ik),pmat) ! read in ground-state eigenvectors call getevecsv('.OUT',ik,vkl(:,ik),evecsv) ! read in time-dependent Kohn-Sham eigenvectors (first-variational basis) call getevecsv(filext,ik,vkl(:,ik),evecsvt) do l=1,3 ! form the momentum operator matrix elements in the first-variational basis call zgemm('N','C',nstsv,nstsv,nstsv,zone,pmat(:,:,l),nstsv,evecsv,nstsv, & zzero,a,nstsv) call zgemm('N','N',nstsv,nstsv,nstsv,zone,evecsv,nstsv,a,nstsv,zzero,b, & nstsv) call zgemm('N','N',nstsv,nstsv,nstsv,zone,b,nstsv,evecsvt,nstsv,zzero,a, & nstsv) ! add to the total current for this k-point (including diamagnetic contribution) t1=ca*afieldt(l,itimes) do ist=1,nstsv t2=occsv(ist,ik) if (abs(t2) > epsocc) then z1=zdotc(nstsv,evecsvt(:,ist),1,a(:,ist),1) jtk(l,ik)=jtk(l,ik)+t2*(dble(z1)+t1) end if end do end do end do !$OMP END DO deallocate(evecsv,evecsvt,pmat,a,b) !$OMP END PARALLEL call freethd(nthd) ! broadcast current array to every MPI process if (np_mpi > 1) then do ik=1,nkpt lp=mod(ik-1,np_mpi) call mpi_bcast(jtk(:,ik),3,mpi_double_precision,lp,mpicom,ierror) end do end if ! write k-point dependent total current to file if (mp_mpi) then ! file extension write(fext,'("_TS",I8.8,".OUT")') itimes open(50,file='JTOTK'//trim(fext),form='FORMATTED',action='WRITE') do ik=1,nkpt write(50,'(I6,6G18.10)') ik,vkl(:,ik),jtk(:,ik) end do close(50) end if deallocate(jtk) ! synchronise MPI processes call mpi_barrier(mpicom,ierror) end subroutine elk-9.6.8/src/PaxHeaders/zfirctof.f900000644000000000000000000000013214626155521014333 xustar0030 mtime=1717099345.391993966 30 atime=1717099343.814985469 30 ctime=1717099345.391993966 elk-9.6.8/src/zfirctof.f900000644002504400250440000000121614626155521017055 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2020 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 zfirctof(zfirc,zfir) use modmain implicit none ! arguments complex(8), intent(in) :: zfirc(ngtc) complex(8), intent(out) :: zfir(ngtot) ! local variables integer ig ! automatic arrays complex(8) zfftc(ngtc) ! Fourier transform function on coarse grid to G-space zfftc(:)=zfirc(:) call zfftifc(3,ngdgc,-1,zfftc) ! Fourier transform to fine real-space grid zfir(:)=0.d0 do ig=1,ngvc zfir(igfft(ig))=zfftc(igfc(ig)) end do call zfftifc(3,ngridg,1,zfir) end subroutine elk-9.6.8/src/PaxHeaders/writeevalu.f900000644000000000000000000000013114626155521014673 xustar0030 mtime=1717099345.393993976 29 atime=1717099343.81698548 30 ctime=1717099345.393993976 elk-9.6.8/src/writeevalu.f900000644002504400250440000000136714626155521017425 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) end subroutine elk-9.6.8/src/PaxHeaders/writekpa.f900000644000000000000000000000013114626155521014332 xustar0030 mtime=1717099345.395993987 29 atime=1717099343.81898549 30 ctime=1717099345.395993987 elk-9.6.8/src/writekpa.f900000644002504400250440000000077114626155521017062 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2019 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 writekpa use modmain use modulr implicit none ! local variables integer ikpa open(50,file='KAPPA.OUT',form='FORMATTED') write(50,'(I6," : nkpa; kappa-point, vector in unit cell reciprocal lattice & &coordinates below")') nkpa do ikpa=1,nkpa write(50,'(I6,3G18.10)') ikpa,vql(:,ikpa) end do close(50) end subroutine elk-9.6.8/src/PaxHeaders/genhdbulr.f900000644000000000000000000000013214626155521014457 xustar0030 mtime=1717099345.397993998 30 atime=1717099343.820985501 30 ctime=1717099345.397993998 elk-9.6.8/src/genhdbulr.f900000644002504400250440000000133614626155521017204 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 genhdbulr use modmain use modulr use modmpi use modomp implicit none ! local variables integer ik0,nthd ! loop over original k-points call holdthd(nkpt0/np_mpi,nthd) !$OMP PARALLEL DO DEFAULT(SHARED) & !$OMP NUM_THREADS(nthd) do ik0=1,nkpt0 ! distribute among MPI processes if (mod(ik0-1,np_mpi) /= lp_mpi) cycle ! write the long-range Hamiltonian diagonal blocks to file call puthdbulr(ik0) end do !$OMP END PARALLEL DO call freethd(nthd) ! synchronise MPI processes call mpi_barrier(mpicom,ierror) end subroutine elk-9.6.8/src/PaxHeaders/vblocalu.f900000644000000000000000000000013214626155521014314 xustar0030 mtime=1717099345.399994009 30 atime=1717099343.822985512 30 ctime=1717099345.399994009 elk-9.6.8/src/vblocalu.f900000644002504400250440000000456514626155521017050 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2020 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 vblocalu use modmain use modulr use modomp implicit none ! local variables integer ifq,idm,is,ias integer nrc,nrci,npc,nthd ! automatic arrays real(8) rfmt1(npcmtmax),rfmt2(npcmtmax) ! subtract the normal Kohn-Sham potential for Q=0 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 vsqir(1:ngtot,1)=vsqir(1:ngtot,1)-vsir(1:ngtot) call holdthd(2*nfqrz,nthd) !$OMP PARALLEL DEFAULT(SHARED) & !$OMP PRIVATE(ias,is,nrc,nrci) & !$OMP NUM_THREADS(nthd) !$OMP DO do ifq=1,nfqrz do ias=1,natmtot is=idxis(ias) nrc=nrcmt(is) nrci=nrcmti(is) ! multiply the muffin-tin potential by the radial integration weights call zfcmtwr(nrc,nrci,wrcmt(:,is),vsqmt(:,ias,ifq)) end do end do !$OMP END DO NOWAIT !$OMP DO do ifq=1,nfqrz ! multiply the interstitial potential by the characteristic function vsqir(1:ngtot,ifq)=vsqir(1:ngtot,ifq)*cfunir(1:ngtot) end do !$OMP END DO !$OMP END PARALLEL 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 call holdthd(2*nfqrz,nthd) !$OMP PARALLEL DEFAULT(SHARED) & !$OMP PRIVATE(idm,ias,is,nrc,nrci) & !$OMP NUM_THREADS(nthd) !$OMP DO do ifq=1,nfqrz do idm=1,ndmag do ias=1,natmtot is=idxis(ias) nrc=nrcmt(is) nrci=nrcmti(is) ! multiply the muffin-tin field by the radial integration weights call zfcmtwr(nrc,nrci,wrcmt(:,is),bsqmt(:,ias,idm,ifq)) end do end do end do !$OMP END DO NOWAIT !$OMP DO do ifq=1,nfqrz do idm=1,ndmag ! multiply interstitial field by the characteristic function bsqir(1:ngtot,idm,ifq)=bsqir(1:ngtot,idm,ifq)*cfunir(1:ngtot) end do end do !$OMP END DO !$OMP END PARALLEL 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(1:ngtot,idm,1)=bsqir(1:ngtot,idm,1)-bsir(1:ngtot,idm) end do end subroutine elk-9.6.8/src/PaxHeaders/chargeu.f900000644000000000000000000000013214626155521014123 xustar0030 mtime=1717099345.401994019 30 atime=1717099343.824985523 30 ctime=1717099345.401994019 elk-9.6.8/src/chargeu.f900000644002504400250440000000207414626155521016650 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 use modtest implicit none ! local variables integer ifq,is,ias integer nrc,nrci real(8) t1 ! automatic arrays real(8) rfft(nqpt) complex(8) zfft(nfqrz) ! external functions real(8), external :: ddot complex(8), external :: zfmtint ! 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(ngtc,rhoqir(:,1),2,cfrc,1) chgir=t1*omega/dble(ngtc) ! total calculated charge chgcalc=chgmttot+chgir ! write muffin-tin charges to file call writetest(730,'ULR muffin-tin charges',nv=natmtot*nqpt,tol=5.d-5, & rva=chgmtru) end subroutine elk-9.6.8/src/PaxHeaders/addbfsmu.f900000644000000000000000000000013014626155521014270 xustar0029 mtime=1717099345.40399403 30 atime=1717099343.826985533 29 ctime=1717099345.40399403 elk-9.6.8/src/addbfsmu.f900000644002504400250440000000167514626155521017025 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) == 1).or.(abs(fsmtype) == 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(1:ngtot,idm,1)=bsqir(1:ngtot,idm,1)+t1*cfunir(1:ngtot) end do end if ! add the muffin-tin fields if ((abs(fsmtype) == 2).or.(abs(fsmtype) == 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 end subroutine elk-9.6.8/src/PaxHeaders/momentu.f900000644000000000000000000000013214626155521014171 xustar0030 mtime=1717099345.405994041 30 atime=1717099343.828985544 30 ctime=1717099345.405994041 elk-9.6.8/src/momentu.f900000644002504400250440000000253314626155521016716 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 use modtest implicit none ! local variables integer ifq,idm,is,ias integer nrc,nrci real(8) t1 ! automatic arrays real(8) rfft(nqpt) complex(8) zfft(nfqrz) ! external functions real(8), external :: ddot complex(8), external :: zfmtint if (.not.spinpol) return ! 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 ! find the interstitial and total moments do idm=1,ndmag t1=ddot(ngtc,magqir(:,idm,1),2,cfrc,1) momir(idm)=t1*omega/dble(ngtc) momtot(idm)=mommttot(idm)+momir(idm) end do ! 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 the muffin-tin moments to test file call writetest(770,'ULR muffin-tin moments',nv=ndmag*natmtot*nqpt,tol=1.d-2, & rva=mommtru) end subroutine elk-9.6.8/src/PaxHeaders/occupyulr.f900000644000000000000000000000013214626155521014532 xustar0030 mtime=1717099345.407994052 30 atime=1717099343.830985555 30 ctime=1717099345.407994052 elk-9.6.8/src/occupyulr.f900000644002504400250440000000261114626155521017254 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), 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 < e0) e0=e if (e > e1) e1=e end do end do if (e0 < 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 < 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 < chgval) then e0=efermi else e1=efermi end if if ((e1-e0) < 1.d-12) return end do write(*,*) write(*,'("Warning(occupyulr): could not find Fermi energy")') end subroutine elk-9.6.8/src/PaxHeaders/potksu.f900000644000000000000000000000013214626155521014032 xustar0030 mtime=1717099345.409994063 30 atime=1717099343.833985571 30 ctime=1717099345.409994063 elk-9.6.8/src/potksu.f900000644002504400250440000000123414626155521016554 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 implicit none ! local variables real(8) ts0,ts1 call timesec(ts0) ! compute the ultra long-range Coulomb potential call potcoulu ! compute the ultra long-range exchange-correlation potential and fields call potxcu ! reduce the external magnetic field if required if (reducebf < 1.d0) then bfcq(:,:)=bfcq(:,:)*reducebf bfcmtq(:,:,:)=bfcmtq(:,:,:)*reducebf end if call timesec(ts1) timepot=timepot+ts1-ts0 end subroutine elk-9.6.8/src/PaxHeaders/writevclr.f900000644000000000000000000000013214626155521014526 xustar0030 mtime=1717099345.411994073 30 atime=1717099343.835985582 30 ctime=1717099345.411994073 elk-9.6.8/src/writevclr.f900000644002504400250440000000144414626155521017253 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) end subroutine elk-9.6.8/src/PaxHeaders/genzvmatk.f900000644000000000000000000000013214626155521014513 xustar0030 mtime=1717099345.413994084 30 atime=1717099343.837985593 30 ctime=1717099345.413994084 elk-9.6.8/src/genzvmatk.f900000644002504400250440000000455514626155521017246 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,ngp,igpig,wfmt,wfir,wfgp,vmat) use modmain use modomp implicit none ! arguments ! the potential is multiplied by the radial integration weights in the ! muffin-tin and by the characteristic function in the interstitial region complex(8), intent(in) :: zvmt(npcmtmax,natmtot),zvir(ngtot) integer, intent(in) :: ngp,igpig(ngp) complex(4), intent(in) :: wfmt(npcmtmax,natmtot,nspinor,nstsv) ! note that wfir does not have a 1/sqrt(omega) prefactor complex(4), intent(in) :: wfir(ngtot,nspinor,nstsv) complex(4), intent(in) :: wfgp(ngp,nspinor,nstsv) complex(8), intent(out) :: vmat(nstsv,nstsv) ! local variables integer ist,jst,ispn,nthd integer is,ias,npc,igp ! automatic arrays complex(4) wfmt1(npcmtmax),c(ngp) ! allocatable arrays complex(4), allocatable :: wfir1(:) ! external functions complex(4), external :: cdotc call holdthd(nstsv,nthd) ! zero the matrix elements vmat(:,:)=0.d0 !-------------------------! ! muffin-tin part ! !-------------------------! !$OMP PARALLEL DO DEFAULT(SHARED) & !$OMP PRIVATE(wfmt1,ispn,ias) & !$OMP PRIVATE(is,npc,ist) & !$OMP NUM_THREADS(nthd) do jst=1,nstsv do ispn=1,nspinor do ias=1,natmtot is=idxis(ias) npc=npcmt(is) ! apply complex potential to wavefunction wfmt1(1:npc)=zvmt(1:npc,ias)*wfmt(1:npc,ias,ispn,jst) ! compute the inner products do ist=1,nstsv vmat(ist,jst)=vmat(ist,jst)+cdotc(npc,wfmt(:,ias,ispn,ist),1,wfmt1,1) end do end do end do end do !$OMP END PARALLEL DO !---------------------------! ! interstitial part ! !---------------------------! !$OMP PARALLEL DEFAULT(SHARED) & !$OMP PRIVATE(wfir1,c,ispn,igp,ist) & !$OMP NUM_THREADS(nthd) allocate(wfir1(ngtot)) !$OMP DO do jst=1,nstsv do ispn=1,nspinor ! apply potential to wavefunction wfir1(1:ngtot)=zvir(1:ngtot)*wfir(1:ngtot,ispn,jst) ! Fourier transform to G+p-space call cfftifc(3,ngridg,-1,wfir1) do igp=1,ngp c(igp)=wfir1(igfft(igpig(igp))) end do do ist=1,nstsv ! compute inner product vmat(ist,jst)=vmat(ist,jst)+cdotc(ngp,wfgp(:,ispn,ist),1,c,1) end do end do end do !$OMP END DO deallocate(wfir1) !$OMP END PARALLEL call freethd(nthd) end subroutine elk-9.6.8/src/PaxHeaders/genzvbmatk.f900000644000000000000000000000013214626155521014655 xustar0030 mtime=1717099345.415994095 30 atime=1717099343.839985603 30 ctime=1717099345.415994095 elk-9.6.8/src/genzvbmatk.f900000644002504400250440000000745414626155521017411 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,ngp,igpig,wfmt,wfir,wfgp,vbmat) use modmain use modomp implicit none ! arguments ! the potential and field are multiplied by the radial integration weights in ! the muffin-tin and by the characteristic function in the interstitial region complex(8), intent(in) :: zvmt(npcmtmax,natmtot),zvir(ngtot) complex(8), intent(in) :: zbmt(npcmtmax,natmtot,ndmag),zbir(ngtot,ndmag) integer, intent(in) :: ngp,igpig(ngp) complex(4), intent(in) :: wfmt(npcmtmax,natmtot,nspinor,nstsv) ! note that wfir does not have a 1/sqrt(omega) prefactor complex(4), intent(in) :: wfir(ngtot,nspinor,nstsv) complex(4), intent(in) :: wfgp(ngp,nspinor,nstsv) complex(8), intent(out) :: vbmat(nstsv,nstsv) ! local variables integer ist,jst,ispn,nthd integer is,ias,npc,igp ! automatic arrays complex(4) wfmt1(npcmtmax,nspinor),c(ngp) ! allocatable arrays complex(4), allocatable :: wfir1(:,:) ! external functions complex(4), external :: cdotc call holdthd(nstsv,nthd) ! zero the matrix elements vbmat(:,:)=0.d0 !-------------------------! ! muffin-tin part ! !-------------------------! !$OMP PARALLEL DO DEFAULT(SHARED) & !$OMP PRIVATE(wfmt1,ias,is,npc,ist) & !$OMP NUM_THREADS(nthd) do jst=1,nstsv do ias=1,natmtot is=idxis(ias) npc=npcmt(is) ! 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), & wfmt(:,ias,1,jst),wfmt(:,ias,2,jst),wfmt1,wfmt1(:,2)) else ! collinear case call zvbmk2(npc,zvmt(:,ias),zbmt(:,ias,1),wfmt(:,ias,1,jst), & wfmt(:,ias,2,jst),wfmt1,wfmt1(:,2)) end if ! compute the inner products do ist=1,nstsv vbmat(ist,jst)=vbmat(ist,jst) & +cdotc(npc,wfmt(:,ias,1,ist),1,wfmt1,1) & +cdotc(npc,wfmt(:,ias,2,ist),1,wfmt1(:,2),1) end do end do end do !$OMP END PARALLEL DO !---------------------------! ! interstitial part ! !---------------------------! !$OMP PARALLEL DEFAULT(SHARED) & !$OMP PRIVATE(wfir1,c,ispn,igp,ist) & !$OMP NUM_THREADS(nthd) allocate(wfir1(ngtot,nspinor)) !$OMP DO do jst=1,nstsv ! apply local potential and magnetic field to spinor wavefunction if (ncmag) then ! non-collinear case call zvbmk1(ngtot,zvir,zbir,zbir(:,2),zbir(:,3),wfir(:,1,jst), & wfir(:,2,jst),wfir1,wfir1(:,2)) else ! collinear case call zvbmk2(ngtot,zvir,zbir,wfir(:,1,jst),wfir(:,2,jst),wfir1,wfir1(:,2)) end if do ispn=1,nspinor ! Fourier transform to G+p-space call cfftifc(3,ngridg,-1,wfir1(:,ispn)) do igp=1,ngp c(igp)=wfir1(igfft(igpig(igp)),ispn) end do do ist=1,nstsv vbmat(ist,jst)=vbmat(ist,jst)+cdotc(ngp,wfgp(:,ispn,ist),1,c,1) end do end do end do !$OMP END DO deallocate(wfir1) !$OMP END PARALLEL call freethd(nthd) return contains pure subroutine zvbmk1(n,zv,zb1,zb2,zb3,wf11,wf12,wf21,wf22) implicit none ! arguments integer, intent(in) :: n complex(8), intent(in) :: zv(n),zb1(n),zb2(n),zb3(n) complex(4), intent(in) :: wf11(n),wf12(n) complex(4), intent(out) :: wf21(n),wf22(n) ! local variables integer i complex(8) z1 do i=1,n z1=cmplx(-aimag(zb2(i)),dble(zb2(i)),8) wf21(i)=(zv(i)+zb3(i))*wf11(i)+(zb1(i)-z1)*wf12(i) wf22(i)=(zv(i)-zb3(i))*wf12(i)+(zb1(i)+z1)*wf11(i) end do end subroutine pure subroutine zvbmk2(n,zv,zb,wf11,wf12,wf21,wf22) implicit none ! arguments integer, intent(in) :: n complex(8), intent(in) :: zv(n),zb(n) complex(4), intent(in) :: wf11(n),wf12(n) complex(4), intent(out) :: wf21(n),wf22(n) ! local variables integer i do i=1,n wf21(i)=(zv(i)+zb(i))*wf11(i) wf22(i)=(zv(i)-zb(i))*wf12(i) end do end subroutine end subroutine elk-9.6.8/src/PaxHeaders/rhomagq.f900000644000000000000000000000013114626155521014142 xustar0030 mtime=1717099345.417994106 29 atime=1717099343.84298562 30 ctime=1717099345.417994106 elk-9.6.8/src/rhomagq.f900000644002504400250440000000234314626155521016667 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,is,ias,nthd ! partial Fourier transform of density to Q-space call rfzfftq(-1,1,ngtc,rhormt,rhorir,rhoqmt,rhoqir) ! convert density to spherical harmonics call holdthd(nfqrz,nthd) !$OMP PARALLEL DO DEFAULT(SHARED) & !$OMP PRIVATE(ias,is) & !$OMP NUM_THREADS(nthd) do ifq=1,nfqrz do ias=1,natmtot is=idxis(ias) call zfshtip(nrcmt(is),nrcmti(is),rhoqmt(:,ias,ifq)) end do end do !$OMP END PARALLEL DO call freethd(nthd) if (.not.spinpol) return ! partial Fourier transform of magnetisation to Q-space call rfzfftq(-1,ndmag,ngtc,magrmt,magrir,magqmt,magqir) ! convert magnetisation to spherical harmonics call holdthd(nfqrz,nthd) !$OMP PARALLEL DO DEFAULT(SHARED) & !$OMP PRIVATE(idm,ias,is) & !$OMP NUM_THREADS(nthd) do ifq=1,nfqrz do idm=1,ndmag do ias=1,natmtot is=idxis(ias) call zfshtip(nrcmt(is),nrcmti(is),magqmt(:,ias,idm,ifq)) end do end do end do !$OMP END PARALLEL DO call freethd(nthd) end subroutine elk-9.6.8/src/PaxHeaders/writeengyu.f900000644000000000000000000000013114626155521014706 xustar0030 mtime=1717099345.419994116 29 atime=1717099343.84498563 30 ctime=1717099345.419994116 elk-9.6.8/src/writeengyu.f900000644002504400250440000000063714626155521017437 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 end subroutine elk-9.6.8/src/PaxHeaders/rfzfftq.f900000644000000000000000000000013214626155521014167 xustar0030 mtime=1717099345.421994127 30 atime=1717099343.846985641 30 ctime=1717099345.421994127 elk-9.6.8/src/rfzfftq.f900000644002504400250440000000365514626155521016722 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,ngt,rfmt,rfir,zfmt,zfir) use modmain use modomp implicit none ! arguments integer, intent(in) :: sgn,nf,ngt real(8), intent(inout) :: rfmt(npcmtmax,natmtot,nf,nqpt) real(8), intent(inout) :: rfir(ngt,nf,nqpt) complex(8), intent(inout) :: zfmt(npcmtmax,natmtot,nf,nfqrz) complex(8), intent(inout) :: zfir(ngt,nf,nfqrz) ! local variables integer jf,is,ias,npc,i,nthd ! automatic arrays real(8) r(nqpt) complex(8) z(nfqrz) call holdthd(npcmtmax+ngt,nthd) !$OMP PARALLEL DEFAULT(SHARED) & !$OMP PRIVATE(r,z,jf,ias,is,npc,i) & !$OMP NUM_THREADS(nthd) if (sgn == -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) !$OMP DO do i=1,npc r(1:nqpt)=rfmt(i,ias,jf,1:nqpt) call rzfftifc(3,ngridq,-1,r,z) zfmt(i,ias,jf,1:nfqrz)=z(1:nfqrz) end do !$OMP END DO NOWAIT end do ! Fourier transform the interstitial function !$OMP DO do i=1,ngt r(1:nqpt)=rfir(i,jf,1:nqpt) call rzfftifc(3,ngridq,-1,r,z) zfir(i,jf,1:nfqrz)=z(1:nfqrz) end do !$OMP END DO NOWAIT ! end loop over number of functions end do else ! loop over the number of functions do jf=1,nf do ias=1,natmtot is=idxis(ias) npc=npcmt(is) !$OMP DO do i=1,npc z(1:nfqrz)=zfmt(i,ias,jf,1:nfqrz) call rzfftifc(3,ngridq,1,r,z) rfmt(i,ias,jf,1:nqpt)=r(1:nqpt) end do !$OMP END DO NOWAIT end do !$OMP DO do i=1,ngt z(1:nfqrz)=zfir(i,jf,1:nfqrz) call rzfftifc(3,ngridq,1,r,z) rfir(i,jf,1:nqpt)=r(1:nqpt) end do !$OMP END DO NOWAIT ! end loop over number of functions end do end if !$OMP END PARALLEL call freethd(nthd) end subroutine elk-9.6.8/src/PaxHeaders/rhocoreu.f900000644000000000000000000000013214626155521014333 xustar0030 mtime=1717099345.423994138 30 atime=1717099343.848985652 30 ctime=1717099345.423994138 elk-9.6.8/src/rhocoreu.f900000644002504400250440000000225014626155521017054 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) end subroutine elk-9.6.8/src/PaxHeaders/eveqnulr.f900000644000000000000000000000013214626155521014346 xustar0030 mtime=1717099345.425994149 30 atime=1717099343.851985668 30 ctime=1717099345.425994149 elk-9.6.8/src/eveqnulr.f900000644002504400250440000000126214626155521017071 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) ! local variables real(8) ts0,ts1 ! generate the ultra long-range Hamiltonian call timesec(ts0) call genhmlu(ik0,evecu) call timesec(ts1) !$OMP ATOMIC timemat=timemat+ts1-ts0 ! find the eigenvalues and vectors call timesec(ts0) call eveqnzh(nstulr,nstulr,evecu,evalu(:,ik0)) call timesec(ts1) !$OMP ATOMIC timesv=timesv+ts1-ts0 end subroutine elk-9.6.8/src/PaxHeaders/rhomaguk.f900000644000000000000000000000013014626155521014320 xustar0029 mtime=1717099345.42799416 30 atime=1717099343.853985679 29 ctime=1717099345.42799416 elk-9.6.8/src/rhomaguk.f900000644002504400250440000001161014626155521017043 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(omp_lock_kind), intent(inout) :: lock(nqpt) complex(8), intent(in) :: evecu(nstulr,nstulr) ! local variables integer ik,ikpa,jkpa integer ist,jst,i,j integer ngk0,is,ias integer npc,ir,nthd real(8) ts0,ts1 real(4) wo ! automatic arrays complex(8) zfft(nqpt) ! allocatable arrays complex(8), allocatable :: apwalm(:,:,:,:),evecfv(:,:),evecsv(:,:) complex(8), allocatable :: evectv(:,:,:),evecsvt(:,:) complex(4), allocatable :: wfmt(:,:,:,:),wfir(:,:,:) call timesec(ts0) ! central k-point ik=(ik0-1)*nkpa+1 ! number of G+k-vectors for central k-point ngk0=ngk(1,ik) ! 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) allocate(evectv(nstsv,nstsv,nqpt),evecsvt(nstsv,nstsv)) allocate(wfmt(npcmtmax,natmtot,nspinor,nstsv),wfir(ngtc,nspinor,nstsv)) do jkpa=1,nkpa do jst=1,nstsv j=(jkpa-1)*nstsv+jst do ist=1,nstsv zfft(:)=0.d0 do ikpa=1,nkpa i=(ikpa-1)*nstsv+ist ! store the long-range state in FFT Q-space zfft(iqfft(ikpa))=evecu(i,j) end do ! Fourier transform to R-space call zfftifc(3,ngridq,1,zfft) evectv(ist,jst,:)=zfft(:) end do end do ! loop over R-points do ir=1,nqpt ! convert third-variational states to second-variational states call zgemm('N','N',nstsv,nstsv,nstsv,zone,evecsv,nstsv,evectv(:,:,ir), & nstsv,zzero,evecsvt,nstsv) ! generate the wavefunctions in single-precision call genwfsv_sp(.false.,.false.,nstsv,[0],ngdgc,igfc,ngk0,igkig(:,1,ik), & apwalm,evecfv,evecsvt,wfmt,ngtc,wfir) ! parallel loop over states call holdthd(nstsv,nthd) !$OMP PARALLEL DO DEFAULT(SHARED) & !$OMP PRIVATE(j,wo,ias,is,npc) & !$OMP NUM_THREADS(nthd) do jst=1,nstsv j=(jkpa-1)*nstsv+jst wo=occulr(j,ik0)*wkpt(ik) if (abs(wo) < epsocc) cycle ! add to the density and magnetisation call omp_set_lock(lock(ir)) ! muffin-tin part do ias=1,natmtot is=idxis(ias) npc=npcmt(is) if (spinpol) then if (ncmag) then call rmk1(npc,wo,wfmt(:,ias,1,jst),wfmt(:,ias,2,jst), & rhormt(:,ias,ir),magrmt(:,ias,1,ir),magrmt(:,ias,2,ir), & magrmt(:,ias,3,ir)) else call rmk2(npc,wo,wfmt(:,ias,1,jst),wfmt(:,ias,2,jst), & rhormt(:,ias,ir),magrmt(:,ias,1,ir)) end if else call rmk3(npc,wo,wfmt(:,ias,1,jst),rhormt(:,ias,ir)) end if end do ! interstitial part if (spinpol) then if (ncmag) then call rmk1(ngtc,wo,wfir(:,1,jst),wfir(:,2,jst),rhorir(:,ir), & magrir(:,1,ir),magrir(:,2,ir),magrir(:,3,ir)) else call rmk2(ngtc,wo,wfir(:,1,jst),wfir(:,2,jst),rhorir(:,ir), & magrir(:,1,ir)) end if else call rmk3(ngtc,wo,wfir(:,1,jst),rhorir(:,ir)) end if call omp_unset_lock(lock(ir)) end do !$OMP END PARALLEL DO call freethd(nthd) ! end loop over R-points end do end do deallocate(apwalm,evecfv,evecsv) deallocate(evectv,evecsvt,wfmt,wfir) call timesec(ts1) !$OMP ATOMIC timerho=timerho+ts1-ts0 return contains pure subroutine rmk1(n,wo,wf1,wf2,rho,mag1,mag2,mag3) implicit none ! arguments integer, intent(in) :: n real(4), intent(in) :: wo complex(4), intent(in) :: wf1(n),wf2(n) real(8), intent(inout) :: rho(n),mag1(n),mag2(n),mag3(n) ! local variables integer i real(4) wo2,t1,t2 real(4) a1,b1,a2,b2 wo2=2.e0*wo !$OMP SIMD PRIVATE(a1,b1,a2,b2,t1,t2) SIMDLEN(8) do i=1,n a1=real(wf1(i)); b1=aimag(wf1(i)) a2=real(wf2(i)); b2=aimag(wf2(i)) t1=a1**2+b1**2; t2=a2**2+b2**2 mag1(i)=mag1(i)+wo2*(a1*a2+b1*b2) mag2(i)=mag2(i)+wo2*(a1*b2-b1*a2) mag3(i)=mag3(i)+wo*(t1-t2) rho(i)=rho(i)+wo*(t1+t2) end do end subroutine pure subroutine rmk2(n,wo,wf1,wf2,rho,mag) implicit none ! arguments integer, intent(in) :: n real(4), intent(in) :: wo complex(4), intent(in) :: wf1(n),wf2(n) real(8), intent(inout) :: rho(n),mag(n) ! local variables integer i real(4) t1,t2 !$OMP SIMD PRIVATE(t1,t2) SIMDLEN(8) do i=1,n t1=real(wf1(i))**2+aimag(wf1(i))**2 t2=real(wf2(i))**2+aimag(wf2(i))**2 mag(i)=mag(i)+wo*(t1-t2) rho(i)=rho(i)+wo*(t1+t2) end do end subroutine pure subroutine rmk3(n,wo,wf,rho) implicit none ! arguments integer, intent(in) :: n real(4), intent(in) :: wo complex(4), intent(in) :: wf(n) real(8), intent(inout) :: rho(n) rho(:)=rho(:)+wo*(real(wf(:))**2+aimag(wf(:))**2) end subroutine end subroutine elk-9.6.8/src/PaxHeaders/genhmlu.f900000644000000000000000000000012714626155521014150 xustar0029 mtime=1717099345.42999417 29 atime=1717099343.85598569 29 ctime=1717099345.42999417 elk-9.6.8/src/genhmlu.f900000644002504400250440000000716314626155521016675 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,ngk0,igk integer i1,i2,i3,j1,j2,j3,i,j ! automatic arrays complex(8) vmat(nstsv,nstsv) ! allocatable arrays complex(8), allocatable :: apwalm(:,:,:,:),evecfv(:,:),evecsv(:,:) complex(4), allocatable :: wfmt(:,:,:,:),wfir(:,:,:),wfgk(:,:,:) complex(8), allocatable :: hdb(:,:,:) ! central k-point ik=(ik0-1)*nkpa+1 ! number of G+k-vectors for central k-point ngk0=ngk(1,ik) ! 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(ngk0,vgkc(:,:,1,ik),gkc(:,1,ik),sfacgk(:,:,1,ik),apwalm) ! calculate the wavefunctions for all states of the central k-point allocate(wfmt(npcmtmax,natmtot,nspinor,nstsv),wfgk(ngk0,nspinor,nstsv)) call genwfsv_sp(.false.,.true.,nstsv,[0],ngridg,igfft,ngk0,igkig(:,1,ik), & apwalm,evecfv,evecsv,wfmt,ngk0,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.e0 do igk=1,ngk0 wfir(igfft(igkig(igk,1,ik)),ispn,ist)=wfgk(igk,ispn,ist) end do call cfftifc(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 DO DEFAULT(SHARED) & !$OMP PRIVATE(vmat,iq,i,j,ikpa,jkpa) & !$OMP PRIVATE(j1,j2,j3,ist,jst,i1,i2,i3) & !$OMP NUM_THREADS(nthd) do ifq=1,nfqrz iq=iqrzf(ifq) if (spinpol) then call genzvbmatk(vsqmt(:,:,ifq),vsqir(:,ifq),bsqmt(:,:,:,ifq), & bsqir(:,:,ifq),ngk0,igkig(:,1,ik),wfmt,wfir,wfgk,vmat) else call genzvmatk(vsqmt(:,:,ifq),vsqir(:,ifq),ngk0,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) == iq) then ! copy matrix elements for kappa_i - kappa_j in Q-point set call zcopy(nstsv,vmat(:,jst),1,h(i,j),1) else if (ivqiq(-i1,-i2,-i3) == iq) then ! otherwise use conjugate transpose do ist=1,nstsv h(i,j)=conjg(vmat(jst,ist)) i=i+1 end do end if end do ! copy only the upper triangular part for Q=0 if (ifq == 1) then i=(jkpa-1)*nstsv+1 call zcopy(jst,vmat(:,jst),1,h(i,j),1) end if end do end do end do !$OMP END PARALLEL DO call freethd(nthd) deallocate(wfmt,wfir,wfgk) ! add the second-variational eigenvalues of k+kappa to the diagonal but in the ! basis of the states at k do ist=1,nstsv h(ist,ist)=h(ist,ist)+evalsv(ist,ik) end do allocate(hdb(nstsv,nstsv,2:nkpa)) call gethdbulr(ik0,hdb) do ikpa=2,nkpa i=(ikpa-1)*nstsv do jst=1,nstsv j=i+jst do ist=1,jst h(i+ist,j)=h(i+ist,j)+hdb(ist,jst,ikpa) end do end do end do deallocate(hdb) end subroutine elk-9.6.8/src/PaxHeaders/potxcu.f900000644000000000000000000000013014626155521014025 xustar0030 mtime=1717099345.430994176 28 atime=1717099343.8579857 30 ctime=1717099345.430994176 elk-9.6.8/src/potxcu.f900000644002504400250440000001142614626155521016555 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_(:,:),rhoir_(:) real(8), allocatable :: magmt_(:,:,:),magir_(:,:) 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_,rhoir_,vxcmt_) & !$OMP PRIVATE(magmt_,magir_,bxcmt_) & !$OMP PRIVATE(ias,is,idm) & !$OMP NUM_THREADS(nthd) allocate(rhomt_(npmtmax,natmtot),rhoir_(ngtot)) allocate(vxcmt_(npmtmax,natmtot)) if (spinpol) then allocate(magmt_(npmtmax,natmtot,ndmag),magir_(ngtot,ndmag)) allocate(bxcmt_(npmtmax,natmtot,ndmag)) end if !$OMP DO do ir=1,nqpt ! distribute among MPI processes if (mod(ir-1,np_mpi) /= lp_mpi) cycle ! convert muffin-tin density and magnetisation from coarse to fine radial mesh do ias=1,natmtot is=idxis(ias) rhomt_(1:npcmt(is),ias)=rhormt(1:npcmt(is),ias,ir) end do call rfmtctof(rhomt_) do idm=1,ndmag do ias=1,natmtot is=idxis(ias) magmt_(1:npcmt(is),ias,idm)=magrmt(1:npcmt(is),ias,idm,ir) end do call rfmtctof(magmt_(:,:,idm)) end do ! convert interstitial density and magnetisation from coarse to fine grid call rfirctof(rhorir(:,ir),rhoir_) do idm=1,ndmag call rfirctof(magrir(:,idm,ir),magir_(:,idm)) end do ! calculate the exchange-correlation potential and magnetic field call potxc(.false.,xctype,rhomt_,rhoir_,magmt_,magir_,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_,rhoir_,vxcmt_) if (spinpol) deallocate(magmt_,magir_,bxcmt_) !$OMP END PARALLEL call freethd(nthd) ! broadcast potentials and fields to every MPI process if (np_mpi > 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,ngtot,vxcrmt,vxcrir,vxcqmt,vxcqir) deallocate(vxcrmt,vxcrir) ! add V_xc and external Coulomb potential to Kohn-Sham potential call holdthd(2*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) if (spinpol) then ! Fourier transform the exchange-correlation magnetic field to Q-space call rfzfftq(-1,ndmag,ngtot,bxcrmt,bxcrir,bsqmt,bsqir) deallocate(bxcrmt,bxcrir) ! add external magnetic fields call holdthd(2*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 end subroutine elk-9.6.8/src/PaxHeaders/writeinfou.f900000644000000000000000000000013214626155521014700 xustar0030 mtime=1717099345.432994186 30 atime=1717099343.860985717 30 ctime=1717099345.432994186 elk-9.6.8/src/writeinfou.f900000644002504400250440000000335714626155521017432 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 /= 0) then write(fnum,*) write(fnum,'("Fixed spin moment (FSM) calculation, type : ",I4)') fsmtype if (fsmtype < 0) then write(fnum,'(" only moment direction is fixed")') end if end if write(fnum,*) write(fnum,'("Hamiltonian matrix size : ",I8)') nstulr flush(fnum) end subroutine elk-9.6.8/src/PaxHeaders/zfplot.f900000644000000000000000000000013214626155521014023 xustar0030 mtime=1717099345.434994197 30 atime=1717099343.862985727 30 ctime=1717099345.434994197 elk-9.6.8/src/zfplot.f900000644002504400250440000001001314626155521016540 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 < rmt2) then r=sqrt(t1) call genylmv(.false.,lmaxo,v5,ylm) do irc=1,nrc if (rcmt(irc,is) >= r) then if (irc <= 3) then irc0=1 else if (irc > nrc-2) then irc0=nrc-3 else irc0=irc-2 end if r=max(r,rcmt(1,is)) if (irc0 <= 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 end subroutine pure 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)) end function end subroutine elk-9.6.8/src/PaxHeaders/vclqinit.f900000644000000000000000000000013214626155521014336 xustar0030 mtime=1717099345.436994208 30 atime=1717099343.864985738 30 ctime=1717099345.436994208 elk-9.6.8/src/vclqinit.f900000644002504400250440000000113214626155521017055 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 end subroutine elk-9.6.8/src/PaxHeaders/writechgrmt.f900000644000000000000000000000013214626155521015044 xustar0030 mtime=1717099345.438994219 30 atime=1717099343.867985754 30 ctime=1717099345.438994219 elk-9.6.8/src/writechgrmt.f900000644002504400250440000000131314626155521017564 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) end subroutine elk-9.6.8/src/PaxHeaders/initulr.f900000644000000000000000000000013014626155521014171 xustar0029 mtime=1717099345.44099423 30 atime=1717099343.869985765 29 ctime=1717099345.44099423 elk-9.6.8/src/initulr.f900000644002504400250440000001202214626155521016712 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,jq,ifq,ig integer n,i,i1,i2,i3,nthd real(8) t1 ! allocatable arrays integer, allocatable :: idx(:) real(8), allocatable :: jlgqr(:,:) ! allocate long-range density and magnetisation arrays if (allocated(rhormt)) deallocate(rhormt) allocate(rhormt(npcmtmax,natmtot,nqpt)) if (allocated(rhorir)) deallocate(rhorir) allocate(rhorir(ngtc,nqpt)) if (allocated(magrmt)) deallocate(magrmt) if (allocated(magrir)) deallocate(magrir) if (spinpol) then allocate(magrmt(npcmtmax,natmtot,ndmag,nqpt)) allocate(magrir(ngtc,ndmag,nqpt)) end if if (allocated(rhoqmt)) deallocate(rhoqmt) allocate(rhoqmt(npcmtmax,natmtot,nfqrz)) if (allocated(rhoqir)) deallocate(rhoqir) allocate(rhoqir(ngtc,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(ngtc,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(bfcq)) deallocate(bfcq) if (allocated(bfcmtq)) deallocate(bfcmtq) if (spinpol) then allocate(bfcq(ndmag,nfqrz)) allocate(bfcmtq(natmtot,ndmag,nfqrz)) end if ! combined target array for Kohn-Sham potential and magnetic field if (allocated(vsbsq)) deallocate(vsbsq) n=(npcmtmax*natmtot+ngtot)*nfqrz if (spinpol) n=n*(1+ndmag) allocate(vsbsq(n)) ! zero the array vsbsq(:)=0.d0 ! associate pointer arrays with target vsqmt(1:npcmtmax,1:natmtot,1:nfqrz) => vsbsq(1:) i=npcmtmax*natmtot*nfqrz+1 vsqir(1:ngtot,1:nfqrz) => vsbsq(i:) if (spinpol) then i=i+ngtot*nfqrz bsqmt(1:npcmtmax,1:natmtot,1:ndmag,1:nfqrz) => vsbsq(i:) i=i+npcmtmax*natmtot*ndmag*nfqrz bsqir(1:ngtot,1:ndmag,1:nfqrz) => vsbsq(i:) 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)) if (allocated(expqmt)) deallocate(expqmt) allocate(expqmt(npcmtmax,natmtot,nqpt)) call holdthd(nfqrz,nthd) !$OMP PARALLEL DEFAULT(SHARED) & !$OMP PRIVATE(jlgqr,iq,ig,t1) & !$OMP PRIVATE(i1,i2,i3,jq) & !$OMP NUM_THREADS(nthd) allocate(jlgqr(njcmax,nspecies)) !$OMP DO 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(.true.,lmaxo,vgqc(:,ig,ifq),ylmgq(:,ig,ifq)) end do ! generate the spherical Bessel functions j_l(|G+Q|r) call genjlgpr(1,gqc(1,ifq),jlgqr) ! 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 > 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)) ! generate phase factor functions exp(iQ.r) in each muffin-tin call genexpmt(1,jlgqr,ylmgq(:,:,ifq),ngvec,sfacgq(:,:,ifq),expqmt(:,:,iq)) ! store the phase factor function for -Q i1=-ivq(1,iq); i2=-ivq(2,iq); i3=-ivq(3,iq) if ((i1 >= intq(1,1)).and.(i1 <= intq(2,1)).and. & (i2 >= intq(1,2)).and.(i2 <= intq(2,2)).and. & (i3 >= intq(1,3)).and.(i3 <= intq(2,3)).and.(ifq > 1)) then jq=ivqiq(i1,i2,i3) expqmt(:,:,jq)=conjg(expqmt(:,:,iq)) end if end do !$OMP END DO deallocate(jlgqr) !$OMP END PARALLEL 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) ! zero the timing variables timemat=0.d0 timesv=0.d0 timerho=0.d0 timepot=0.d0 end subroutine elk-9.6.8/src/PaxHeaders/writemomrmt.f900000644000000000000000000000013014626155521015071 xustar0029 mtime=1717099345.44299424 30 atime=1717099343.871985776 29 ctime=1717099345.44299424 elk-9.6.8/src/writemomrmt.f900000644002504400250440000000132414626155521017615 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) end subroutine elk-9.6.8/src/PaxHeaders/writestulr.f900000644000000000000000000000013214626155521014731 xustar0030 mtime=1717099345.444994251 30 atime=1717099343.873985787 30 ctime=1717099345.444994251 elk-9.6.8/src/writestulr.f900000644002504400250440000000307214626155521017455 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(100,file='STATE_ULR.OUT',form='UNFORMATTED',action='WRITE') write(100) version write(100) natmtot write(100) npcmtmax write(100) ngtc write(100) ngtot write(100) ndmag write(100) fsmtype write(100) nqpt write(100) nfqrz write(100) ivq write(100) iqrzf ! write the ultra long-range density in Q-space do ifq=1,nfqrz write(100) rhoqmt(:,:,ifq) write(100) rhoqir(:,ifq) end do ! write the Kohn-Sham effective potential in Q-space do ifq=1,nfqrz write(100) vsqmt(:,:,ifq) write(100) vsqir(:,ifq) end do ! write the external Coulomb potential in Q-space do ifq=1,nfqrz write(100) vclq(ifq) end do if (spinpol) then ! write the magnetisation in Q-space do ifq=1,nfqrz do idm=1,ndmag write(100) magqmt(:,:,idm,ifq) write(100) 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(100) bsqmt(:,:,idm,ifq) write(100) bsqir(:,idm,ifq) end do end do ! write the external magnetic fields in Q-space do ifq=1,nfqrz do idm=1,ndmag write(100) bfcq(idm,ifq) write(100) bfcmtq(:,idm,ifq) end do end do ! write fixed spin moment magnetic fields if (fsmtype /= 0) then write(100) bfsmc write(100) bfsmcmt end if end if close(100) end subroutine elk-9.6.8/src/PaxHeaders/readstulr.f900000644000000000000000000000013214626155521014512 xustar0030 mtime=1717099345.446994262 30 atime=1717099343.876985803 30 ctime=1717099345.446994262 elk-9.6.8/src/readstulr.f900000644002504400250440000001211314626155521017232 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_,ngtc_,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(100,file='STATE_ULR.OUT',form='UNFORMATTED',action='READ',status='OLD', & iostat=ios) if (ios /= 0) then write(*,*) write(*,'("Error(readstulr): error opening STATE_ULR.OUT")') write(*,*) stop end if read(100) version_ if ((version(1) /= version_(1)).or.(version(2) /= version_(2)).or. & (version(3) /= 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(100) natmtot_ if (natmtot /= natmtot_) then write(*,*) write(*,'("Error(readstulr): differing natmtot")') write(*,'(" current : ",I6)') natmtot write(*,'(" STATE_ULR.OUT : ",I6)') natmtot_ write(*,*) stop end if read(100) npcmtmax_ if (npcmtmax /= npcmtmax_) then write(*,*) write(*,'("Error(readstulr): differing npcmtmax")') write(*,'(" current : ",I6)') npcmtmax write(*,'(" STATE_ULR.OUT : ",I6)') npcmtmax_ write(*,*) stop end if read(100) ngtc_ if (ngtc /= ngtc_) then write(*,*) write(*,'("Error(readstulr): differing ngtc")') write(*,'(" current : ",I8)') ngtc write(*,'(" STATE_ULR.OUT : ",I8)') ngtc_ write(*,*) stop end if read(100) ngtot_ if (ngtot /= ngtot_) then write(*,*) write(*,'("Error(readstulr): differing ngtot")') write(*,'(" current : ",I8)') ngtot write(*,'(" STATE_ULR.OUT : ",I8)') ngtot_ write(*,*) stop end if read(100) ndmag_ if (ndmag /= ndmag_) then write(*,*) write(*,'("Error(readstulr): differing ndmag")') write(*,'(" current : ",I1)') ndmag write(*,'(" STATE_ULR.OUT : ",I1)') ndmag_ write(*,*) stop end if read(100) fsmtype_ if (fsmtype /= fsmtype_) then write(*,*) write(*,'("Error(readstulr): differing fsmtype")') write(*,'(" current : ",I4)') fsmtype write(*,'(" STATE_ULR.OUT : ",I4)') fsmtype_ write(*,*) stop end if read(100) nqpt_ if (nqpt_ <= 0) then write(*,*) write(*,'("Error(readstulr): nqpt_ <= 0 : ",I8)') nqpt_ write(*,*) stop end if read(100) nfqrz_ if (nfqrz_ <= 0) then write(*,*) write(*,'("Error(readstulr): nfqrz_ <= 0 : ",I8)') nfqrz_ write(*,*) stop end if allocate(ivq_(3,nqpt_),iqrzf_(nfqrz_),map(nfqrz_)) read(100) ivq_ read(100) 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 >= intq(1,1)).and.(i1 <= intq(2,1)).and. & (i2 >= intq(1,2)).and.(i2 <= intq(2,2)).and. & (i3 >= intq(1,3)).and.(i3 <= 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 > 0) then read(100) rhoqmt(:,:,jfq) read(100) rhoqir(:,jfq) else read(100) zfmt read(100) zfir(1:ngtc) 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 > 0) then read(100) vsqmt(:,:,jfq) read(100) vsqir(:,jfq) else read(100) zfmt read(100) 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 > 0) then read(100) vclq(jfq) else read(100) 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 > 0) then do idm=1,ndmag read(100) magqmt(:,:,idm,jfq) read(100) magqir(:,idm,jfq) end do else do idm=1,ndmag read(100) zfmt read(100) zfir(1:ngtc) end do end if end do bsqmt(:,:,:,:)=0.d0 bsqir(:,:,:)=0.d0 do ifq=1,nfqrz_ jfq=map(ifq) if (jfq > 0) then do idm=1,ndmag read(100) bsqmt(:,:,idm,jfq) read(100) bsqir(:,idm,jfq) end do else do idm=1,ndmag read(100) zfmt read(100) 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 > 0) then do idm=1,ndmag read(100) bfcq(idm,jfq) read(100) bfcmtq(:,idm,jfq) end do else do idm=1,ndmag read(100) z1 read(100) zv end do end if end do ! read fixed spin moment effective fields if (fsmtype /= 0) then read(100) bfsmc read(100) bfsmcmt end if end if close(100) deallocate(map,zfmt,zfir) end subroutine elk-9.6.8/src/PaxHeaders/potefieldu.f900000644000000000000000000000013214626155521014645 xustar0030 mtime=1717099345.448994273 30 atime=1717099343.878985814 30 ctime=1717099345.448994273 elk-9.6.8/src/potefieldu.f900000644002504400250440000000142314626155521017367 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(:))) < 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) end subroutine elk-9.6.8/src/PaxHeaders/puthdbulr.f900000644000000000000000000000013214626155521014516 xustar0030 mtime=1717099345.450994284 30 atime=1717099343.880985824 30 ctime=1717099345.450994284 elk-9.6.8/src/puthdbulr.f900000644002504400250440000000577014626155521017251 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 puthdbulr(ik0) use modmain use modulr use modramdisk implicit none ! arguments integer, intent(in) :: ik0 ! local variables integer ik,ikk,ikpa integer ist,recl real(8) t1 ! allocatable arrays complex(8), allocatable :: apwalm(:,:,:,:),evecfv(:,:),evecsv(:,:) complex(8), allocatable :: wfmt(:,:,:,:),wfir(:,:,:) complex(8), allocatable :: wfmtk(:,:,:,:),wfgkk(:,:,:) complex(8), allocatable :: hdb(:,:,:),ok(:,:),b(:,:) ! 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) ! calculate the wavefunctions for all states of the central k-point allocate(wfmt(npcmtmax,natmtot,nspinor,nstsv),wfir(ngtot,nspinor,nstsv)) call genwfsv(.false.,.false.,nstsv,[0],ngridg,igfft,ngk(1,ik),igkig(:,1,ik), & apwalm,evecfv,evecsv,wfmt,ngtot,wfir) ! compute the diagonal blocks of the ultra long-range Hamiltonian in the basis ! of the states at the central k-point allocate(wfmtk(npcmtmax,natmtot,nspinor,nstsv),wfgkk(ngkmax,nspinor,nstsv)) allocate(hdb(nstsv,nstsv,2:nkpa),ok(nstsv,nstsv),b(nstsv,nstsv)) do ikpa=2,nkpa ikk=(ik0-1)*nkpa+ikpa call getevecfv('.OUT',ikk,vkl(:,ikk),vgkl(:,:,:,ikk),evecfv) call getevecsv('.OUT',ikk,vkl(:,ikk),evecsv) call match(ngk(1,ikk),vgkc(:,:,1,ikk),gkc(:,1,ikk),sfacgk(:,:,1,ikk),apwalm) call genwfsv(.false.,.true.,nstsv,[0],ngridg,igfft,ngk(:,ikk),igkig(:,:,ikk),& apwalm,evecfv,evecsv,wfmtk,ngkmax,wfgkk) ! compute the overlap matrix between the states at k and k+kappa call genolpq(nstsv,expqmt(:,:,ikpa),ngk(:,ikk),igkig(:,:,ikk),wfmt,wfir, & wfmtk,wfgkk,ok) ! use singular value decompostion to make the matrix strictly unitary call unitary(nstsv,ok) ! apply the overlap matrix from the right to the eigenvalues at k+kappa do ist=1,nstsv t1=evalsv(ist,ikk) b(ist,:)=t1*ok(ist,:) end do ! apply the conjugate transpose of the overlap matrix from the left to form the ! Hamiltonian matrix in the basis of states at k call zgemm('C','N',nstsv,nstsv,nstsv,zone,ok,nstsv,b,nstsv,zzero, & hdb(:,:,ikpa),nstsv) end do ! determine the record length inquire(iolength=recl) vkl(:,1),nstsv,nkpa,hdb !$OMP CRITICAL(u300) open(300,file='HDBULR.OUT',form='UNFORMATTED',access='DIRECT',recl=recl) write(300,rec=ik0) vkl(:,ik),nstsv,nkpa,hdb close(300) ! write to RAM disk if required if (ramdisk) then call putrd('HDBULR.OUT',ik0,v1=vkl(:,ik),n1=nstsv,n2=nkpa, & nzv=nstsv*nstsv*(nkpa-1),zva=hdb) end if !$OMP END CRITICAL(u300) deallocate(apwalm,evecfv,evecsv) deallocate(wfmt,wfir,wfmtk,wfgkk) deallocate(hdb,ok,b) end subroutine elk-9.6.8/src/PaxHeaders/gethdbulr.f900000644000000000000000000000013214626155521014465 xustar0030 mtime=1717099345.452994294 30 atime=1717099343.882985835 30 ctime=1717099345.452994294 elk-9.6.8/src/gethdbulr.f900000644002504400250440000000322014626155521017204 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 gethdbulr(ik0,hdb) use modmain use modulr use modramdisk implicit none ! arguments integer, intent(in) :: ik0 complex(8), intent(out) :: hdb(nstsv,nstsv,2:nkpa) ! local variables logical tgs integer nstsv_,nkpa_ integer ik,recl real(8) vkl_(3),t1 !$OMP CRITICAL(u300) ! read from RAM disk if required if (ramdisk) then call getrd('HDBULR.OUT',ik0,tgs,v1=vkl_,n1=nstsv_,n2=nkpa_, & nzv=nstsv*nstsv*(nkpa-1),zva=hdb) if (tgs) goto 10 end if ! find the record length inquire(iolength=recl) vkl_,nstsv_,nkpa_,hdb open(300,file='HDBULR.OUT',form='UNFORMATTED',access='DIRECT',recl=recl) read(300,rec=ik0) vkl_,nstsv_,nkpa_,hdb close(300) 10 continue !$OMP END CRITICAL(u300) ! central k-point ik=(ik0-1)*nkpa+1 t1=abs(vkl(1,ik)-vkl_(1))+abs(vkl(2,ik)-vkl_(2))+abs(vkl(3,ik)-vkl_(3)) if (t1 > epslat) then write(*,*) write(*,'("Error(gethdbulr): differing vectors for k-point ",I8)') ik0 write(*,'(" current : ",3G18.10)') vkl(:,ik) write(*,'(" HDBULR.OUT : ",3G18.10)') vkl_ write(*,*) stop end if if (nstsv /= nstsv_) then write(*,*) write(*,'("Error(gethdbulr): differing nstsv for k-point ",I8)') ik0 write(*,'(" current : ",I8)') nstsv write(*,'(" HDBULR.OUT : ",I8)') nstsv_ write(*,*) stop end if if (nkpa /= nkpa_) then write(*,*) write(*,'("Error(gethdbulr): differing nkpa for k-point ",I8)') ik0 write(*,'(" current : ",I8)') nkpa write(*,'(" HDBULR.OUT : ",I8)') nkpa_ write(*,*) stop end if end subroutine elk-9.6.8/src/PaxHeaders/potuinit.f900000644000000000000000000000013214626155521014360 xustar0030 mtime=1717099345.454994305 30 atime=1717099343.885985851 30 ctime=1717099345.454994305 elk-9.6.8/src/potuinit.f900000644002504400250440000000345714626155521017113 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 integer nrc,nrci,npc real(8) cb,t1 ! automatic arrays real(8) rfmt(npcmtmax) ! set the Q=0 muffin-tin potential equal to that of the normal ground-state do ias=1,natmtot is=idxis(ias) nrc=nrcmt(is) nrci=nrcmti(is) npc=npcmt(is) call rfmtftoc(nrc,nrci,vsmt(:,ias),rfmt) call rbshtip(nrc,nrci,rfmt) vsqmt(1:npc,ias,1)=rfmt(1:npc) end do ! zero the muffin-tin potential for non-zero Q do ifq=2,nfqrz do ias=1,natmtot is=idxis(ias) vsqmt(1:npcmt(is),ias,ifq)=0.d0 end do end do ! repeat for the interstitial potential vsqir(:,1)=vsir(:) vsqir(:,2:nfqrz)=0.d0 if (.not.spinpol) return ! set the Q=0 muffin-tin magnetic field equal to that of the normal ground-state do idm=1,ndmag do ias=1,natmtot is=idxis(ias) npc=npcmt(is) bsqmt(1:npc,ias,idm,1)=bsmt(1:npc,ias,idm) end do end do ! zero the magnetic field for non-zero Q do ifq=2,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 ! repeat for the interstitial magnetic field bsqir(:,:,1)=bsir(:,:) bsqir(:,:,2:nfqrz)=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)) end subroutine elk-9.6.8/src/PaxHeaders/readvclr.f900000644000000000000000000000013214626155521014307 xustar0030 mtime=1717099345.456994316 30 atime=1717099343.887985862 30 ctime=1717099345.456994316 elk-9.6.8/src/readvclr.f900000644002504400250440000000245314626155521017035 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(:) /= 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 /= i1_).or.(i2 /= i2_).or.(i3 /= 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) end subroutine elk-9.6.8/src/PaxHeaders/genkpakq.f900000644000000000000000000000013214626155521014306 xustar0030 mtime=1717099345.458994327 30 atime=1717099343.889985873 30 ctime=1717099345.458994327 elk-9.6.8/src/genkpakq.f900000644002504400250440000001040214626155521017025 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 (radices 2, 3, 5 and 7) call nfftifc(4,ngridq(1)) call nfftifc(4,ngridq(2)) call nfftifc(4,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 < intkpa(1,1)).or.(i1 > intkpa(2,1)).or. & (i2 < intkpa(1,2)).or.(i2 > intkpa(2,2)).or. & (i3 < intkpa(1,3)).or.(i3 > 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) == 0).and.(ivq(2,iq) == 0).and.(ivq(3,iq) == 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)) where(abs(vql(:,iq)) < epslat) vql(:,iq)=0.d0 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 >= 0) then j1=i1 else j1=ngridq(1)+i1 end if if (i2 >= 0) then j2=i2 else j2=ngridq(2)+i2 end if if (i3 >= 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 >= 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) end subroutine elk-9.6.8/src/PaxHeaders/plotu1d.f900000644000000000000000000000013214626155521014075 xustar0030 mtime=1717099345.460994337 30 atime=1717099343.892985889 30 ctime=1717099345.460994337 elk-9.6.8/src/plotu1d.f900000644002504400250440000000236314626155521016623 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 < 1).or.(nf > 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=ip01d,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) fmin=fmin-t1 fmax=fmax+t1 do iv=1,nvp1d write(fnum2,'(2G18.10)') dvp1d(iv),fmin write(fnum2,'(2G18.10)') dvp1d(iv),fmax write(fnum2,*) end do deallocate(fp) end subroutine elk-9.6.8/src/PaxHeaders/plotu2d.f900000644000000000000000000000013014626155521014074 xustar0030 mtime=1717099345.462994348 28 atime=1717099343.8949859 30 ctime=1717099345.462994348 elk-9.6.8/src/plotu2d.f900000644002504400250440000000236214626155521016623 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 < 1).or.(nf > 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 == 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) end subroutine elk-9.6.8/src/PaxHeaders/plotu3d.f900000644000000000000000000000013214626155521014077 xustar0030 mtime=1717099345.464994359 30 atime=1717099343.896985911 30 ctime=1717099345.464994359 elk-9.6.8/src/plotu3d.f900000644002504400250440000000212114626155521016615 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 < 1).or.(nf > 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) end subroutine elk-9.6.8/src/PaxHeaders/gndstulr.f900000644000000000000000000000013014626155521014345 xustar0029 mtime=1717099345.46699437 30 atime=1717099343.898985921 29 ctime=1717099345.46699437 elk-9.6.8/src/gndstulr.f900000644002504400250440000001711114626155521017072 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 implicit none ! local variables logical twrite integer ik0,ir,lp,nthd integer nmix,nwork,n real(8) dv ! allocatable arrays integer(omp_lock_kind), allocatable :: lock(:) real(8), allocatable :: work(:) complex(8), allocatable :: evecu(:,:) if (xctype(1) < 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 reducek0=reducek reducek=0 ! initialise global variables call init0 call init1 ! write the kappa-points to file call writekpa ! write the k+kappa-points to file call writekpts ! 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 linengy call genapwlofr call gensocfr call genevfsv call occupy ! initialise the ultra long-range variables call initulr if (task == 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 ! write the long-range Hamiltonian diagonal blocks to file call genhdbulr ! size of mixing vector (complex array) nmix=2*size(vsbsq) ! determine the size of the mixer work array nwork=-1 call mixerifc(mixtype,nmix,vsbsq,dv,nwork,work) allocate(work(nwork)) ! initialise the mixer iscl=0 call mixerifc(mixtype,nmix,vsbsq,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 >= 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 ! apply required local operations to the potential and magnetic field call vblocalu ! 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) /= 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 > 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=ngtc*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=ngtc*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 ! mix the old potential and field with the new call mixerifc(mixtype,nmix,vsbsq,dv,nwork,work) ! multiply the RMS change in potential by the number of Q-points dv=dv*dble(nfqrz) ! calculate and add the fixed spin moment effective field (after mixing) call bfieldfsm 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 /= 0) call writefsm(60) ! check for existence of the WRITE file call checkwrite(twrite) ! check self-consistent loop number modulo nwrite if (nwrite >= 1) then if (mod(iscl,nwrite) == 0) twrite=.true. end if ! write STATE_ULR.OUT file if required if (twrite) then call writestulr write(60,*) write(60,'("Wrote STATE_ULR.OUT")') end if end if ! exit self-consistent loop if required if (tlast) goto 10 ! check for convergence if (iscl >= 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 < 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 call checkstop if (tstop) tlast=.true. ! 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 ! output timing information write(60,*) write(60,'("Timings (CPU seconds) :")') write(60,'(" Hamiltonian matrix set up",T40,": ",F12.2)') timemat write(60,'(" eigenvalue equation",T40,": ",F12.2)') timesv write(60,'(" charge density calculation",T40,": ",F12.2)') timerho write(60,'(" potential calculation",T40,": ",F12.2)') timepot write(60,*) write(60,'("+------------------------------+")') write(60,'("| Self-consistent loop stopped |")') write(60,'("+------------------------------+")') if (maxscl > 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,work) ! restore original parameters reducek=reducek0 ! synchronise MPI processes call mpi_barrier(mpicom,ierror) end subroutine elk-9.6.8/src/PaxHeaders/plotulr.f900000644000000000000000000000013014626155521014204 xustar0029 mtime=1717099345.46899438 30 atime=1717099343.901985937 29 ctime=1717099345.46899438 elk-9.6.8/src/plotulr.f900000644002504400250440000000254214626155521016733 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) sm,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 sm=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 > 1) t1=t1*2.d0 sm=sm+t1 end do fp(ip,jf)=sm end do end do deallocate(fpq) end subroutine elk-9.6.8/src/PaxHeaders/potuplot.f900000644000000000000000000000013214626155521014373 xustar0030 mtime=1717099345.470994391 30 atime=1717099343.903985948 30 ctime=1717099345.470994391 elk-9.6.8/src/potuplot.f900000644002504400250440000000302014626155521017110 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 ! 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 do ifq=1,nfqrz do ias=1,natmtot is=idxis(ias) call zfshtip(nrcmt(is),nrcmti(is),vsqmt(:,ias,ifq)) end do 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 end subroutine elk-9.6.8/src/PaxHeaders/potcoulu.f900000644000000000000000000000013114626155521014356 xustar0030 mtime=1717099345.472994402 29 atime=1717099343.90798597 30 ctime=1717099345.472994402 elk-9.6.8/src/potcoulu.f900000644002504400250440000000502514626155521017103 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 ifq,is,ias integer nr,nri,ir integer nrc,nrci,i integer n,lp,nthd ! allocatable arrays complex(8), allocatable :: zrhomt(:,:),zrhoir(:),zvclmt(:,:) call holdthd(nfqrz/np_mpi,nthd) !$OMP PARALLEL DEFAULT(SHARED) & !$OMP PRIVATE(zrhomt,zrhoir,zvclmt) & !$OMP PRIVATE(ias,is,nr,nri) & !$OMP PRIVATE(i,ir,nrc,nrci) & !$OMP NUM_THREADS(nthd) allocate(zrhomt(npmtmax,natmtot),zrhoir(ngtot)) allocate(zvclmt(npmtmax,natmtot)) !$OMP DO do ifq=1,nfqrz ! distribute among MPI processes if (mod(ifq-1,np_mpi) /= lp_mpi) cycle ! convert the complex muffin-tin density from coarse to fine radial mesh do ias=1,natmtot is=idxis(ias) zrhomt(1:npcmt(is),ias)=rhoqmt(1:npcmt(is),ias,ifq) 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 == 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 ! convert the interstitial density from coarse to fine grid call zfirctof(rhoqir(:,ifq),zrhoir) ! solve Poisson's equation in the entire unit cell call zpotcoul(nrmt,nrmti,npmt,nrmtmax,rlmt,ngridg,igfft,ngvec,gqc(:,ifq), & gclgq(:,ifq),ngvec,jlgqrmt(:,:,:,ifq),ylmgq(:,:,ifq),sfacgq(:,:,ifq),zrhoir,& 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),vsqmt(:,ias,ifq)) ! convert to spherical coordinates call zbshtip(nrc,nrci,vsqmt(:,ias,ifq)) end do end do !$OMP END DO deallocate(zrhomt,zrhoir,zvclmt) !$OMP END PARALLEL call freethd(nthd) ! broadcast potentials to every MPI process if (np_mpi > 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 end subroutine elk-9.6.8/src/PaxHeaders/rhouplot.f900000644000000000000000000000013214626155521014361 xustar0030 mtime=1717099345.474994413 30 atime=1717099343.910985986 30 ctime=1717099345.474994413 elk-9.6.8/src/rhouplot.f900000644002504400250440000000322414626155521017104 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 use modomp implicit none ! local variables integer ifq,nthd ! allocatable arrays complex(8), allocatable :: rhoqir_(:,:) ! 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 ! convert interstitial density from coarse to fine grid allocate(rhoqir_(ngtot,nfqrz)) call holdthd(nfqrz,nthd) !$OMP PARALLEL DO DEFAULT(SHARED) & !$OMP NUM_THREADS(nthd) do ifq=1,nfqrz call zfirctof(rhoqir(:,ifq),rhoqir_(:,ifq)) end do !$OMP END PARALLEL DO call freethd(nthd) ! 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 deallocate(rhoqir_) end subroutine elk-9.6.8/src/PaxHeaders/maguplot.f900000644000000000000000000000013214626155521014335 xustar0030 mtime=1717099345.476994424 30 atime=1717099343.912985997 30 ctime=1717099345.476994424 elk-9.6.8/src/maguplot.f900000644002504400250440000000404714626155521017064 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 use modomp implicit none ! local variables integer ifq,idm,nthd ! allocatable arrays complex(8), allocatable :: magqir_(:,:,:) ! initialise universal variables call init0 call init1 if (.not.spinpol) then write(*,*) write(*,'("Error(maguplot): spin-unpolarised calculation")') write(*,*) stop end if ! initialise the ultra long-range variables call initulr ! read in the magnetisation from STATE_ULR.OUT call readstulr ! convert interstitial magnetisation from coarse to fine grid allocate(magqir_(ngtot,ndmag,nfqrz)) call holdthd(nfqrz,nthd) !$OMP PARALLEL DO DEFAULT(SHARED) & !$OMP PRIVATE(idm) & !$OMP NUM_THREADS(nthd) do ifq=1,nfqrz do idm=1,ndmag call zfirctof(magqir(:,idm,ifq),magqir_(:,idm,ifq)) end do end do !$OMP END PARALLEL DO call freethd(nthd) ! 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 == 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 deallocate(magqir_) end subroutine elk-9.6.8/src/PaxHeaders/initw90.f900000644000000000000000000000013214626155521014010 xustar0030 mtime=1717099345.478994434 30 atime=1717099343.915986013 30 ctime=1717099345.478994434 elk-9.6.8/src/initw90.f900000644002504400250440000000312314626155521016531 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 > 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 <= 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 < 1).or.(ist > 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 if (num_wann <= 0) then num_wann=num_bands+num_wann num_wann=max(num_wann,1) end if ! read density and potentials from file call readstate ! 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 end subroutine !EOC elk-9.6.8/src/PaxHeaders/writew90.f900000644000000000000000000000013214626155521014177 xustar0030 mtime=1717099345.480994445 30 atime=1717099343.917986024 30 ctime=1717099345.480994445 elk-9.6.8/src/writew90.f900000644002504400250440000000122714626155521016723 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 .amn file call writew90amn ! write the .mmn file call writew90mmn ! write the .spn file call writew90spn ! write the UNK files if required if (wrtunk) call writew90unk end subroutine elk-9.6.8/src/PaxHeaders/writew90win.f900000644000000000000000000000013114626155521014714 xustar0030 mtime=1717099345.482994456 29 atime=1717099343.92098604 30 ctime=1717099345.482994456 elk-9.6.8/src/writew90win.f900000644002504400250440000000404614626155521017443 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,'("dis_num_iter = ",I8)') dis_num_iter write(50,*) write(50,'("trial_step = ",G18.10)') trial_step ! 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) end subroutine !EOC elk-9.6.8/src/PaxHeaders/writew90eig.f900000644000000000000000000000013214626155521014664 xustar0030 mtime=1717099345.484994467 30 atime=1717099343.922986051 30 ctime=1717099345.484994467 elk-9.6.8/src/writew90eig.f900000644002504400250440000000141714626155521017411 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) end subroutine elk-9.6.8/src/PaxHeaders/setupw90.f900000644000000000000000000000013214626155521014205 xustar0030 mtime=1717099345.486994477 30 atime=1717099343.924986061 30 ctime=1717099345.486994477 elk-9.6.8/src/setupw90.f900000644002504400250440000000355714626155521016741 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) end subroutine elk-9.6.8/src/PaxHeaders/writew90mmn.f900000644000000000000000000000013214626155521014707 xustar0030 mtime=1717099345.488994488 30 atime=1717099343.926986072 30 ctime=1717099345.488994488 elk-9.6.8/src/writew90mmn.f900000644002504400250440000000502514626155521017433 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,vkql(3) 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(:,:) ! 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 do ik=1,nkptnr call genwfsvp(.false.,.false.,num_bands,idxw90,ngridg,igfft,vkl(:,ik),ngp, & igpig,wfmt,ngtot,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(.true.,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) end subroutine elk-9.6.8/src/PaxHeaders/writew90spn.f900000644000000000000000000000013214626155521014720 xustar0030 mtime=1717099345.490994499 30 atime=1717099343.929986088 30 ctime=1717099345.490994499 elk-9.6.8/src/writew90spn.f900000644002504400250440000000245414626155521017447 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 :: evecsv(:,:),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(evecsv(nstsv,nstsv),smat(nstsv,nstsv,2,2)) do ik=1,nkptnr ! generate the spin operator matrix elements call getevecsv(filext,0,vkl(:,ik),evecsv) call gensmatk(evecsv,smat) do j=1,num_bands jst=idxw90(j) do i=1,j ist=idxw90(i) z1=smat(ist,jst,1,2)+smat(ist,jst,2,1) write(50,'(2G18.10)') z1 z1=smat(ist,jst,1,2)-smat(ist,jst,2,1) z1=cmplx(-aimag(z1),dble(z1),8) write(50,'(2G18.10)') z1 z1=smat(ist,jst,1,1)-smat(ist,jst,2,2) write(50,'(2G18.10)') z1 end do end do end do deallocate(evecsv,smat) close(50) write(*,*) write(*,'("Info(writew90spn): created file ",A)') trim(fname) end subroutine elk-9.6.8/src/PaxHeaders/writew90amn.f900000644000000000000000000000013014626155521014671 xustar0029 mtime=1717099345.49299451 30 atime=1717099343.931986099 29 ctime=1717099345.49299451 elk-9.6.8/src/writew90amn.f900000644002504400250440000000143414626155521017417 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2024 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 writew90amn use modmain use modw90 use modrandom implicit none ! local variables integer ik,ist,i real(8) a,b character(256) fname fname=trim(seedname)//'.amn' open(50,file=trim(fname),action='WRITE',form='FORMATTED') write(50,'("Generated by Elk version ",I1.1,".",I1.1,".",I2.2)') version write(50,'(3I6)') num_bands,nkptnr,num_wann do ik=1,nkptnr do i=1,num_wann do ist=1,num_bands a=0.5d0-randomu() b=0.5d0-randomu() write(50,'(3I8,2G18.10)') ist,i,ik,a,b end do end do end do close(50) write(*,*) write(*,'("Info(writew90amn): created file ",A)') trim(fname) end subroutine elk-9.6.8/src/PaxHeaders/writew90unk.f900000644000000000000000000000013114626155521014714 xustar0030 mtime=1717099345.494994521 29 atime=1717099343.93398611 30 ctime=1717099345.494994521 elk-9.6.8/src/writew90unk.f900000644002504400250440000000712714626155521017446 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2024 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 writew90unk use modmain use modw90 use modomp implicit none ! local variables integer ispn,ik,ist,nthd integer is,ias,nrc,nrci,npc integer np,ngp,iu,i real(8) vc(3),kc character(256) fname ! automatic arrays complex(8) ylmk(lmmaxo),sfack(natmtot) ! allocatable arrays integer, allocatable :: igpig(:,:) real(8), allocatable :: vpl(:,:),jlkr(:,:) real(8), allocatable :: wfmta(:,:),wfmtb(:,:) real(8), allocatable :: wfira(:),wfirb(:) real(8), allocatable :: wfa(:,:,:),wfb(:,:,:) complex(8), allocatable :: wfmt(:,:,:,:),wfir(:,:,:),expmt(:,:) ! total number of plot points np=np3d(1)*np3d(2)*np3d(3) ! generate the 3D plotting points allocate(vpl(3,np)) call plotpt3d(vpl) ! parallel loop over non-reduced k-points call holdthd(nkptnr,nthd) !$OMP PARALLEL DEFAULT(SHARED) & !$OMP PRIVATE(igpig,jlkr,wfmta,wfmtb) & !$OMP PRIVATE(wfira,wfirb,wfa,wfb) & !$OMP PRIVATE(wfmt,wfir,ylmk,sfack,expmt) & !$OMP PRIVATE(ngp,vc,kc,ist,ispn,ias,is) & !$OMP PRIVATE(nrc,nrci,npc,fname,iu,i) & !$OMP NUM_THREADS(nthd) allocate(igpig(ngkmax,nspnfv)) allocate(jlkr(njcmax,nspecies)) allocate(wfmta(npmtmax,natmtot),wfmtb(npmtmax,natmtot)) allocate(wfira(ngtot),wfirb(ngtot)) allocate(wfa(np,nspinor,num_bands),wfb(np,nspinor,num_bands)) allocate(wfmt(npcmtmax,natmtot,nspinor,num_bands)) allocate(wfir(ngtot,nspinor,num_bands)) allocate(expmt(npcmtmax,natmtot)) !$OMP DO do ik=1,nkptnr !$OMP CRITICAL(writew90unk_) write(*,'("Info(writew90unk): ",I6," of ",I6," k-points")') ik,nkptnr !$OMP END CRITICAL(writew90unk_) ! generate the second-variational wavefunctions call genwfsvp(.false.,.false.,num_bands,idxw90,ngridg,igfft,vkl(:,ik),ngp, & igpig,wfmt,ngtot,wfir) ! generate the phase factor function exp(-ik.r) in the muffin-tins vc(:)=-vkc(:,ik) kc=sqrt(vc(1)**2+vc(2)**2+vc(3)**2) call genjlgpr(1,kc,jlkr) call genylmv(.true.,lmaxo,vc,ylmk) call gensfacgp(1,vc,1,sfack) call genexpmt(1,jlkr,ylmk,1,sfack,expmt) ! split the wavefunctions into real and imaginary parts do ist=1,num_bands do ispn=1,nspinor do ias=1,natmtot is=idxis(ias) nrc=nrcmt(is) nrci=nrcmti(is) npc=npcmt(is) ! remove the explicit phase exp(ik.r) from the muffin-tin wavefunction wfmt(1:npc,ias,ispn,ist)=wfmt(1:npc,ias,ispn,ist)*expmt(1:npc,ias) wfmta(1:npc,ias)=dble(wfmt(1:npc,ias,ispn,ist)) call rfshtip(nrc,nrci,wfmta(:,ias)) wfmtb(1:npc,ias)=aimag(wfmt(1:npc,ias,ispn,ist)) call rfshtip(nrc,nrci,wfmtb(:,ias)) end do call rfmtctof(wfmta) call rfmtctof(wfmtb) wfira(:)=dble(wfir(:,ispn,ist)) wfirb(:)=aimag(wfir(:,ispn,ist)) ! generate the wavefunctions on a regular grid call rfplot(np,vpl,wfmta,wfira,wfa(:,ispn,ist)) call rfplot(np,vpl,wfmtb,wfirb,wfb(:,ispn,ist)) end do end do if (spinpol) then write(fname,'("UNK",I5.5,".NC")') ik else write(fname,'("UNK",I5.5,".1")') ik end if open(newunit=iu,file=trim(fname),form='UNFORMATTED',action='WRITE') write(iu) np3d(1),np3d(2),np3d(3),ik,num_bands do ist=1,num_bands write(iu) (cmplx(wfa(i,1,ist),wfb(i,1,ist),8),i=1,np) if (spinpol) then write(iu) (cmplx(wfa(i,2,ist),wfb(i,2,ist),8),i=1,np) end if end do close(iu) end do !$OMP END DO deallocate(igpig,jlkr) deallocate(wfmta,wfmtb,wfira,wfirb) deallocate(wfa,wfb,wfmt,wfir,expmt) !$OMP END PARALLEL call freethd(nthd) write(*,*) write(*,'("Info(writew90unk): created the UNKkkkkk.s files")') deallocate(vpl) end subroutine elk-9.6.8/src/PaxHeaders/dmatuv.f900000644000000000000000000000013214626155521014005 xustar0030 mtime=1717099345.496994531 30 atime=1717099343.935986121 30 ctime=1717099345.496994531 elk-9.6.8/src/dmatuv.f900000644002504400250440000000157614626155521016540 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2020 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 dmatuv(n,ef,e,u,v,dvv,duv,vn) use modmain implicit none ! arguments integer, intent(in) :: n real(8), intent(in) :: ef,e(n) complex(8), intent(in) :: u(n,n),v(n,n) complex(8), intent(out) :: dvv(n,n),duv(n,n) real(8), intent(out) :: vn(n) ! local variables integer i ! external functions real(8), external :: dznrm2 ! normal fermionic density matrix VV† call zgemm('N','C',n,n,n,(1.d0,0.d0),v,n,v,n,(0.d0,0.d0),dvv,n) do i=1,n ! store the V-norm vn(i)=dznrm2(n,v(:,i),1)**2 ! subtract unperturbed density matrix if (e(i) <= ef) dvv(i,i)=dvv(i,i)-1.d0 end do ! anomalous density matrix UV† call zgemm('N','C',n,n,n,(1.d0,0.d0),u,n,v,n,(0.d0,0.d0),duv,n) end subroutine elk-9.6.8/src/PaxHeaders/dmatwx.f900000644000000000000000000000013214626155521014011 xustar0030 mtime=1717099345.498994542 30 atime=1717099343.938986137 30 ctime=1717099345.498994542 elk-9.6.8/src/dmatwx.f900000644002504400250440000000135214626155521016534 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2020 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 dmatwx(n,w,x,dxx,dwx,xn) implicit none ! arguments integer, intent(in) :: n complex(8), intent(in) :: w(n,n),x(n,n) complex(8), intent(out) :: dxx(n,n),dwx(n,n) real(8), intent(out) :: xn(n) ! local variables integer i real(8), external :: dznrm2 ! normal bosonic density matrix XX† call zgemm('N','C',n,n,n,(1.d0,0.d0),x,n,x,n,(0.d0,0.d0),dxx,n) ! store the X-norm do i=1,n xn(i)=dznrm2(n,x(:,i),1)**2 end do ! anomalous density matrix -WX† call zgemm('N','C',n,n,n,(-1.d0,0.d0),w,n,x,n,(0.d0,0.d0),dwx,n) end subroutine elk-9.6.8/src/PaxHeaders/eveqnuv.f900000644000000000000000000000013214626155521014176 xustar0030 mtime=1717099345.500994553 30 atime=1717099343.940986148 30 ctime=1717099345.500994553 elk-9.6.8/src/eveqnuv.f900000644002504400250440000000167614626155521016732 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 eveqnuv(n,au,bv,w) implicit none ! arguments integer, intent(in) :: n complex(8), intent(inout) :: au(n,n),bv(n,n) real(8), intent(out) :: w(n) ! local variables integer n2,i,j ! allocatable arrays real(8), allocatable :: w2(:) complex(8), allocatable :: h(:,:) n2=2*n ! setup the fermionic Bogoliubov Hamiltonian allocate(w2(n2),h(n2,n2)) do j=1,n do i=1,j h(i,j)=au(i,j) h(n+i,n+j)=-au(i,j) end do end do do j=1,n do i=1,n h(i,n+j)=bv(i,j) end do end do ! find the eigenvalues and eigenvectors call eveqnzh(n2,n2,h,w2) ! copy to output arrays do i=1,n ! choose the positive eigenvalues j=n+i w(i)=w2(j) call zcopy(n,h(1,j),1,au(1,i),1) call zcopy(n,h(n+1,j),1,bv(1,i),1) end do deallocate(w2,h) end subroutine elk-9.6.8/src/PaxHeaders/eveqnwxy.f900000644000000000000000000000013214626155521014373 xustar0030 mtime=1717099345.502994564 30 atime=1717099343.942986158 30 ctime=1717099345.502994564 elk-9.6.8/src/eveqnwxy.f900000644002504400250440000000307314626155521017120 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 eveqnwxy(n,p,dw,ex,fy,w) implicit none ! arguments integer, intent(in) :: n,p complex(8), intent(inout) :: dw(n,n),ex(n,n),fy(n) real(8), intent(out) :: w(n) ! local variables integer n2,i,j real(8) t1,t2 ! allocatable arrays integer, allocatable :: idx(:) real(8), allocatable :: r(:) complex(8), allocatable :: w2(:),h(:,:) complex(8), allocatable :: x(:),a(:,:) ! external functions real(8), external :: dznrm2 n2=2*n ! setup the bosonic Bogoliubov Hamiltonian allocate(w2(n2),h(n2,n2)) do j=1,n do i=1,n h(i,j)=dw(i,j) h(n+i,n+j)=-dw(i,j) h(i,n+j)=-ex(i,j) h(n+i,j)=ex(i,j) end do end do ! find the eigenvalues and right eigenvectors call eveqnzg(n2,n2,h,w2) ! select the eigenpairs corresponding to W†W - X†X = I allocate(idx(n2),r(n2)) do j=1,n2 t1=dznrm2(n,h(1,j),1)**2 t2=dznrm2(n,h(n+1,j),1)**2 r(j)=t1-t2 end do call sortidx(n2,r,idx) ! pseudo-normalise the eigenvectors and store in output arrays do i=1,n j=idx(n+i) t1=abs(r(j))+1.d-8 t1=(1.d0-(1.d0-t1)**p)/sqrt(t1) w(i)=dble(w2(j)) dw(1:n,i)=t1*h(1:n,j) ex(1:n,i)=t1*h(n+1:n2,j) end do deallocate(idx,r,w2,h) ! solve for the vector y allocate(x(n),a(n,n)) a(:,:)=dw(:,:)-ex(:,:) x(:)=fy(:) call zgemv('T',n,n,(1.d0,0.d0),a,n,x,1,(0.d0,0.d0),fy,1) do i=1,n if (w(i) > 1.d-6) then fy(i)=fy(i)/w(i) else fy(i)=0.d0 end if end do deallocate(x,a) end subroutine elk-9.6.8/src/PaxHeaders/writeevaluv.f900000644000000000000000000000013214626155521015062 xustar0030 mtime=1717099345.504994574 30 atime=1717099343.945986175 30 ctime=1717099345.504994574 elk-9.6.8/src/writeevaluv.f900000644002504400250440000000137014626155521017605 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2019 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 writeevaluv use modmain use modbog implicit none ! local variables integer ik,ist real(8) e ! write out the fermionic eigenvalues open(50,file='EIGVALUV.OUT',form='FORMATTED',action='WRITE') 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, V-norm below)")') do ist=1,nstsv e=evaluv(ist,ik) if (vnorm(ist,ik) > 0.5d0) e=-e write(50,'(I6,2G18.10)') ist,e,vnorm(ist,ik) end do write(50,*) end do close(50) end subroutine elk-9.6.8/src/PaxHeaders/occupyuv.f900000644000000000000000000000013214626155521014362 xustar0030 mtime=1717099345.506994585 30 atime=1717099343.947986185 30 ctime=1717099345.506994585 elk-9.6.8/src/occupyuv.f900000644002504400250440000000305714626155521017111 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2019 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 occupyuv use modmain use modbog use modmpi implicit none integer ik,ist real(8) chg,w,vn real(8) e0,e1,e,t1 ! determine the total charge and fermionic anomalous correlation entropy chg=0.d0 face=0.d0 do ik=1,nkpt w=wkpt(ik) do ist=1,nstsv vn=vnorm(ist,ik) chg=chg+w*vn if ((vn > 0.d0).and.(vn < 1.d0)) then face=face+w*(vn*log(vn)+(1.d0-vn)*log(1.d0-vn)) end if end do end do chg=occmax*chg face=-occmax*face ! adjust the Fermi energy efermi=efermi+tauefm*(chgval-chg) if (mp_mpi) then if (abs(chg-chgval) > epschg) then write(*,*) write(*,'("Warning(occupyuv): incorrect charge : ",2G18.10)') chg,chgval end if end if ! estimate the indirect band gap e0=-1.d8 e1=1.d8 ikgap(1)=1 ikgap(2)=1 do ist=1,nstsv do ik=1,nkpt e=evaluv(ist,ik) if (vnorm(ist,ik) > 0.5d0) e=-e if (e <= 0.d0) then if (e > e0) then e0=e ikgap(1)=ik end if else if (e < e1) then e1=e ikgap(2)=ik end if end if end do end do bandgap(1)=e1-e0 ! 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=evaluv(ist,ik) if (vnorm(ist,ik) > 0.5d0) t1=-t1 if (t1 <= 0.d0) then if (t1 > e0) e0=t1 else if (t1 < e1) e1=t1 end if end do t1=e1-e0 if (t1 < e) then e=t1 ikgap(3)=ik end if end do bandgap(2)=e end subroutine elk-9.6.8/src/PaxHeaders/putevaluv.f900000644000000000000000000000013214626155521014540 xustar0030 mtime=1717099345.508994596 30 atime=1717099343.949986196 30 ctime=1717099345.508994596 elk-9.6.8/src/putevaluv.f900000644002504400250440000000113114626155521017256 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2019 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 putevaluv(ik,evaluvp) use modmain implicit none ! arguments integer, intent(in) :: ik real(8), intent(in) :: evaluvp(nstsv) ! local variables integer recl ! find the record length inquire(iolength=recl) vkl(:,ik),nstsv,evaluvp !$OMP CRITICAL(u320) open(320,file='EVALUV.OUT',form='UNFORMATTED',access='DIRECT',recl=recl) write(320,rec=ik) vkl(:,ik),nstsv,evaluvp close(320) !$OMP END CRITICAL(u320) end subroutine elk-9.6.8/src/PaxHeaders/getevaluv.f900000644000000000000000000000013214626155521014507 xustar0030 mtime=1717099345.510994607 30 atime=1717099343.951986207 30 ctime=1717099345.510994607 elk-9.6.8/src/getevaluv.f900000644002504400250440000000216314626155521017233 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2019 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 getevaluv(ik,evaluvp) use modmain implicit none ! arguments integer, intent(in) :: ik real(8), intent(out) :: evaluvp(nstsv) ! local variables integer recl,nstsv_ real(8) vkl_(3),t1 ! find the record length inquire(iolength=recl) vkl_,nstsv_,evaluvp !$OMP CRITICAL(u320) open(320,file='EVALUV.OUT',form='UNFORMATTED',access='DIRECT',recl=recl) read(320,rec=ik) vkl_,nstsv_,evaluvp close(320) !$OMP END CRITICAL(u320) t1=abs(vkl(1,ik)-vkl_(1))+abs(vkl(2,ik)-vkl_(2))+abs(vkl(3,ik)-vkl_(3)) if (t1 > epslat) then write(*,*) write(*,'("Error(getevaluv): differing vectors for k-point ",I8)') ik write(*,'(" current : ",3G18.10)') vkl(:,ik) write(*,'(" EVALUV.OUT : ",3G18.10)') vkl_ write(*,*) stop end if if (nstsv /= nstsv_) then write(*,*) write(*,'("Error(getevaluv): differing nstsv for k-point ",I8)') ik write(*,'(" current : ",I8)') nstsv write(*,'(" EVALUV.OUT : ",I8)') nstsv_ write(*,*) stop end if end subroutine elk-9.6.8/src/PaxHeaders/putevecuv.f900000644000000000000000000000013214626155521014533 xustar0030 mtime=1717099345.512994618 30 atime=1717099343.954986223 30 ctime=1717099345.512994618 elk-9.6.8/src/putevecuv.f900000644002504400250440000000117714626155521017263 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2019 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 putevecuv(ik,evecu,evecv) use modmain implicit none ! arguments integer, intent(in) :: ik complex(8), intent(in) :: evecu(nstsv,nstsv),evecv(nstsv,nstsv) ! local variables integer recl ! find the record length inquire(iolength=recl) vkl(:,ik),nstsv,evecu,evecv !$OMP CRITICAL(u322) open(322,file='EVECUV.OUT',form='UNFORMATTED',access='DIRECT',recl=recl) write(322,rec=ik) vkl(:,ik),nstsv,evecu,evecv close(322) !$OMP END CRITICAL(u322) end subroutine elk-9.6.8/src/PaxHeaders/getevecuv.f900000644000000000000000000000013214626155521014502 xustar0030 mtime=1717099345.514994628 30 atime=1717099343.956986234 30 ctime=1717099345.514994628 elk-9.6.8/src/getevecuv.f900000644002504400250440000000247314626155521017232 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2019 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 getevecuv(ikp,vpl,u,v) use modmain implicit none ! arguments integer, intent(in) :: ikp real(8), intent(in) :: vpl(3) complex(8), intent(out) :: u(nstsv,nstsv),v(nstsv,nstsv) ! local variables integer isym,ik integer recl,nstsv_ real(8) vkl_(3),t1 if (ikp > 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_,u,v !$OMP CRITICAL(u322) open(322,file='EVECUV.OUT',form='UNFORMATTED',access='DIRECT',recl=recl) read(322,rec=ik) vkl_,nstsv_,u,v close(322) !$OMP END CRITICAL(u322) t1=abs(vkl(1,ik)-vkl_(1))+abs(vkl(2,ik)-vkl_(2))+abs(vkl(3,ik)-vkl_(3)) if (t1 > epslat) then write(*,*) write(*,'("Error(getevecuv): differing vectors for k-point ",I8)') ik write(*,'(" current : ",3G18.10)') vkl(:,ik) write(*,'(" EVECUV.OUT : ",3G18.10)') vkl_ write(*,*) stop end if if (nstsv /= nstsv_) then write(*,*) write(*,'("Error(getevecuv): differing nstsv for k-point ",I8)') ik write(*,'(" current : ",I8)') nstsv write(*,'(" EVECUV.OUT : ",I8)') nstsv_ write(*,*) stop end if end subroutine elk-9.6.8/src/PaxHeaders/putevecwxy.f900000644000000000000000000000013214626155521014730 xustar0030 mtime=1717099345.516994639 30 atime=1717099343.958986245 30 ctime=1717099345.516994639 elk-9.6.8/src/putevecwxy.f900000644002504400250440000000122614626155521017453 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2020 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 putevecwxy(iq,w,x,y) use modmain use modphonon implicit none ! arguments integer, intent(in) :: iq complex(8), intent(in) :: w(nbph,nbph),x(nbph,nbph),y(nbph) ! local variables integer recl ! find the record length inquire(iolength=recl) vql(:,iq),nbph,w,x,y !$OMP CRITICAL(u332) open(332,file='EVECWXY.OUT',form='UNFORMATTED',access='DIRECT',recl=recl) write(332,rec=iq) vql(:,iq),nbph,w,x,y close(332) !$OMP END CRITICAL(u332) end subroutine elk-9.6.8/src/PaxHeaders/getevecwxy.f900000644000000000000000000000013014626155521014675 xustar0029 mtime=1717099345.51899465 30 atime=1717099343.960986255 29 ctime=1717099345.51899465 elk-9.6.8/src/getevecwxy.f900000644002504400250440000000226014626155521017421 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2020 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 getevecwxy(iq,w,x,y) use modmain use modphonon implicit none ! arguments integer, intent(in) :: iq complex(8), intent(out) :: w(nbph,nbph),x(nbph,nbph),y(nbph) ! local variables integer recl,nbph_ real(8) vql_(3),t1 ! find the record length inquire(iolength=recl) vql_,nbph_,w,x,y !$OMP CRITICAL(u332) open(332,file='EVECWXY.OUT',form='UNFORMATTED',access='DIRECT',recl=recl) read(332,rec=iq) vql_,nbph_,w,x,y close(332) !$OMP END CRITICAL(u332) t1=abs(vql(1,iq)-vql_(1))+abs(vql(2,iq)-vql_(2))+abs(vql(3,iq)-vql_(3)) if (t1 > epslat) then write(*,*) write(*,'("Error(getevecwxy): differing vectors for q-point ",I8)') iq write(*,'(" current : ",3G18.10)') vql(:,iq) write(*,'(" EVECWXY.OUT : ",3G18.10)') vql_ write(*,*) stop end if if (nbph /= nbph_) then write(*,*) write(*,'("Error(getevecwxy): differing nbph for q-point ",I8)') iq write(*,'(" current : ",I8)') nbph write(*,'(" EVECWXY.OUT : ",I8)') nbph_ write(*,*) stop end if end subroutine elk-9.6.8/src/PaxHeaders/putevalwx.f900000644000000000000000000000013214626155521014544 xustar0030 mtime=1717099345.520994661 30 atime=1717099343.962986266 30 ctime=1717099345.520994661 elk-9.6.8/src/putevalwx.f900000644002504400250440000000120314626155521017262 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2020 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 putevalwx(iq,evalwxp) use modmain use modphonon implicit none ! arguments integer, intent(in) :: iq real(8), intent(in) :: evalwxp(nbph) ! local variables integer recl ! find the record length inquire(iolength=recl) vql(:,iq),nbph,evalwxp !$OMP CRITICAL(u330) open(330,file='EVALWX.OUT',form='UNFORMATTED',access='DIRECT',recl=recl) write(330,rec=iq) vql(:,iq),nbph,evalwxp close(330) !$OMP END CRITICAL(u330) end subroutine elk-9.6.8/src/PaxHeaders/getevalwx.f900000644000000000000000000000013214626155521014513 xustar0030 mtime=1717099345.522994671 30 atime=1717099343.965986282 30 ctime=1717099345.522994671 elk-9.6.8/src/getevalwx.f900000644002504400250440000000222714626155521017240 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2020 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 getevalwx(iq,evalwxp) use modmain use modphonon implicit none ! arguments integer, intent(in) :: iq real(8), intent(out) :: evalwxp(nbph) ! local variables integer recl,nbph_ real(8) vql_(3),t1 ! find the record length inquire(iolength=recl) vql_,nbph_,evalwxp !$OMP CRITICAL(u330) open(330,file='EVALWX.OUT',form='UNFORMATTED',access='DIRECT',recl=recl) read(330,rec=iq) vql_,nbph_,evalwxp close(330) !$OMP END CRITICAL(u330) t1=abs(vql(1,iq)-vql_(1))+abs(vql(2,iq)-vql_(2))+abs(vql(3,iq)-vql_(3)) if (t1 > epslat) then write(*,*) write(*,'("Error(getevalwx): differing vectors for q-point ",I8)') iq write(*,'(" current : ",3G18.10)') vql(:,iq) write(*,'(" EVALWX.OUT : ",3G18.10)') vql_ write(*,*) stop end if if (nbph /= nbph_) then write(*,*) write(*,'("Error(getevalwx): differing nbph for q-point ",I8)') iq write(*,'(" current : ",I8)') nbph write(*,'(" EVALWX.OUT : ",I8)') nbph_ write(*,*) stop end if end subroutine elk-9.6.8/src/PaxHeaders/aceplot.f900000644000000000000000000000013214626155521014134 xustar0030 mtime=1717099345.524994682 30 atime=1717099343.967986293 30 ctime=1717099345.524994682 elk-9.6.8/src/aceplot.f900000644002504400250440000000367614626155521016672 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2021 J. K. Dewhurst, S. Sharma and E. K. U. Gross. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. subroutine aceplot use modmain use modphonon use modbog implicit none ! local variables integer ik,jk,iq,jq integer i1,i2,i3,ist,i real(8) ace,vn,xn ! initialise universal variables call init0 call init1 call init2 call initeph !----------------------------------------------------------! ! plot the fermionic anomalous correlation entropy ! !----------------------------------------------------------! open(50,file='FACE3D.OUT',form='FORMATTED',action='WRITE') write(50,'(3I6," : grid size")') ngridk(:) 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) ace=0.d0 do ist=1,nstsv vn=vnorm(ist,jk) if ((vn > 0.d0).and.(vn < 1.d0)) then ace=ace+vn*log(vn)+(1.d0-vn)*log(1.d0-vn) end if end do ace=-occmax*ace write(50,'(4G18.10)') vkc(:,ik),ace end do end do end do close(50) !--------------------------------------------------------! ! plot the bosonic anomalous correlation entropy ! !--------------------------------------------------------! open(50,file='BACE3D.OUT',form='FORMATTED',action='WRITE') write(50,'(3I6," : grid size")') ngridq(:) do i3=0,ngridq(3)-1 do i2=0,ngridq(2)-1 do i1=0,ngridq(1)-1 iq=ivqiqnr(i1,i2,i3) jq=ivqiq(i1,i2,i3) ace=0.d0 do i=1,nbph xn=xnorm(i,jq) if (xn > 0.d0) then ace=ace+xn*log(xn)-(1.d0+xn)*log(1.d0+xn) end if end do ace=-ace write(50,'(4G18.10)') vqc(:,iq),ace end do end do end do close(50) write(*,*) write(*,'("Info(aceplot):")') write(*,'(" 3D fermionic anomalous correlation entropy written to FACE3D.OUT")') write(*,'(" 3D bosonic anomalous correlation entropy written to BACE3D.OUT")') end subroutine elk-9.6.8/src/PaxHeaders/writeevalwx.f900000644000000000000000000000013214626155521015066 xustar0030 mtime=1717099345.526994693 30 atime=1717099343.969986304 30 ctime=1717099345.526994693 elk-9.6.8/src/writeevalwx.f900000644002504400250440000000133214626155521017607 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2021 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 writeevalwx use modmain use modphonon use modbog implicit none ! local variables integer iq,i ! write out the bosonic eigenvalues open(50,file='EIGVALWX.OUT',form='FORMATTED',action='WRITE') write(50,'(I6," : nqpt")') nqpt write(50,'(I6," : nbph")') nbph do iq=1,nqpt write(50,*) write(50,'(I6,3G18.10," : q-point, vql")') iq,vql(:,iq) write(50,'(" (phonon branch, eigenvalue, X-norm below)")') do i=1,nbph write(50,'(I6,2G18.10)') i,evalwx(i,iq),xnorm(i,iq) end do end do close(50) end subroutine elk-9.6.8/src/PaxHeaders/Makefile0000644000000000000000000000013014626155517013630 xustar0029 mtime=1717099343.97298632 30 atime=1717099343.971986315 29 ctime=1717099343.97298632 elk-9.6.8/src/Makefile0000644002504400250440000003315714626155517016365 0ustar00dewhurstdewhurst00000000000000 include ../make.inc # modules SRC_modules = modmain.f90 $(SRC_MPI) modmpi.f90 modramdisk.f90 $(SRC_LIBXC) \ modxcifc.f90 modfxcifc.f90 moddftu.f90 modrdm.f90 modphonon.f90 modtest.f90 \ modrandom.f90 modpw.f90 modvars.f90 modtddft.f90 modgw.f90 modulr.f90 \ modbog.f90 moddelf.f90 $(SRC_OMP) modomp.f90 $(SRC_MKL) mkl_init.f90 \ $(SRC_W90S) modw90.f90 # Elk program SRC_elk = elk.f90 # main subroutines and functions SRC_main0 = \ factn.f90 factr.f90 factn2.f90 r3mm.f90 r3mtm.f90 r3mmt.f90 r3vo.f90 gcd.f90 \ rfint.f90 trimrfg.f90 gencfun.f90 zpotcoul.f90 cpotcoul.f90 potcoul.f90 \ zftcf.f90 elnes.f90 SRC_main1 = \ symdmat.f90 axangsu2.f90 gradzvcln.f90 gentpmae.f90 zfcmtwr.f90 cfcmtwr.f90 \ projsbf.f90 gradzf.f90 timesec.f90 zfmtftoc.f90 ztorfmt.f90 zfmtctof.f90 \ eveqnfvz.f90 energynn.f90 gaunt.f90 potxcmt.f90 sdelta_mp.f90 stheta_mp.f90 \ sdelta_fd.f90 stheta_fd.f90 writelsj.f90 eveqnzh.f90 gensmatk.f90 \ gensfacgp.f90 rhomag.f90 wsplintp.f90 checkmt.f90 reciplat.f90 gradrf.f90 \ gencfrm.f90 mixadapt.f90 zftrf.f90 sbessel.f90 gengclgq.f90 \ genstress.f90 force.f90 genvbmatk.f90 forcek.f90 writeepsinv.f90 olprad.f90 \ polark.f90 zfmtinp.f90 hflocal.f90 mixbroyden.f90 grad2rfmt.f90 clebgor.f90 \ rfirctof.f90 effmass.f90 sfacmag.f90 polynm.f90 epsinv.f90 \ rfinpc.f90 writeiad.f90 genapwfr.f90 gengclq.f90 addbfsm.f90 genylmv.f90 \ olpfv.f90 hmlfv.f90 genexpmt.f90 rfinp.f90 sphcover.f90 sctovec.f90 \ genppts.f90 eveqnzg.f90 fderiv.f90 genpmat.f90 genexpmat.f90 writeforces.f90 \ r3cross.f90 match.f90 genspchi0.f90 potefield.f90 rhoinit.f90 \ eveqnsv.f90 roteuler.f90 genrmesh.f90 splint.f90 wavefcr.f90 lopzflm.f90 \ brzint.f90 rotdmat.f90 genylmg.f90 gentaucr.f90 readinput.f90 numlist.f90 \ hermite.f90 genfspecies.f90 atpstep.f90 dmatls.f90 writeengy.f90 writechg.f90 \ rbsht.f90 rfsht.f90 genlofr.f90 rotrfmt.f90 genpmatk.f90 \ rvfcross.f90 writeinfo.f90 mossbauer.f90 initoep.f90 i3minv.f90 r3mv.f90 \ genidxlo.f90 nuclei.f90 writeefg.f90 writeevsp.f90 gencore.f90 r3mtv.f90 \ r3minv.f90 r3frac.f90 genapwlofr.f90 gridsize.f90 symrfir.f90 erf.f90 \ geomplot.f90 ylmroty.f90 ssfext.f90 writestate.f90 sdelta_sq.f90 potxcir.f90 \ potxc.f90 rcfmtinp.f90 rhoplot.f90 occupy.f90 symveca.f90 jprplot.f90 \ genvmatk.f90 geomopt.f90 eveqnss.f90 hartfock.f90 potplot.f90 genwfpw.f90 \ hmlxbse.f90 hmlxbsek.f90 hmldbse.f90 hmldbsek.f90 gradwfcr2.f90 oepresk.f90 \ addlorbcnd.f90 energy.f90 wfplot.f90 oepvcl.f90 oepvclk.f90 polar.f90 \ dbxcplot.f90 sbesseldm.f90 writehmlbse.f90 dielectric_bse.f90 vecplot.f90 \ nesting.f90 writeevbse.f90 emdplot3d.f90 emdplot2d.f90 emdplot1d.f90 \ rfhkintp.f90 writewfpw.f90 vblocal.f90 writefsm.f90 getwfpw.f90 plotpt1d.f90 \ init1.f90 init2.f90 findsymcrys.f90 plotpt3d.f90 fermisurfbxsf.f90 \ genspecies.f90 writeexpmat.f90 writekpts.f90 wfcrplot.f90 writedos.f90 \ energykncr.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 writeemd.f90 reademd.f90 \ emdplot.f90 init3.f90 init4.f90 bfieldfsm.f90 testcheck.f90 pade.f90 \ wsplint.f90 gensocfr.f90 pades.f90 genscss.f90 rfcmtwr.f90 nonlinopt.f90 \ writelat.f90 rhocore.f90 rcfinp.f90 readspecies.f90 findband.f90 exxengy.f90 \ gentauk.f90 gradrfmt.f90 checkfsm.f90 genrlmv.f90 mae.f90 writegvecrf.f90 \ zcfmtwr.f90 wfmtsv.f90 olpistl.f90 hmlistl.f90 olpalo.f90 hmlalo.f90 \ olplolo.f90 hmllolo.f90 olpaa.f90 hmlaa.f90 gengclg.f90 rhomagsh.f90 \ charge.f90 moment.f90 rfint0.f90 r3mdet.f90 gencfrc.f90 checkstop.f90 \ genbs.f90 gradwf2.f90 writelinen.f90 rfmtlm.f90 putpmat.f90 getpmat.f90 \ rfmtpack.f90 zfmtpack.f90 putevalfv.f90 getevalfv.f90 wfmtfv.f90 putkmat.f90 \ getkmat.f90 putepsinv.f90 getcfgq.f90 putevalsv.f90 getevalsv.f90 \ getevecsv.f90 putevecsv.f90 genshtmat.f90 allatoms.f90 putevecfv.f90 \ getevecfv.f90 writesym.f90 putoccsv.f90 getoccsv.f90 torque.f90 findqpt.f90 \ findkpt.f90 genevfsv.f90 genwfsv.f90 sdelta.f90 stheta.f90 sortidx.f90 \ symmat.f90 radnucl.f90 symrvf.f90 writeqpts.f90 rndevsv.f90 gengkvec.f90 \ mixlinear.f90 writesf.f90 gengqf.f90 genkmat.f90 genolpq.f90 genjlgprmt.f90 \ rfinterp.f90 fsmooth.f90 axangrot.f90 rotaxang.f90 wspline.f90 splined.f90 \ findswidth.f90 findsymlat.f90 writepmat.f90 genstrain.f90 symmetry.f90 \ linengy.f90 writestress.f90 eulerrot.f90 cftwfir.f90 rschrodint.f90 \ writegclq.f90 writegeom.f90 writemom.f90 gendmat.f90 curlrvf.f90 \ genzvclmt.f90 genjtot.f90 symvec.f90 checkwrite.f90 genjprk.f90 proj2d.f90 \ genidxbse.f90 symrvfir.f90 genjpr.f90 eveqnfvr.f90 gentau.f90 genjlgpr.f90 \ writestrain.f90 writefermi.f90 rfmtctof.f90 findsym.f90 zfsht.f90 rhonorm.f90 \ genvchi0.f90 cfmtconj.f90 stheta_sq.f90 sdelta_lr.f90 stheta_lr.f90 \ findsymsite.f90 genlmirep.f90 writespecies.f90 rhomagk.f90 symrvfmt.f90 \ wigner3jf.f90 genhvec.f90 ylmrot.f90 wxcplot.f90 massnucl.f90 gendmatk.f90 \ rfplot.f90 straingkq.f90 eveqnit.f90 oepmain.f90 rdirac.f90 bandstr.f90 \ sfacinit.f90 findscq.f90 plot1d.f90 plot2d.f90 plot3d.f90 init0.f90 \ readstate.f90 eveqnhf.f90 zbsht.f90 i3mtv.f90 spline.f90 gauntyry.f90 \ findnjcmax.f90 gndstate.f90 sstask.f90 fermisurf.f90 spiralsc.f90 atom.f90 \ maginit.f90 exxengyk.f90 moke.f90 hmlrad.f90 dos.f90 findprimcell.f90 \ plotpt2d.f90 sfacrho.f90 bdipole.f90 dielectric.f90 elfplot.f90 vclcore.f90 \ zfmtwr.f90 zvcldisp.f90 vecfbz.f90 lopzflmn.f90 zpotclmt.f90 \ readfermi.f90 gensdmat.f90 symrfmt.f90 sphcrd.f90 gencrm.f90 \ rminv.f90 rtozfmt.f90 genwfsvp.f90 genwfsvp_sp.f90 rdiracint.f90 rotzflm.f90 \ latvstep.f90 gradzfmt.f90 eveqnfv.f90 cfsht.f90 wfmtsv_sp.f90 wfirsv.f90 \ wfirsv_sp.f90 genwfsv_sp.f90 ggamt_4.f90 ggair_4.f90 trzhmm.f90 gengvec.f90 \ wigner3j.f90 gengvc.f90 potnucl.f90 zfmtint.f90 rfmtint.f90 genvsig.f90 \ rfmtinp.f90 findngkmax.f90 potks.f90 mtdmin.f90 rfcopy.f90 rhomagv.f90 \ eveqn.f90 genffacgp.f90 unitary.f90 zmdet.f90 rfmtftoc.f90 zminv.f90 \ symrf.f90 genvmat.f90 writeeval.f90 mixerifc.f90 splinew.f90 nfftifc.f90 \ batchdv.f90 readevalsv.f90 readoccsv.f90 z2mm.f90 z2mctm.f90 z2mmct.f90 \ zmctmu.f90 zmctm.f90 rzmctmu.f90 moldyn.f90 gencrho.f90 cpotclmt.f90 \ rfmtsm.f90 rbshtip.f90 rfshtip.f90 zbshtip.f90 zfshtip.f90 cbsht.f90 \ cbshtip.f90 cfshtip.f90 gencvclmt.f90 zcfmtinp.f90 zcfinp.f90 \ ggamt_3.f90 ggair_3.f90 piezoelt.f90 magnetoelt.f90 rmtavrg.f90 \ zlrzncnv.f90 efieldmt.f90 writeefield.f90 sort.f90 SRC_main = $(SRC_main0) $(SRC_main1) SRC_BOG0 = \ dmatuv.f90 dmatwx.f90 eveqnuv.f90 eveqnwxy.f90 SRC_BOG1 = \ writeevaluv.f90 occupyuv.f90 putevaluv.f90 getevaluv.f90 putevecuv.f90 \ getevecuv.f90 putevecwxy.f90 getevecwxy.f90 putevalwx.f90 getevalwx.f90 \ aceplot.f90 writeevalwx.f90 SRC_BOG = $(SRC_BOG0) $(SRC_BOG1) SRC_phonon0 = \ dmatch.f90 dolpistl.f90 drhomagsh.f90 dhmlistl.f90 gendcfun.f90 gendvsig.f90 SRC_phonon1 = \ olpaloq.f90 hmlaloq.f90 dolpalo.f90 dhmlalo.f90 \ dhmllolo.f90 olpaaq.f90 dolpaa.f90 dhmlaa.f90 hmlaaq.f90 initeph.f90 \ dengyeph.f90 gndsteph.f90 eveqneph.f90 hmlepha.f90 hmlephb.f90 hmlephde.f90 \ getephmkq.f90 ephdos.f90 \ gradrhomt.f90 doccupy.f90 dhmlrad.f90 \ gendwfsv.f90 dwfmtfv.f90 gengqvec.f90 writedvs.f90 readdyn.f90 \ dyntask.f90 dpotks.f90 dpotxc.f90 deveqnfv.f90 dpotcoul.f90 drhomagk.f90 \ gengvsmt.f90 dforce.f90 dforcek.f90 dynqtor.f90 dynevs.f90 phonon.f90 \ dynrtoq.f90 mcmillan.f90 genephmat.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 dynfext.f90 writegamma.f90 readgamma.f90 \ phlwidth.f90 alpha2f.f90 writelambda.f90 ephcouple.f90 eliashberg.f90 \ phscdvs.f90 readdvs.f90 readalpha2f.f90 gendsocfr.f90 bornechg.f90 \ bectask.f90 becfext.f90 putephmat.f90 getephmat.f90 SRC_phonon = $(SRC_phonon0) $(SRC_phonon1) SRC_ULR0 = \ zfirctof.f90 writeevalu.f90 writekpa.f90 genhdbulr.f90 vblocalu.f90 \ chargeu.f90 addbfsmu.f90 momentu.f90 occupyulr.f90 potksu.f90 writevclr.f90 \ genzvmatk.f90 genzvbmatk.f90 rhomagq.f90 writeengyu.f90 rfzfftq.f90 SRC_ULR1 = \ rhocoreu.f90 eveqnulr.f90 rhomaguk.f90 genhmlu.f90 potxcu.f90 writeinfou.f90 \ zfplot.f90 vclqinit.f90 writechgrmt.f90 initulr.f90 writemomrmt.f90 \ writestulr.f90 readstulr.f90 potefieldu.f90 puthdbulr.f90 gethdbulr.f90 \ potuinit.f90 readvclr.f90 genkpakq.f90 plotu1d.f90 plotu2d.f90 plotu3d.f90 \ gndstulr.f90 plotulr.f90 potuplot.f90 potcoulu.f90 rhouplot.f90 maguplot.f90 SRC_ULR = $(SRC_ULR0) $(SRC_ULR1) SRC_DFTU0 = \ gendmatmt.f90 genveedu.f90 tm2todm.f90 tm3todm.f90 dmtotm3.f90 SRC_DFTU1 = \ writedftu.f90 sbesseli.f90 shankeli.f90 genfdu.f90 genfdufr.f90 engyfdu.f90 \ findlambda.f90 vmatmtsc.f90 genvmatmt.f90 vmatmtdu.f90 vmatmtftm.f90 \ fyukawa.f90 fyukawa0.f90 readdmatmt.f90 writetm.f90 writetm3.f90 gendmftm.f90 \ writeftm.f90 writetdtm3.f90 genwkpr0.f90 tm3rtoz.f90 SRC_DFTU = $(SRC_DFTU0) $(SRC_DFTU1) SRC_RDMFT0 = \ rdmft.f90 rdmwriteengy.f90 rdmminc.f90 rdmvaryc.f90 rdmdedc.f90 rdmengyxc.f90 \ rdmminn.f90 rdmvaryn.f90 SRC_RDMFT1 = \ rdmdkdc.f90 rdmenergy.f90 rdmwritededn.f90 rdmdedn.f90 rdmdexcdn.f90 \ genvcl1223.f90 getvcl1221.f90 getvcl1223.f90 writevcl1221.f90 \ writevcl1223.f90 rdmdexcdc.f90 rdmdtsdn.f90 rdmentropy.f90 rdmeval.f90 \ genvcl1221.f90 SRC_RDMFT = $(SRC_RDMFT0) $(SRC_RDMFT1) SRC_GW0 = \ gwdmat.f90 gwlocal.f90 genwgw.f90 gwtails.f90 minf_nm.f90 acpole.f90 SRC_GW1 = \ gwrhomag.f90 gwdmatk.f90 gwefermi.f90 dysonr.f90 gwsefm.f90 putgwsefm.f90 \ getgwsefm.f90 writeigw.f90 polefit.f90 gwchgk.f90 gwsefmk.f90 gwspecf.f90 \ writegwsf.f90 acgwse.f90 fmin_nm.f90 zfpole.f90 gwbandstr.f90 SRC_GW = $(SRC_GW0) $(SRC_GW1) SRC_TDDFT0 = \ writeatdisp.f90 writetdforces.f90 readatdvc.f90 writetdengy.f90 \ writemomtd.f90 SRC_TDDFT1 = \ tddftlr.f90 genhmlt.f90 writetddos.f90 writeafpdt.f90 readafindt.f90 \ genvfxc.f90 genfxcr.f90 tdtemp.f90 writetdlsj.f90 genspfxcr.f90 genvfxcg.f90 \ tddftsplr.f90 genspfxcg.f90 genafieldt.f90 writetddft.f90 dielectric_tdrt.f90 \ readjtot.f90 afindtstep.f90 genefieldt.f90 energytd.f90 engyknk.f90 \ readforcet.f90 tdrestart.f90 writeatdvc.f90 rhostatic.f90 jtotk.f90 \ rhosplot.f90 bornecdyn.f90 becforce.f90 tdinit.f90 readrhos.f90 gengvnsmt.f90 \ genhafspt.f90 writeaxsf.f90 atptstep.f90 potkst.f90 tdbackup.f90 \ writetimes.f90 readtimes.f90 gentimes.f90 readafieldt.f90 genjr.f90 \ tddft.f90 timestep.f90 writetdjtk.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 \ k_tf.f90 k_tf_sp.f90 k_tf1.f90 k_tfvw.f90 k_tfvw_sp.f90 k_tfvw1.f90 k_vwlb.f90 SRC_W90 = \ initw90.f90 writew90.f90 writew90win.f90 writew90eig.f90 setupw90.f90 \ writew90mmn.f90 writew90spn.f90 writew90amn.f90 writew90unk.f90 SRC = $(SRC_modules) $(SRC_FFT) $(SRC_elk) $(SRC_main) $(SRC_phonon) \ $(SRC_XC) $(SRC_DFTU) $(SRC_RDMFT) $(SRC_GW) $(SRC_TDDFT) \ $(SRC_ULR) $(SRC_W90) $(SRC_BOG) $(SRC_TDHFC) 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) $(F90_LIB) $(LIB_LIBXC) $(LIB_W90) all: elk clean: rm -f *.o *.mod *~ ifc* *.gcno gmon.out *.aux *.dvi *.log \ elk.pdf *.tex *.toc *.out $(EXE) cleanall: $(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) $(SRC_GW) > elk.lst ./protex -F -s $(SRC_elk) $$(cat elk.lst) > elk.tex pdflatex elk;pdflatex elk;pdflatex elk backup: tar -czf elk.tgz *.f90 libfftv eos spacegroup junk Makefile notes.txt \ ../docs ../examples ../tests ../tests-libxc protex ../COPYING \ ../README elk_silhouette.pdf depend gentest genalltests checklist.txt \ rmspaces checklen fmlop grepelk vimelk VERSION = $$(grep "version(3)" modmain.f90 | sed 's/.*\[\([^]]*\)\].*/\1/g' | sed 's/,/./g') NAME = elk-$(VERSION) RELEASE = ../release/$(NAME) version: echo $(VERSION) release: rm -rf $(RELEASE) mkdir $(RELEASE) 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 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 mkl_stub.f90 w90_stub.f90 $(RELEASE)/src cp libxcf90.f90 libxcifc.f90 libxcifc_stub.f90 $(RELEASE)/src cp zfftifc_fftw.f90 cfftifc_fftw.f90 zfftifc_mkl.f90 cfftifc_mkl.f90 $(RELEASE)/src cp -r ../examples $(RELEASE) cp -r ../tests $(RELEASE) cp -r ../tests-libxc $(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 ../make.inc $(RELEASE) cp ../elk.sh $(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 echo $(NAME) lines: cat $(SRC) | wc -l spaces: ./rmspaces $(SRC) length: ./checklen $(SRC) vim: ./vimelk elk-9.6.8/src/PaxHeaders/protex0000644000000000000000000000013214626155517013436 xustar0030 mtime=1717099343.975986336 30 atime=1717099343.974986331 30 ctime=1717099343.975986336 elk-9.6.8/src/protex0000755002504400250440000011077514626155517016176 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 (removed to maintain Perl 5.30 compatibility) $, = ' '; # 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[0] eq '!QUOTE:') { for ($i = 1; $i <= $#Fld - 1; $i++) { printf '%s ', $Fld[$i]; }# end for print " "; next LINE; }# end if # Handle optional Title Page and Introduction # ------------------------------------------- if ($Fld[0] eq $boi_string) { print ' '; $intro = 1; next LINE; }# end if if ($Fld[1] eq '!TITLE:') { if ( $intro ) { shift @Fld; shift @Fld; @title = @Fld; $tpage = 1; next LINE; }# end if }# end if if ($Fld[1] eq '!AUTHORS:') { if ( $intro ) { shift @Fld; shift @Fld; @author = @Fld; $tpage = 1; next LINE; }# end if }# end if if ($Fld[1] eq '!AFFILIATION:') { if ( $intro ) { shift @Fld; shift @Fld; @affiliation = @Fld; $tpage = 1; next LINE; }# end if }# end if if ($Fld[1] eq '!DATE:') { if ( $intro ) { shift @Fld; shift @Fld; @date = @Fld; $tpage = 1; next LINE; }# end if }# end if if ($Fld[1] 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[0] eq $eoi_string) { print ' '; print '%/////////////////////////////////////////////////////////////'; print "\\newpage"; $intro = 0; next LINE; }# end if # Beginning of prologue # --------------------- if ($Fld[0] 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[0] 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[1] 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[1] 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[1] 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[1] 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[1] 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[1] 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[1] 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 = 2; $i <= $#Fld - 1; $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, 1, $ln - 1); } # italics else { printf "{\\sf %s}\n", substr($k, 1, $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[0] 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[0] = $boc_string;} else { next LINE; } }# end if unless ( $opt_s ) { # End of Internal Prologue # ------------------------ if ($Fld[0] 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[0] = $boc_string;} else { next LINE; } }# endif # # Beginning of source code section # -------------------------------- if ($Fld[0] 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[0] eq $eoc_string) { &do_eoc(); $prologue = 0; next LINE; }# end if # Beginning of example prologue # ----------------------------- if ($Fld[0] 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[0] eq $eoe_string) { if ($verb) { print "\\end{verbatim}"; $verb = 0; }# end if $prologue = 0; if ( $opt_l ) { $Fld[0] = $boc_string;} else { next LINE; } }# end if }# end unless # Prologue or Introduction, print regular line (except for !) # ----------------------------------------------------------- if ($prologue||$intro) { if ( $verb && $#Fld == 0 && ( $Fld[0] eq $comment_string ) ) { next LINE; # to eliminate excessive blanks }# end if if ( $Fld[1] 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-9.6.8/src/PaxHeaders/elk_silhouette.pdf0000644000000000000000000000013214626155517015705 xustar0030 mtime=1717099343.978986352 30 atime=1717099343.977986347 30 ctime=1717099343.978986352 elk-9.6.8/src/elk_silhouette.pdf0000644002504400250440000001426214626155517020434 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-9.6.8/src/PaxHeaders/rmspaces0000644000000000000000000000013214626155521013725 xustar0030 mtime=1717099345.528994704 30 atime=1717099345.528994704 30 ctime=1717099345.528994704 elk-9.6.8/src/rmspaces0000755002504400250440000000021114626155521016444 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-9.6.8/src/PaxHeaders/grepelk0000644000000000000000000000013014626155521013537 xustar0029 mtime=1717099345.53199472 30 atime=1717099345.530994714 29 ctime=1717099345.53199472 elk-9.6.8/src/grepelk0000755002504400250440000000064414626155521016272 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 "tests-libxc" grep -r "$@" ../tests-libxc/* echo echo "species" grep -r "$@" ../species/* echo echo "utilities" grep -r "$@" ../utilities/* elk-9.6.8/src/PaxHeaders/vimelk0000644000000000000000000000013214626155521013377 xustar0030 mtime=1717099345.533994731 30 atime=1717099345.532994725 30 ctime=1717099345.533994731 elk-9.6.8/src/vimelk0000755002504400250440000000213614626155521016126 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 'colorscheme zellner' >> elk.vim 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-9.6.8/src/PaxHeaders/mpi_stub.f900000644000000000000000000000013214626155521014327 xustar0030 mtime=1717099345.547994806 30 atime=1717099345.547994806 30 ctime=1717099345.547994806 elk-9.6.8/src/mpi_stub.f900000644002504400250440000000317314626155521017055 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 contains subroutine mpi_init(ierror) implicit none integer, intent(out) :: ierror ierror=0 end subroutine subroutine mpi_finalize(ierror) implicit none integer, intent(out) :: ierror ierror=0 end subroutine subroutine mpi_comm_dup(comm,newcomm,ierror) implicit none integer, intent(in) :: comm integer, intent(out) :: newcomm,ierror newcomm=comm ierror=0 end subroutine subroutine mpi_comm_size(comm,size,ierror) implicit none integer, intent(in) :: comm integer, intent(out) :: size,ierror size=1 ierror=0 end subroutine subroutine mpi_comm_rank(comm,rank,ierror) implicit none integer, intent(in) :: comm integer, intent(out) :: rank,ierror rank=0 ierror=0 end subroutine subroutine mpi_barrier(comm,ierror) implicit none integer, intent(in) :: comm integer, intent(out) :: ierror ierror=0 end subroutine subroutine mpi_bcast(buffer,count,datatype,root,comm,ierror) implicit none type(*), intent(in) :: buffer(..) integer, intent(in) :: count,datatype,root,comm integer, intent(out) :: ierror ierror=0 end subroutine subroutine mpi_allreduce(sendbuf,recvbuf,count,datatype,op,comm,ierror) implicit none type(*), intent(in) :: sendbuf(..),recvbuf(..) integer, intent(in) :: count,datatype,op,comm integer, intent(out) :: ierror ierror=0 end subroutine end module elk-9.6.8/src/PaxHeaders/mkl_stub.f900000644000000000000000000000013214626155521014325 xustar0030 mtime=1717099345.550994822 30 atime=1717099345.549994817 30 ctime=1717099345.550994822 elk-9.6.8/src/mkl_stub.f900000644002504400250440000000107714626155521017054 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 end subroutine integer function mkl_set_num_threads_local(num_threads) implicit none integer, intent(in) :: num_threads mkl_set_num_threads_local=0 end function subroutine mkl_set_dynamic(dynamic) implicit none logical, intent(in) :: dynamic end subroutine elk-9.6.8/src/PaxHeaders/libxcf90.f900000644000000000000000000000013214626155521014125 xustar0030 mtime=1717099345.567994914 30 atime=1717099345.565994903 30 ctime=1717099345.567994914 elk-9.6.8/src/libxcf90.f900000644002504400250440000037477414626155521016675 0ustar00dewhurstdewhurst00000000000000!! Copyright (C) 2016 Micael Oliveira !! 2020-2022 Susi Lehtola !! All rights reserved. !! !! 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/. module xc_f90_lib_m use, intrinsic :: iso_c_binding implicit none private public :: & ! version xc_f90_version, & xc_f90_version_string, & ! literature reference xc_f90_reference, & xc_f90_reference_doi, & ! func_info xc_f90_func_info_t, & xc_f90_func_info_get_number, & xc_f90_func_info_get_kind, & xc_f90_func_info_get_name, & xc_f90_func_info_get_family, & xc_f90_func_info_get_references, & xc_f90_func_info_get_flags, & xc_f90_func_info_get_n_ext_params, & xc_f90_func_info_get_ext_params_name, & xc_f90_func_info_get_ext_params_description, & xc_f90_func_info_get_ext_params_default_value, & ! func_reference xc_f90_func_reference_t, & xc_f90_func_reference_get_ref, & xc_f90_func_reference_get_doi, & xc_f90_func_reference_get_bibtex, & ! func xc_f90_func_t, & xc_f90_func_init, & xc_f90_func_end, & xc_f90_func_get_info, & xc_f90_functional_get_name, & xc_f90_functional_get_number, & xc_f90_family_from_id, & xc_f90_number_of_functionals, & xc_f90_maximum_name_length, & xc_f90_available_functional_numbers, & xc_f90_available_functional_names, & xc_f90_func_set_dens_threshold, & xc_f90_func_set_zeta_threshold, & xc_f90_func_set_sigma_threshold, & xc_f90_func_set_tau_threshold, & xc_f90_func_set_ext_params, & xc_f90_func_set_ext_params_name, & ! mixed functional interfaces xc_f90_num_aux_funcs, & xc_f90_aux_func_ids, & xc_f90_aux_func_weights, & ! lda xc_f90_lda, & xc_f90_lda_exc, & xc_f90_lda_exc_vxc, & xc_f90_lda_exc_vxc_fxc, & xc_f90_lda_exc_vxc_fxc_kxc, & xc_f90_lda_vxc, & xc_f90_lda_vxc_fxc, & xc_f90_lda_vxc_fxc_kxc, & xc_f90_lda_fxc, & xc_f90_lda_kxc, & xc_f90_lda_lxc, & ! gga xc_f90_gga, & xc_f90_gga_exc, & xc_f90_gga_exc_vxc, & xc_f90_gga_exc_vxc_fxc, & xc_f90_gga_exc_vxc_fxc_kxc, & xc_f90_gga_vxc, & xc_f90_gga_vxc_fxc, & xc_f90_gga_vxc_fxc_kxc, & xc_f90_gga_fxc, & xc_f90_gga_kxc, & xc_f90_gga_lxc, & xc_f90_gga_ak13_get_asymptotic, & xc_f90_hyb_exx_coef, & xc_f90_hyb_cam_coef, & xc_f90_nlc_coef, & ! mgga xc_f90_mgga, & xc_f90_mgga_exc, & xc_f90_mgga_exc_vxc, & xc_f90_mgga_exc_vxc_fxc, & xc_f90_mgga_exc_vxc_fxc_kxc, & xc_f90_mgga_vxc, & xc_f90_mgga_vxc_fxc, & xc_f90_mgga_vxc_fxc_kxc, & xc_f90_mgga_fxc, & xc_f90_mgga_kxc, & xc_f90_mgga_lxc integer(c_int), parameter, public :: & XC_UNPOLARIZED = 1, & ! Spin unpolarized XC_POLARIZED = 2 ! Spin polarized integer(c_int), parameter, public :: & XC_NON_RELATIVISTIC = 0, & ! Functional includes or not relativistic XC_RELATIVISTIC = 1 ! corrections. Only available in some functionals. ! Kinds integer(c_int), parameter, public :: & XC_EXCHANGE = 0, & XC_CORRELATION = 1, & XC_EXCHANGE_CORRELATION = 2, & XC_KINETIC = 3 ! Families of xc functionals integer(c_int), parameter, public :: & 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, & XC_FAMILY_HYB_LDA = 128 integer(c_int), parameter, public :: & 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_HAVE_ALL = 31, & ! The most common case XC_FLAGS_1D = 32, & XC_FLAGS_2D = 64, & XC_FLAGS_3D = 128, & XC_FLAGS_HYB_CAM = 256, & XC_FLAGS_HYB_CAMY = 512, & XC_FLAGS_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(c_int), parameter, public :: & XC_TAU_EXPLICIT = 0, & XC_TAU_EXPANSION = 1 integer(c_int), parameter, public :: & XC_MAX_REFERENCES = 5 ! List of functionals ! Slater exchange integer(c_int), parameter, public :: XC_LDA_X = 1 ! Wigner integer(c_int), parameter, public :: XC_LDA_C_WIGNER = 2 ! Random Phase Approximation (RPA) integer(c_int), parameter, public :: XC_LDA_C_RPA = 3 ! Hedin & Lundqvist integer(c_int), parameter, public :: XC_LDA_C_HL = 4 ! Gunnarson & Lundqvist integer(c_int), parameter, public :: XC_LDA_C_GL = 5 ! Slaters Xalpha integer(c_int), parameter, public :: XC_LDA_C_XALPHA = 6 ! Vosko, Wilk & Nusair (VWN5) integer(c_int), parameter, public :: XC_LDA_C_VWN = 7 ! Vosko, Wilk & Nusair (VWN5_RPA) integer(c_int), parameter, public :: XC_LDA_C_VWN_RPA = 8 ! Perdew & Zunger integer(c_int), parameter, public :: XC_LDA_C_PZ = 9 ! Perdew & Zunger (Modified) integer(c_int), parameter, public :: XC_LDA_C_PZ_MOD = 10 ! Ortiz & Ballone (PZ parametrization) integer(c_int), parameter, public :: XC_LDA_C_OB_PZ = 11 ! Perdew & Wang integer(c_int), parameter, public :: XC_LDA_C_PW = 12 ! Perdew & Wang (modified) integer(c_int), parameter, public :: XC_LDA_C_PW_MOD = 13 ! Ortiz & Ballone (PW parametrization) integer(c_int), parameter, public :: XC_LDA_C_OB_PW = 14 ! AMGB (for 2D systems) integer(c_int), parameter, public :: XC_LDA_C_2D_AMGB = 15 ! PRM (for 2D systems) integer(c_int), parameter, public :: XC_LDA_C_2D_PRM = 16 ! von Barth & Hedin integer(c_int), parameter, public :: XC_LDA_C_VBH = 17 ! Casula, Sorella & Senatore integer(c_int), parameter, public :: XC_LDA_C_1D_CSC = 18 ! Slater exchange integer(c_int), parameter, public :: XC_LDA_X_2D = 19 ! Teter 93 integer(c_int), parameter, public :: XC_LDA_XC_TETER93 = 20 ! Exchange in 1D for an soft-Coulomb interaction integer(c_int), parameter, public :: XC_LDA_X_1D_SOFT = 21 ! Modified LSD (version 1) of Proynov and Salahub integer(c_int), parameter, public :: XC_LDA_C_ML1 = 22 ! Modified LSD (version 2) of Proynov and Salahub integer(c_int), parameter, public :: XC_LDA_C_ML2 = 23 ! Gombas integer(c_int), parameter, public :: XC_LDA_C_GOMBAS = 24 ! Perdew & Wang (fit to the RPA energy) integer(c_int), parameter, public :: XC_LDA_C_PW_RPA = 25 ! P-F Loos correlation LDA integer(c_int), parameter, public :: XC_LDA_C_1D_LOOS = 26 ! Ragot-Cortona integer(c_int), parameter, public :: XC_LDA_C_RC04 = 27 ! Vosko, Wilk & Nusair (VWN1) integer(c_int), parameter, public :: XC_LDA_C_VWN_1 = 28 ! Vosko, Wilk & Nusair (VWN2) integer(c_int), parameter, public :: XC_LDA_C_VWN_2 = 29 ! Vosko, Wilk & Nusair (VWN3) integer(c_int), parameter, public :: XC_LDA_C_VWN_3 = 30 ! Vosko, Wilk & Nusair (VWN4) integer(c_int), parameter, public :: XC_LDA_C_VWN_4 = 31 ! Minnesota GAM exhange functional integer(c_int), parameter, public :: XC_GGA_X_GAM = 32 ! Minnesota GAM correlation functional integer(c_int), parameter, public :: XC_GGA_C_GAM = 33 ! HCTH-A integer(c_int), parameter, public :: XC_GGA_X_HCTH_A = 34 ! Engel and Vosko integer(c_int), parameter, public :: XC_GGA_X_EV93 = 35 ! Dispersionless Density Functional integer(c_int), parameter, public :: XC_HYB_MGGA_X_DLDF = 36 ! Dispersionless Density Functional integer(c_int), parameter, public :: XC_MGGA_C_DLDF = 37 ! Burke, Cancio, Gould, and Pittalis integer(c_int), parameter, public :: XC_GGA_X_BCGP = 38 ! acGGA, asymptotically corrected GGA correlation integer(c_int), parameter, public :: XC_GGA_C_ACGGA = 39 ! lambda_OC2(N) version of PBE integer(c_int), parameter, public :: XC_GGA_X_LAMBDA_OC2_N = 40 ! Revised Becke 86 with modified gradient correction integer(c_int), parameter, public :: XC_GGA_X_B86_R = 41 ! Zhao, Levy & Parr, Eq. (21) integer(c_int), parameter, public :: XC_MGGA_XC_ZLP = 42 ! Zhao, Levy & Parr, Eq. (20) integer(c_int), parameter, public :: XC_LDA_XC_ZLP = 43 ! lambda_CH(N) version of PBE integer(c_int), parameter, public :: XC_GGA_X_LAMBDA_CH_N = 44 ! lambda_LO(N) version of PBE integer(c_int), parameter, public :: XC_GGA_X_LAMBDA_LO_N = 45 ! HJS screened exchange B88 corrected version integer(c_int), parameter, public :: XC_GGA_X_HJS_B88_V2 = 46 ! Chiodo et al integer(c_int), parameter, public :: XC_GGA_C_Q2D = 47 ! Chiodo et al integer(c_int), parameter, public :: XC_GGA_X_Q2D = 48 ! Reparametrized PBE by del Campo, Gazquez, Trickey & Vela integer(c_int), parameter, public :: XC_GGA_X_PBE_MOL = 49 ! Thomas-Fermi kinetic energy integer(c_int), parameter, public :: XC_LDA_K_TF = 50 ! Lee and Parr Gaussian ansatz for the kinetic energy integer(c_int), parameter, public :: XC_LDA_K_LP = 51 ! Thomas-Fermi plus von Weiszaecker correction integer(c_int), parameter, public :: XC_GGA_K_TFVW = 52 ! interpolated version of revAPBE integer(c_int), parameter, public :: XC_GGA_K_REVAPBEINT = 53 ! interpolated version of APBE integer(c_int), parameter, public :: XC_GGA_K_APBEINT = 54 ! revised APBE integer(c_int), parameter, public :: XC_GGA_K_REVAPBE = 55 ! Armiento & Kuemmel 2013 integer(c_int), parameter, public :: XC_GGA_X_AK13 = 56 ! Meyer, Wang, and Young integer(c_int), parameter, public :: XC_GGA_K_MEYER = 57 ! Berland and Hyldgaard integer(c_int), parameter, public :: XC_GGA_X_LV_RPW86 = 58 ! PBE revised by Tognetti et al integer(c_int), parameter, public :: XC_GGA_X_PBE_TCA = 59 ! PBE for hybrid interfaces integer(c_int), parameter, public :: XC_GGA_X_PBEINT = 60 ! spin-dependent gradient correction to PBEint integer(c_int), parameter, public :: XC_GGA_C_ZPBEINT = 61 ! PBE for hybrid interfaces integer(c_int), parameter, public :: XC_GGA_C_PBEINT = 62 ! spin-dependent gradient correction to PBEsol integer(c_int), parameter, public :: XC_GGA_C_ZPBESOL = 63 ! oTPSS-D functional of Goerigk and Grimme integer(c_int), parameter, public :: XC_MGGA_XC_OTPSS_D = 64 ! oPBE-D functional of Goerigk and Grimme integer(c_int), parameter, public :: XC_GGA_XC_OPBE_D = 65 ! oPWLYP-D functional of Goerigk and Grimme integer(c_int), parameter, public :: XC_GGA_XC_OPWLYP_D = 66 ! oBLYP-D functional of Goerigk and Grimme integer(c_int), parameter, public :: XC_GGA_XC_OBLYP_D = 67 ! VMT{8,4} with constraint satisfaction with mu = mu_GE integer(c_int), parameter, public :: XC_GGA_X_VMT84_GE = 68 ! VMT{8,4} with constraint satisfaction with mu = mu_PBE integer(c_int), parameter, public :: XC_GGA_X_VMT84_PBE = 69 ! Vela, Medel, and Trickey with mu = mu_GE integer(c_int), parameter, public :: XC_GGA_X_VMT_GE = 70 ! Vela, Medel, and Trickey with mu = mu_PBE integer(c_int), parameter, public :: XC_GGA_X_VMT_PBE = 71 ! Colle and Salvetti integer(c_int), parameter, public :: XC_MGGA_C_CS = 72 ! Minnesota MN12-SX correlation functional integer(c_int), parameter, public :: XC_MGGA_C_MN12_SX = 73 ! Minnesota MN12-L correlation functional integer(c_int), parameter, public :: XC_MGGA_C_MN12_L = 74 ! Minnesota M11-L correlation functional integer(c_int), parameter, public :: XC_MGGA_C_M11_L = 75 ! Minnesota M11 correlation functional integer(c_int), parameter, public :: XC_MGGA_C_M11 = 76 ! Minnesota M08-SO correlation functional integer(c_int), parameter, public :: XC_MGGA_C_M08_SO = 77 ! Minnesota M08 correlation functional integer(c_int), parameter, public :: XC_MGGA_C_M08_HX = 78 ! Minnesota N12-SX correlation functional integer(c_int), parameter, public :: XC_GGA_C_N12_SX = 79 ! Minnesota N12 correlation functional integer(c_int), parameter, public :: XC_GGA_C_N12 = 80 ! Minnesota N12-SX exchange functional integer(c_int), parameter, public :: XC_HYB_GGA_X_N12_SX = 81 ! Minnesota N12 exchange functional integer(c_int), parameter, public :: XC_GGA_X_N12 = 82 ! regularized TPSS correlation integer(c_int), parameter, public :: XC_GGA_C_REGTPSS = 83 ! one-parameter progressive functional (Xalpha version) integer(c_int), parameter, public :: XC_GGA_C_OP_XALPHA = 84 ! one-parameter progressive functional (G96 version) integer(c_int), parameter, public :: XC_GGA_C_OP_G96 = 85 ! one-parameter progressive functional (PBE version) integer(c_int), parameter, public :: XC_GGA_C_OP_PBE = 86 ! one-parameter progressive functional (B88 version) integer(c_int), parameter, public :: XC_GGA_C_OP_B88 = 87 ! Filatov & Thiel correlation integer(c_int), parameter, public :: XC_GGA_C_FT97 = 88 ! PBE correlation to be used with the SSB exchange integer(c_int), parameter, public :: XC_GGA_C_SPBE = 89 ! Swart, Sola and Bickelhaupt correction to PBE integer(c_int), parameter, public :: XC_GGA_X_SSB_SW = 90 ! Swart, Sola and Bickelhaupt integer(c_int), parameter, public :: XC_GGA_X_SSB = 91 ! Swart, Sola and Bickelhaupt dispersion integer(c_int), parameter, public :: XC_GGA_X_SSB_D = 92 ! HCTH/407+ integer(c_int), parameter, public :: XC_GGA_XC_HCTH_407P = 93 ! HCTH p=7/6 integer(c_int), parameter, public :: XC_GGA_XC_HCTH_P76 = 94 ! HCTH p=1/4 integer(c_int), parameter, public :: XC_GGA_XC_HCTH_P14 = 95 ! Becke 97 GGA-1 integer(c_int), parameter, public :: XC_GGA_XC_B97_GGA1 = 96 ! HCTH-A integer(c_int), parameter, public :: XC_GGA_C_HCTH_A = 97 ! BPCCAC (GRAC for the energy) integer(c_int), parameter, public :: XC_GGA_X_BPCCAC = 98 ! Tognetti, Cortona, Adamo (revised) integer(c_int), parameter, public :: XC_GGA_C_REVTCA = 99 ! Tognetti, Cortona, Adamo integer(c_int), parameter, public :: XC_GGA_C_TCA = 100 ! Perdew, Burke & Ernzerhof integer(c_int), parameter, public :: XC_GGA_X_PBE = 101 ! Revised PBE from Zhang & Yang integer(c_int), parameter, public :: XC_GGA_X_PBE_R = 102 ! Becke 86 integer(c_int), parameter, public :: XC_GGA_X_B86 = 103 ! Herman Xalphabeta GGA integer(c_int), parameter, public :: XC_GGA_X_HERMAN = 104 ! Becke 86 with modified gradient correction integer(c_int), parameter, public :: XC_GGA_X_B86_MGC = 105 ! Becke 88 integer(c_int), parameter, public :: XC_GGA_X_B88 = 106 ! Gill 96 integer(c_int), parameter, public :: XC_GGA_X_G96 = 107 ! Perdew & Wang 86 integer(c_int), parameter, public :: XC_GGA_X_PW86 = 108 ! Perdew & Wang 91 integer(c_int), parameter, public :: XC_GGA_X_PW91 = 109 ! Handy & Cohen OPTX 01 integer(c_int), parameter, public :: XC_GGA_X_OPTX = 110 ! dePristo & Kress 87 version R1 integer(c_int), parameter, public :: XC_GGA_X_DK87_R1 = 111 ! dePristo & Kress 87 version R2 integer(c_int), parameter, public :: XC_GGA_X_DK87_R2 = 112 ! Lacks & Gordon 93 integer(c_int), parameter, public :: XC_GGA_X_LG93 = 113 ! Filatov & Thiel 97 (version A) integer(c_int), parameter, public :: XC_GGA_X_FT97_A = 114 ! Filatov & Thiel 97 (version B) integer(c_int), parameter, public :: XC_GGA_X_FT97_B = 115 ! Perdew, Burke & Ernzerhof SOL integer(c_int), parameter, public :: XC_GGA_X_PBE_SOL = 116 ! Hammer, Hansen, and Norskov integer(c_int), parameter, public :: XC_GGA_X_RPBE = 117 ! Wu & Cohen integer(c_int), parameter, public :: XC_GGA_X_WC = 118 ! mPW91 of Adamo & Barone integer(c_int), parameter, public :: XC_GGA_X_MPW91 = 119 ! Armiento & Mattsson 05 integer(c_int), parameter, public :: XC_GGA_X_AM05 = 120 ! Madsen 07 integer(c_int), parameter, public :: XC_GGA_X_PBEA = 121 ! Adamo & Barone modification to PBE integer(c_int), parameter, public :: XC_GGA_X_MPBE = 122 ! Extended PBE by Xu & Goddard III integer(c_int), parameter, public :: XC_GGA_X_XPBE = 123 ! Becke 86 with modified gradient correction for 2D integer(c_int), parameter, public :: XC_GGA_X_2D_B86_MGC = 124 ! Bayesian best fit for the enhancement factor integer(c_int), parameter, public :: XC_GGA_X_BAYESIAN = 125 ! Reparametrized PBE by Pedroza, Silva & Capelle integer(c_int), parameter, public :: XC_GGA_X_PBE_JSJR = 126 ! Becke 88 in 2D integer(c_int), parameter, public :: XC_GGA_X_2D_B88 = 127 ! Becke 86 in 2D integer(c_int), parameter, public :: XC_GGA_X_2D_B86 = 128 ! Perdew, Burke & Ernzerhof in 2D integer(c_int), parameter, public :: XC_GGA_X_2D_PBE = 129 ! Perdew, Burke & Ernzerhof integer(c_int), parameter, public :: XC_GGA_C_PBE = 130 ! Lee, Yang & Parr integer(c_int), parameter, public :: XC_GGA_C_LYP = 131 ! Perdew 86 integer(c_int), parameter, public :: XC_GGA_C_P86 = 132 ! Perdew, Burke & Ernzerhof SOL integer(c_int), parameter, public :: XC_GGA_C_PBE_SOL = 133 ! Perdew & Wang 91 integer(c_int), parameter, public :: XC_GGA_C_PW91 = 134 ! Armiento & Mattsson 05 integer(c_int), parameter, public :: XC_GGA_C_AM05 = 135 ! Extended PBE by Xu & Goddard III integer(c_int), parameter, public :: XC_GGA_C_XPBE = 136 ! Langreth & Mehl integer(c_int), parameter, public :: XC_GGA_C_LM = 137 ! Reparametrized PBE by Pedroza, Silva & Capelle integer(c_int), parameter, public :: XC_GGA_C_PBE_JRGX = 138 ! opt-Becke 88 for vdW integer(c_int), parameter, public :: XC_GGA_X_OPTB88_VDW = 139 ! Reparametrized PBE for vdW integer(c_int), parameter, public :: XC_GGA_X_PBEK1_VDW = 140 ! Reparametrized PBE for vdW integer(c_int), parameter, public :: XC_GGA_X_OPTPBE_VDW = 141 ! Regularized PBE integer(c_int), parameter, public :: XC_GGA_X_RGE2 = 142 ! Regularized PBE integer(c_int), parameter, public :: XC_GGA_C_RGE2 = 143 ! Refitted Perdew & Wang 86 integer(c_int), parameter, public :: XC_GGA_X_RPW86 = 144 ! Exchange part of Keal and Tozer version 1 integer(c_int), parameter, public :: XC_GGA_X_KT1 = 145 ! Keal and Tozer, version 2 integer(c_int), parameter, public :: XC_GGA_XC_KT2 = 146 ! Wilson & Levy integer(c_int), parameter, public :: XC_GGA_C_WL = 147 ! Wilson & Ivanov integer(c_int), parameter, public :: XC_GGA_C_WI = 148 ! Modified Becke 88 for proton transfer integer(c_int), parameter, public :: XC_GGA_X_MB88 = 149 ! Second-order generalized gradient approximation integer(c_int), parameter, public :: XC_GGA_X_SOGGA = 150 ! Second-order generalized gradient approximation 2011 integer(c_int), parameter, public :: XC_GGA_X_SOGGA11 = 151 ! Second-order generalized gradient approximation 2011 integer(c_int), parameter, public :: XC_GGA_C_SOGGA11 = 152 ! Wilson & Ivanov initial version integer(c_int), parameter, public :: XC_GGA_C_WI0 = 153 ! Tozer and Handy v. 1 integer(c_int), parameter, public :: XC_GGA_XC_TH1 = 154 ! Tozer and Handy v. 2 integer(c_int), parameter, public :: XC_GGA_XC_TH2 = 155 ! Tozer and Handy v. 3 integer(c_int), parameter, public :: XC_GGA_XC_TH3 = 156 ! Tozer and Handy v. 4 integer(c_int), parameter, public :: XC_GGA_XC_TH4 = 157 ! C09x to be used with the VdW of Rutgers-Chalmers integer(c_int), parameter, public :: XC_GGA_X_C09X = 158 ! To be used with HYB_GGA_X_SOGGA11_X integer(c_int), parameter, public :: XC_GGA_C_SOGGA11_X = 159 ! van Leeuwen & Baerends integer(c_int), parameter, public :: XC_GGA_X_LB = 160 ! HCTH/93 integer(c_int), parameter, public :: XC_GGA_XC_HCTH_93 = 161 ! HCTH/120 integer(c_int), parameter, public :: XC_GGA_XC_HCTH_120 = 162 ! HCTH/147 integer(c_int), parameter, public :: XC_GGA_XC_HCTH_147 = 163 ! HCTH/407 integer(c_int), parameter, public :: XC_GGA_XC_HCTH_407 = 164 ! EDF1 integer(c_int), parameter, public :: XC_GGA_XC_EDF1 = 165 ! XLYP integer(c_int), parameter, public :: XC_GGA_XC_XLYP = 166 ! Keal and Tozer, version 1 integer(c_int), parameter, public :: XC_GGA_XC_KT1 = 167 ! lsPBE, a PW91-like modification of PBE exchange integer(c_int), parameter, public :: XC_GGA_X_LSPBE = 168 ! lsRPBE, a PW91-like modification of RPBE integer(c_int), parameter, public :: XC_GGA_X_LSRPBE = 169 ! Becke 97-D integer(c_int), parameter, public :: XC_GGA_XC_B97_D = 170 ! Becke 86 reoptimized for use with vdW functional of Dion et al integer(c_int), parameter, public :: XC_GGA_X_OPTB86B_VDW = 171 ! Revised Minnesota M11 correlation functional integer(c_int), parameter, public :: XC_MGGA_C_REVM11 = 172 ! PBE1W integer(c_int), parameter, public :: XC_GGA_XC_PBE1W = 173 ! mPWLYP1w integer(c_int), parameter, public :: XC_GGA_XC_MPWLYP1W = 174 ! PBELYP1W integer(c_int), parameter, public :: XC_GGA_XC_PBELYP1W = 175 ! acGGA+, asymptotically corrected GGA correlation+ integer(c_int), parameter, public :: XC_GGA_C_ACGGAP = 176 ! LDA hybrid exchange (LDA0) integer(c_int), parameter, public :: XC_HYB_LDA_XC_LDA0 = 177 ! CAM version of LDA0 integer(c_int), parameter, public :: XC_HYB_LDA_XC_CAM_LDA0 = 178 ! Becke 88 reoptimized with the 6-311G** basis set integer(c_int), parameter, public :: XC_GGA_X_B88_6311G = 179 ! Nearly correct asymptotic potential integer(c_int), parameter, public :: XC_GGA_X_NCAP = 180 ! NCAP exchange + P86 correlation integer(c_int), parameter, public :: XC_GGA_XC_NCAP = 181 ! van Leeuwen & Baerends modified integer(c_int), parameter, public :: XC_GGA_X_LBM = 182 ! Exchange form based on Ou-Yang and Levy v.2 integer(c_int), parameter, public :: XC_GGA_X_OL2 = 183 ! mu fixed from the semiclassical neutral atom integer(c_int), parameter, public :: XC_GGA_X_APBE = 184 ! mu fixed from the semiclassical neutral atom integer(c_int), parameter, public :: XC_GGA_K_APBE = 185 ! mu fixed from the semiclassical neutral atom integer(c_int), parameter, public :: XC_GGA_C_APBE = 186 ! Tran and Wesolowski set 1 (Table II) integer(c_int), parameter, public :: XC_GGA_K_TW1 = 187 ! Tran and Wesolowski set 2 (Table II) integer(c_int), parameter, public :: XC_GGA_K_TW2 = 188 ! Tran and Wesolowski set 3 (Table II) integer(c_int), parameter, public :: XC_GGA_K_TW3 = 189 ! Tran and Wesolowski set 4 (Table II) integer(c_int), parameter, public :: XC_GGA_K_TW4 = 190 ! Haas, Tran, Blaha, and Schwarz integer(c_int), parameter, public :: XC_GGA_X_HTBS = 191 ! Constantin et al based on the Airy gas integer(c_int), parameter, public :: XC_GGA_X_AIRY = 192 ! Local Airy Gas integer(c_int), parameter, public :: XC_GGA_X_LAG = 193 ! Functional for organometallic chemistry integer(c_int), parameter, public :: XC_GGA_XC_MOHLYP = 194 ! Functional for barrier heights integer(c_int), parameter, public :: XC_GGA_XC_MOHLYP2 = 195 ! Tozer and Handy v. FL integer(c_int), parameter, public :: XC_GGA_XC_TH_FL = 196 ! Tozer and Handy v. FC integer(c_int), parameter, public :: XC_GGA_XC_TH_FC = 197 ! Tozer and Handy v. FCFO integer(c_int), parameter, public :: XC_GGA_XC_TH_FCFO = 198 ! Tozer and Handy v. FCO integer(c_int), parameter, public :: XC_GGA_XC_TH_FCO = 199 ! Optimized correlation functional of Cohen and Handy integer(c_int), parameter, public :: XC_GGA_C_OPTC = 200 ! Local tau approximation integer(c_int), parameter, public :: XC_MGGA_X_LTA = 201 ! Tao, Perdew, Staroverov & Scuseria integer(c_int), parameter, public :: XC_MGGA_X_TPSS = 202 ! Minnesota M06-L exchange functional integer(c_int), parameter, public :: XC_MGGA_X_M06_L = 203 ! GVT4 (X part of VSXC) integer(c_int), parameter, public :: XC_MGGA_X_GVT4 = 204 ! tau-HCTH from Boese and Handy integer(c_int), parameter, public :: XC_MGGA_X_TAU_HCTH = 205 ! Becke-Roussel 89, gamma = 0.8 integer(c_int), parameter, public :: XC_MGGA_X_BR89 = 206 ! Becke & Johnson 06 integer(c_int), parameter, public :: XC_MGGA_X_BJ06 = 207 ! Tran & Blaha 09 integer(c_int), parameter, public :: XC_MGGA_X_TB09 = 208 ! Rasanen, Pittalis & Proetto 09 integer(c_int), parameter, public :: XC_MGGA_X_RPP09 = 209 ! Pittalis-Rasanen-Helbig-Gross 2007 integer(c_int), parameter, public :: XC_MGGA_X_2D_PRHG07 = 210 ! PRHG07 with Pittalis-Rasanen-Proetto 2010 correction integer(c_int), parameter, public :: XC_MGGA_X_2D_PRHG07_PRP10 = 211 ! revised Tao, Perdew, Staroverov & Scuseria integer(c_int), parameter, public :: XC_MGGA_X_REVTPSS = 212 ! Perdew, Kurth, Zupan, and Blaha integer(c_int), parameter, public :: XC_MGGA_X_PKZB = 213 ! Becke-Roussel 89, gamma = 1.0 integer(c_int), parameter, public :: XC_MGGA_X_BR89_1 = 214 ! Engel, Chevary, Macdonald and Vosko integer(c_int), parameter, public :: XC_GGA_X_ECMV92 = 215 ! Perdew, Burke & Ernzerhof based on VWN correlation integer(c_int), parameter, public :: XC_GGA_C_PBE_VWN = 216 ! Perdew 86 with more accurate value for ftilde integer(c_int), parameter, public :: XC_GGA_C_P86_FT = 217 ! RATIONAL$^{p}$ by Lehtomaki and Lopez-Acevedo (by default $p=3/2$, $C_{2}=0.7687$) integer(c_int), parameter, public :: XC_GGA_K_RATIONAL_P = 218 ! PG1 (Pauli-Gaussian) functional by Constantin, Fabiano, and Della Sala integer(c_int), parameter, public :: XC_GGA_K_PG1 = 219 ! PGSL025 (Pauli-Gaussian) functional by Constantin, Fabiano, and Della Sala integer(c_int), parameter, public :: XC_MGGA_K_PGSL025 = 220 ! MS exchange of Sun, Xiao, and Ruzsinszky integer(c_int), parameter, public :: XC_MGGA_X_MS0 = 221 ! MS1 exchange of Sun, et al integer(c_int), parameter, public :: XC_MGGA_X_MS1 = 222 ! MS2 exchange of Sun, et al integer(c_int), parameter, public :: XC_MGGA_X_MS2 = 223 ! MS2 hybrid exchange of Sun, et al integer(c_int), parameter, public :: XC_HYB_MGGA_X_MS2H = 224 ! Tsuneda and Hirao integer(c_int), parameter, public :: XC_MGGA_X_TH = 225 ! Minnesota M11-L exchange functional integer(c_int), parameter, public :: XC_MGGA_X_M11_L = 226 ! Minnesota MN12-L exchange functional integer(c_int), parameter, public :: XC_MGGA_X_MN12_L = 227 ! MS2 exchange of Sun, et al with revised value for c integer(c_int), parameter, public :: XC_MGGA_X_MS2_REV = 228 ! Cancio and Chou 2006 integer(c_int), parameter, public :: XC_MGGA_XC_CC06 = 229 ! Exchange for accurate virtual orbital energies integer(c_int), parameter, public :: XC_MGGA_X_MK00 = 230 ! Tao, Perdew, Staroverov & Scuseria integer(c_int), parameter, public :: XC_MGGA_C_TPSS = 231 ! VSXC (correlation part) integer(c_int), parameter, public :: XC_MGGA_C_VSXC = 232 ! Minnesota M06-L correlation functional integer(c_int), parameter, public :: XC_MGGA_C_M06_L = 233 ! Minnesota M06-HF correlation functional integer(c_int), parameter, public :: XC_MGGA_C_M06_HF = 234 ! Minnesota M06 correlation functional integer(c_int), parameter, public :: XC_MGGA_C_M06 = 235 ! Minnesota M06-2X correlation functional integer(c_int), parameter, public :: XC_MGGA_C_M06_2X = 236 ! Minnesota M05 correlation functional integer(c_int), parameter, public :: XC_MGGA_C_M05 = 237 ! Minnesota M05-2X correlation functional integer(c_int), parameter, public :: XC_MGGA_C_M05_2X = 238 ! Perdew, Kurth, Zupan, and Blaha integer(c_int), parameter, public :: XC_MGGA_C_PKZB = 239 ! Becke correlation 95 integer(c_int), parameter, public :: XC_MGGA_C_BC95 = 240 ! revised TPSS correlation integer(c_int), parameter, public :: XC_MGGA_C_REVTPSS = 241 ! TPSSLYP1W integer(c_int), parameter, public :: XC_MGGA_XC_TPSSLYP1W = 242 ! Exchange for accurate virtual orbital energies (v. B) integer(c_int), parameter, public :: XC_MGGA_X_MK00B = 243 ! functional with balanced localization integer(c_int), parameter, public :: XC_MGGA_X_BLOC = 244 ! Modified Tao, Perdew, Staroverov & Scuseria integer(c_int), parameter, public :: XC_MGGA_X_MODTPSS = 245 ! Semilocal dynamical correlation integer(c_int), parameter, public :: XC_GGA_C_PBELOC = 246 ! Semilocal dynamical correlation integer(c_int), parameter, public :: XC_MGGA_C_TPSSLOC = 247 ! Minnesota MN12-SX hybrid exchange functional integer(c_int), parameter, public :: XC_HYB_MGGA_X_MN12_SX = 248 ! mBEEF exchange integer(c_int), parameter, public :: XC_MGGA_X_MBEEF = 249 ! mBEEF-vdW exchange integer(c_int), parameter, public :: XC_MGGA_X_MBEEFVDW = 250 ! Tao and Mo 2016 correlation integer(c_int), parameter, public :: XC_MGGA_C_TM = 251 ! Perdew 86 based on VWN5 correlation integer(c_int), parameter, public :: XC_GGA_C_P86VWN = 252 ! Perdew 86 based on VWN5 correlation, with more accurate value for ftilde integer(c_int), parameter, public :: XC_GGA_C_P86VWN_FT = 253 ! B97M-V exchange-correlation functional integer(c_int), parameter, public :: XC_MGGA_XC_B97M_V = 254 ! Vydrov and Van Voorhis integer(c_int), parameter, public :: XC_GGA_XC_VV10 = 255 ! Jemmer-Knowles meta-GGA exchange integer(c_int), parameter, public :: XC_MGGA_X_JK = 256 ! MVS exchange of Sun, Perdew, and Ruzsinszky integer(c_int), parameter, public :: XC_MGGA_X_MVS = 257 ! PBE for formation energies integer(c_int), parameter, public :: XC_GGA_C_PBEFE = 258 ! Karasiev, Sjostrom, Dufty & Trickey integer(c_int), parameter, public :: XC_LDA_XC_KSDT = 259 ! Minnesota MN15-L exchange functional integer(c_int), parameter, public :: XC_MGGA_X_MN15_L = 260 ! Minnesota MN15-L correlation functional integer(c_int), parameter, public :: XC_MGGA_C_MN15_L = 261 ! one-parameter progressive functional (PW91 version) integer(c_int), parameter, public :: XC_GGA_C_OP_PW91 = 262 ! SCAN exchange of Sun, Ruzsinszky, and Perdew integer(c_int), parameter, public :: XC_MGGA_X_SCAN = 263 ! SCAN hybrid exchange (SCAN0) integer(c_int), parameter, public :: XC_HYB_MGGA_X_SCAN0 = 264 ! PBE for formation energies integer(c_int), parameter, public :: XC_GGA_X_PBEFE = 265 ! version of B97 by Cohen and Handy integer(c_int), parameter, public :: XC_HYB_GGA_XC_B97_1P = 266 ! SCAN correlation of Sun, Ruzsinszky, and Perdew integer(c_int), parameter, public :: XC_MGGA_C_SCAN = 267 ! Minnesota MN15 hybrid exchange functional integer(c_int), parameter, public :: XC_HYB_MGGA_X_MN15 = 268 ! Minnesota MN15 correlation functional integer(c_int), parameter, public :: XC_MGGA_C_MN15 = 269 ! Correct Asymptotic Potential integer(c_int), parameter, public :: XC_GGA_X_CAP = 270 ! Non-empirical (excogitated) B88 functional of Becke and Elliott integer(c_int), parameter, public :: XC_GGA_X_EB88 = 271 ! Reparametrized PBE by del Campo, Gazquez, Trickey & Vela integer(c_int), parameter, public :: XC_GGA_C_PBE_MOL = 272 ! PBEmol0 integer(c_int), parameter, public :: XC_HYB_GGA_XC_PBE_MOL0 = 273 ! PBEsol0 integer(c_int), parameter, public :: XC_HYB_GGA_XC_PBE_SOL0 = 274 ! PBEbeta0 integer(c_int), parameter, public :: XC_HYB_GGA_XC_PBEB0 = 275 ! PBEmolbeta0 integer(c_int), parameter, public :: XC_HYB_GGA_XC_PBE_MOLB0 = 276 ! gamma-TFvW form by Acharya et al [$g = 1 - 1.513/N^{0.35}]$ integer(c_int), parameter, public :: XC_GGA_K_ABSP3 = 277 ! gamma-TFvW form by Acharya et al [$g = l = 1/(1 + 1.332/N^{1/3})$] integer(c_int), parameter, public :: XC_GGA_K_ABSP4 = 278 ! Boese-Martin for kinetics integer(c_int), parameter, public :: XC_HYB_MGGA_X_BMK = 279 ! Boese-Martin correlation for kinetics integer(c_int), parameter, public :: XC_GGA_C_BMK = 280 ! correlation part of tau-hcth integer(c_int), parameter, public :: XC_GGA_C_TAU_HCTH = 281 ! Hybrid version of tau-HCTH integer(c_int), parameter, public :: XC_HYB_MGGA_X_TAU_HCTH = 282 ! correlation part of hyb-tau-hcth integer(c_int), parameter, public :: XC_GGA_C_HYB_TAU_HCTH = 283 ! Becke 2000 integer(c_int), parameter, public :: XC_MGGA_X_B00 = 284 ! BEEF-vdW exchange integer(c_int), parameter, public :: XC_GGA_X_BEEFVDW = 285 ! BEEF-vdW exchange-correlation integer(c_int), parameter, public :: XC_GGA_XC_BEEFVDW = 286 ! Chachiyo simple 2 parameter correlation integer(c_int), parameter, public :: XC_LDA_C_CHACHIYO = 287 ! high local exchange 2017 integer(c_int), parameter, public :: XC_MGGA_XC_HLE17 = 288 ! Liu-Parr correlation integer(c_int), parameter, public :: XC_LDA_C_LP96 = 289 ! PBE50 integer(c_int), parameter, public :: XC_HYB_GGA_XC_PBE50 = 290 ! Gradient-regulated connection-based correction for the PBE exchange integer(c_int), parameter, public :: XC_GGA_X_PBETRANS = 291 ! SCAN + rVV10 correlation integer(c_int), parameter, public :: XC_MGGA_C_SCAN_RVV10 = 292 ! Minnesota revM06-L exchange functional integer(c_int), parameter, public :: XC_MGGA_X_REVM06_L = 293 ! Minnesota revM06-L correlation functional integer(c_int), parameter, public :: XC_MGGA_C_REVM06_L = 294 ! Minnesota M08-HX hybrid exchange functional integer(c_int), parameter, public :: XC_HYB_MGGA_X_M08_HX = 295 ! Minnesota M08-SO hybrid exchange functional integer(c_int), parameter, public :: XC_HYB_MGGA_X_M08_SO = 296 ! Minnesota M11 hybrid exchange functional integer(c_int), parameter, public :: XC_HYB_MGGA_X_M11 = 297 ! Chachiyo exchange integer(c_int), parameter, public :: XC_GGA_X_CHACHIYO = 298 ! TPSS for surface adsorption integer(c_int), parameter, public :: XC_MGGA_X_RTPSS = 299 ! MS2beta exchange of Furness and Sun integer(c_int), parameter, public :: XC_MGGA_X_MS2B = 300 ! MS2beta* exchange of Furness and Sun integer(c_int), parameter, public :: XC_MGGA_X_MS2BS = 301 ! MVSbeta exchange by Furness and Sun integer(c_int), parameter, public :: XC_MGGA_X_MVSB = 302 ! MVSbeta* exchange by Furness and Sun integer(c_int), parameter, public :: XC_MGGA_X_MVSBS = 303 ! Revised Minnesota M11 hybrid exchange functional integer(c_int), parameter, public :: XC_HYB_MGGA_X_REVM11 = 304 ! Revised Minnesota M06 hybrid exchange functional integer(c_int), parameter, public :: XC_HYB_MGGA_X_REVM06 = 305 ! Revised Minnesota M06 correlation functional integer(c_int), parameter, public :: XC_MGGA_C_REVM06 = 306 ! Chachiyo simple 2 parameter correlation with modified spin scaling integer(c_int), parameter, public :: XC_LDA_C_CHACHIYO_MOD = 307 ! Karasiev reparameterization of Chachiyo integer(c_int), parameter, public :: XC_LDA_C_KARASIEV_MOD = 308 ! Chachiyo simple GGA correlation integer(c_int), parameter, public :: XC_GGA_C_CHACHIYO = 309 ! Minnesota M06-SX short-range hybrid exchange functional integer(c_int), parameter, public :: XC_HYB_MGGA_X_M06_SX = 310 ! Minnesota M06-SX correlation functional integer(c_int), parameter, public :: XC_MGGA_C_M06_SX = 311 ! Revised Swart, Sola and Bickelhaupt dispersion integer(c_int), parameter, public :: XC_GGA_X_REVSSB_D = 312 ! ccDF: coupled-cluster motivated density functional integer(c_int), parameter, public :: XC_GGA_C_CCDF = 313 ! HF + LYP correlation integer(c_int), parameter, public :: XC_HYB_GGA_XC_HFLYP = 314 ! B3P86, NWChem version integer(c_int), parameter, public :: XC_HYB_GGA_XC_B3P86_NWCHEM = 315 ! PW91, alternate version with more digits integer(c_int), parameter, public :: XC_GGA_X_PW91_MOD = 316 ! Xie, Wu, and Zhao interpolation ansatz without fitting parameters integer(c_int), parameter, public :: XC_LDA_C_W20 = 317 ! Corrected KSDT by Karasiev, Dufty and Trickey integer(c_int), parameter, public :: XC_LDA_XC_CORRKSDT = 318 ! Filatov and Thiel 1998 meta-GGA exchange integer(c_int), parameter, public :: XC_MGGA_X_FT98 = 319 ! Perdew, Burke & Ernzerhof with less precise value for beta integer(c_int), parameter, public :: XC_GGA_X_PBE_MOD = 320 ! Perdew, Burke & Ernzerhof with parameter values used in Gaussian integer(c_int), parameter, public :: XC_GGA_X_PBE_GAUSSIAN = 321 ! Perdew, Burke & Ernzerhof with parameters from Gaussian integer(c_int), parameter, public :: XC_GGA_C_PBE_GAUSSIAN = 322 ! Tao, Perdew, Staroverov & Scuseria with parameters from Gaussian integer(c_int), parameter, public :: XC_MGGA_C_TPSS_GAUSSIAN = 323 ! Nearly correct asymptotic potential revised integer(c_int), parameter, public :: XC_GGA_X_NCAPR = 324 ! Becke 97-3c by Grimme et. al. integer(c_int), parameter, public :: XC_GGA_XC_B97_3C = 327 ! Self-interaction corrected correlation functional by Schmidt et al integer(c_int), parameter, public :: XC_MGGA_C_CC = 387 ! Iso-orbital corrected LDA correlation by Lebeda et al integer(c_int), parameter, public :: XC_MGGA_C_CCALDA = 388 ! BR3P86 hybrid meta-GGA from Neumann and Handy integer(c_int), parameter, public :: XC_HYB_MGGA_XC_BR3P86 = 389 ! CASE21: Constrained And Smoothed semi-Empirical 2021 functional integer(c_int), parameter, public :: XC_HYB_GGA_XC_CASE21 = 390 ! Revised regTM correlation by Jana et al integer(c_int), parameter, public :: XC_MGGA_C_RREGTM = 391 ! PBE-2X: PBE0 with 56% exact exchange integer(c_int), parameter, public :: XC_HYB_GGA_XC_PBE_2X = 392 ! PBE38: PBE0 with 3/8 = 37.5% exact exchange integer(c_int), parameter, public :: XC_HYB_GGA_XC_PBE38 = 393 ! B3LYP with VWN functional 3 instead of RPA integer(c_int), parameter, public :: XC_HYB_GGA_XC_B3LYP3 = 394 ! CAM-O3LYP integer(c_int), parameter, public :: XC_HYB_GGA_XC_CAM_O3LYP = 395 ! TPSS0 with 25% exact exchange integer(c_int), parameter, public :: XC_HYB_MGGA_XC_TPSS0 = 396 ! Becke 1994 meta-GGA correlation integer(c_int), parameter, public :: XC_MGGA_C_B94 = 397 ! Becke 1994 hybrid meta-GGA integer(c_int), parameter, public :: XC_HYB_MGGA_XC_B94_HYB = 398 ! wB97X-D3 range-separated functional integer(c_int), parameter, public :: XC_HYB_GGA_XC_WB97X_D3 = 399 ! LC version of BLYP integer(c_int), parameter, public :: XC_HYB_GGA_XC_LC_BLYP = 400 ! The original (ACM, B3PW91) hybrid of Becke integer(c_int), parameter, public :: XC_HYB_GGA_XC_B3PW91 = 401 ! B3LYP integer(c_int), parameter, public :: XC_HYB_GGA_XC_B3LYP = 402 ! B3P86 integer(c_int), parameter, public :: XC_HYB_GGA_XC_B3P86 = 403 ! O3LYP integer(c_int), parameter, public :: XC_HYB_GGA_XC_O3LYP = 404 ! mPW1K integer(c_int), parameter, public :: XC_HYB_GGA_XC_MPW1K = 405 ! PBEH (PBE0) integer(c_int), parameter, public :: XC_HYB_GGA_XC_PBEH = 406 ! Becke 97 integer(c_int), parameter, public :: XC_HYB_GGA_XC_B97 = 407 ! Becke 97-1 integer(c_int), parameter, public :: XC_HYB_GGA_XC_B97_1 = 408 ! APF hybrid functional integer(c_int), parameter, public :: XC_HYB_GGA_XC_APF = 409 ! Becke 97-2 integer(c_int), parameter, public :: XC_HYB_GGA_XC_B97_2 = 410 ! X3LYP integer(c_int), parameter, public :: XC_HYB_GGA_XC_X3LYP = 411 ! B1WC integer(c_int), parameter, public :: XC_HYB_GGA_XC_B1WC = 412 ! Boese-Martin for Kinetics integer(c_int), parameter, public :: XC_HYB_GGA_XC_B97_K = 413 ! Becke 97-3 integer(c_int), parameter, public :: XC_HYB_GGA_XC_B97_3 = 414 ! MPW3PW of Adamo & Barone integer(c_int), parameter, public :: XC_HYB_GGA_XC_MPW3PW = 415 ! B1LYP integer(c_int), parameter, public :: XC_HYB_GGA_XC_B1LYP = 416 ! B1PW91 integer(c_int), parameter, public :: XC_HYB_GGA_XC_B1PW91 = 417 ! mPW1PW integer(c_int), parameter, public :: XC_HYB_GGA_XC_MPW1PW = 418 ! MPW3LYP integer(c_int), parameter, public :: XC_HYB_GGA_XC_MPW3LYP = 419 ! SB98 (1a) integer(c_int), parameter, public :: XC_HYB_GGA_XC_SB98_1A = 420 ! SB98 (1b) integer(c_int), parameter, public :: XC_HYB_GGA_XC_SB98_1B = 421 ! SB98 (1c) integer(c_int), parameter, public :: XC_HYB_GGA_XC_SB98_1C = 422 ! SB98 (2a) integer(c_int), parameter, public :: XC_HYB_GGA_XC_SB98_2A = 423 ! SB98 (2b) integer(c_int), parameter, public :: XC_HYB_GGA_XC_SB98_2B = 424 ! SB98 (2c) integer(c_int), parameter, public :: XC_HYB_GGA_XC_SB98_2C = 425 ! Hybrid based on SOGGA11 form integer(c_int), parameter, public :: XC_HYB_GGA_X_SOGGA11_X = 426 ! HSE03 integer(c_int), parameter, public :: XC_HYB_GGA_XC_HSE03 = 427 ! HSE06 integer(c_int), parameter, public :: XC_HYB_GGA_XC_HSE06 = 428 ! HJS hybrid screened exchange PBE version integer(c_int), parameter, public :: XC_HYB_GGA_XC_HJS_PBE = 429 ! HJS hybrid screened exchange PBE_SOL version integer(c_int), parameter, public :: XC_HYB_GGA_XC_HJS_PBE_SOL = 430 ! HJS hybrid screened exchange B88 version integer(c_int), parameter, public :: XC_HYB_GGA_XC_HJS_B88 = 431 ! HJS hybrid screened exchange B97x version integer(c_int), parameter, public :: XC_HYB_GGA_XC_HJS_B97X = 432 ! CAM version of B3LYP integer(c_int), parameter, public :: XC_HYB_GGA_XC_CAM_B3LYP = 433 ! CAM version of B3LYP, tuned for excitations and properties integer(c_int), parameter, public :: XC_HYB_GGA_XC_TUNED_CAM_B3LYP = 434 ! BHandH i.e. BHLYP integer(c_int), parameter, public :: XC_HYB_GGA_XC_BHANDH = 435 ! BHandHLYP integer(c_int), parameter, public :: XC_HYB_GGA_XC_BHANDHLYP = 436 ! B3LYP with RC04 LDA integer(c_int), parameter, public :: XC_HYB_GGA_XC_MB3LYP_RC04 = 437 ! Minnesota M05 hybrid exchange functional integer(c_int), parameter, public :: XC_HYB_MGGA_X_M05 = 438 ! Minnesota M05-2X hybrid exchange functional integer(c_int), parameter, public :: XC_HYB_MGGA_X_M05_2X = 439 ! Mixture of B88 with BC95 (B1B95) integer(c_int), parameter, public :: XC_HYB_MGGA_XC_B88B95 = 440 ! Mixture of B86 with BC95 integer(c_int), parameter, public :: XC_HYB_MGGA_XC_B86B95 = 441 ! Mixture of PW86 with BC95 integer(c_int), parameter, public :: XC_HYB_MGGA_XC_PW86B95 = 442 ! Mixture of B88 with BC95 from Zhao and Truhlar integer(c_int), parameter, public :: XC_HYB_MGGA_XC_BB1K = 443 ! Minnesota M06-HF hybrid exchange functional integer(c_int), parameter, public :: XC_HYB_MGGA_X_M06_HF = 444 ! Mixture of mPW91 with BC95 from Zhao and Truhlar integer(c_int), parameter, public :: XC_HYB_MGGA_XC_MPW1B95 = 445 ! Mixture of mPW91 with BC95 for kinetics integer(c_int), parameter, public :: XC_HYB_MGGA_XC_MPWB1K = 446 ! Mixture of X with BC95 integer(c_int), parameter, public :: XC_HYB_MGGA_XC_X1B95 = 447 ! Mixture of X with BC95 for kinetics integer(c_int), parameter, public :: XC_HYB_MGGA_XC_XB1K = 448 ! Minnesota M06 hybrid exchange functional integer(c_int), parameter, public :: XC_HYB_MGGA_X_M06 = 449 ! Minnesota M06-2X hybrid exchange functional integer(c_int), parameter, public :: XC_HYB_MGGA_X_M06_2X = 450 ! Mixture of PW91 with BC95 from Zhao and Truhlar integer(c_int), parameter, public :: XC_HYB_MGGA_XC_PW6B95 = 451 ! Mixture of PW91 with BC95 from Zhao and Truhlar for kinetics integer(c_int), parameter, public :: XC_HYB_MGGA_XC_PWB6K = 452 ! MPW with 1 par. for metals/LYP integer(c_int), parameter, public :: XC_HYB_GGA_XC_MPWLYP1M = 453 ! Revised B3LYP integer(c_int), parameter, public :: XC_HYB_GGA_XC_REVB3LYP = 454 ! CAMY version of BLYP integer(c_int), parameter, public :: XC_HYB_GGA_XC_CAMY_BLYP = 455 ! PBE0-1/3 integer(c_int), parameter, public :: XC_HYB_GGA_XC_PBE0_13 = 456 ! TPSSh integer(c_int), parameter, public :: XC_HYB_MGGA_XC_TPSSH = 457 ! revTPSSh integer(c_int), parameter, public :: XC_HYB_MGGA_XC_REVTPSSH = 458 ! B3LYP* integer(c_int), parameter, public :: XC_HYB_GGA_XC_B3LYPS = 459 ! Global hybrid for vertical ionization potentials integer(c_int), parameter, public :: XC_HYB_GGA_XC_QTP17 = 460 ! B3LYP-MCM1 integer(c_int), parameter, public :: XC_HYB_GGA_XC_B3LYP_MCM1 = 461 ! B3LYP-MCM2 integer(c_int), parameter, public :: XC_HYB_GGA_XC_B3LYP_MCM2 = 462 ! wB97 range-separated functional integer(c_int), parameter, public :: XC_HYB_GGA_XC_WB97 = 463 ! wB97X range-separated functional integer(c_int), parameter, public :: XC_HYB_GGA_XC_WB97X = 464 ! Long-range corrected short-range hybrid PBE (LRC-wPBEh) by Rohrdanz, Martins and Herbert integer(c_int), parameter, public :: XC_HYB_GGA_XC_LRC_WPBEH = 465 ! wB97X-V range-separated functional integer(c_int), parameter, public :: XC_HYB_GGA_XC_WB97X_V = 466 ! LCY version of PBE integer(c_int), parameter, public :: XC_HYB_GGA_XC_LCY_PBE = 467 ! LCY version of BLYP integer(c_int), parameter, public :: XC_HYB_GGA_XC_LCY_BLYP = 468 ! Vydrov and Van Voorhis integer(c_int), parameter, public :: XC_HYB_GGA_XC_LC_VV10 = 469 ! CAMY version of B3LYP integer(c_int), parameter, public :: XC_HYB_GGA_XC_CAMY_B3LYP = 470 ! wB97X-D range-separated functional integer(c_int), parameter, public :: XC_HYB_GGA_XC_WB97X_D = 471 ! hPBEint integer(c_int), parameter, public :: XC_HYB_GGA_XC_HPBEINT = 472 ! Long-range corrected PBE (LRC-wPBE) by Rohrdanz, Martins and Herbert integer(c_int), parameter, public :: XC_HYB_GGA_XC_LRC_WPBE = 473 ! MVSh hybrid exchange functional integer(c_int), parameter, public :: XC_HYB_MGGA_X_MVSH = 474 ! B3LYP with VWN functional 5 instead of RPA integer(c_int), parameter, public :: XC_HYB_GGA_XC_B3LYP5 = 475 ! EDF2 integer(c_int), parameter, public :: XC_HYB_GGA_XC_EDF2 = 476 ! Correct Asymptotic Potential hybrid integer(c_int), parameter, public :: XC_HYB_GGA_XC_CAP0 = 477 ! Long-range corrected PBE (LC-wPBE) by Vydrov and Scuseria integer(c_int), parameter, public :: XC_HYB_GGA_XC_LC_WPBE = 478 ! HSE12 integer(c_int), parameter, public :: XC_HYB_GGA_XC_HSE12 = 479 ! HSE12 (short-range version) integer(c_int), parameter, public :: XC_HYB_GGA_XC_HSE12S = 480 ! HSEsol integer(c_int), parameter, public :: XC_HYB_GGA_XC_HSE_SOL = 481 ! CAM-B3LYP retuned using ionization potentials of water integer(c_int), parameter, public :: XC_HYB_GGA_XC_CAM_QTP_01 = 482 ! mPW1LYP integer(c_int), parameter, public :: XC_HYB_GGA_XC_MPW1LYP = 483 ! mPW1PBE integer(c_int), parameter, public :: XC_HYB_GGA_XC_MPW1PBE = 484 ! Kang-Musgrave hybrid integer(c_int), parameter, public :: XC_HYB_GGA_XC_KMLYP = 485 ! Long-range corrected PBE (LC-wPBE) by Weintraub, Henderson and Scuseria integer(c_int), parameter, public :: XC_HYB_GGA_XC_LC_WPBE_WHS = 486 ! Long-range corrected short-range hybrid PBE (LC-wPBE) by Weintraub, Henderson and Scuseria integer(c_int), parameter, public :: XC_HYB_GGA_XC_LC_WPBEH_WHS = 487 ! Long-range corrected PBE (LC-wPBE) by Weintraub, Henderson and Scuseria integer(c_int), parameter, public :: XC_HYB_GGA_XC_LC_WPBE08_WHS = 488 ! Long-range corrected PBE (LC-wPBE) by Weintraub, Henderson and Scuseria integer(c_int), parameter, public :: XC_HYB_GGA_XC_LC_WPBESOL_WHS = 489 ! CAM-B3LYP retuned using ionization potentials of water integer(c_int), parameter, public :: XC_HYB_GGA_XC_CAM_QTP_00 = 490 ! CAM-B3LYP retuned using ionization potentials of water integer(c_int), parameter, public :: XC_HYB_GGA_XC_CAM_QTP_02 = 491 ! CAM-B3LYP retuned using ionization potentials of water integer(c_int), parameter, public :: XC_HYB_GGA_XC_LC_QTP = 492 ! Regularized SCAN exchange by Bartok and Yates integer(c_int), parameter, public :: XC_MGGA_X_RSCAN = 493 ! Regularized SCAN correlation by Bartok and Yates integer(c_int), parameter, public :: XC_MGGA_C_RSCAN = 494 ! Swart 2012 GGA exchange integer(c_int), parameter, public :: XC_GGA_X_S12G = 495 ! Swart 2012 hybrid exchange integer(c_int), parameter, public :: XC_HYB_GGA_X_S12H = 496 ! Re-regularized SCAN exchange by Furness et al integer(c_int), parameter, public :: XC_MGGA_X_R2SCAN = 497 ! Re-regularized SCAN correlation by Furness et al integer(c_int), parameter, public :: XC_MGGA_C_R2SCAN = 498 ! BLYP35 integer(c_int), parameter, public :: XC_HYB_GGA_XC_BLYP35 = 499 ! von Weiszaecker correction to Thomas-Fermi integer(c_int), parameter, public :: XC_GGA_K_VW = 500 ! Second-order gradient expansion of the kinetic energy density integer(c_int), parameter, public :: XC_GGA_K_GE2 = 501 ! TF-lambda-vW form by Golden (l = 13/45) integer(c_int), parameter, public :: XC_GGA_K_GOLDEN = 502 ! TF-lambda-vW form by Yonei and Tomishima (l = 1/5) integer(c_int), parameter, public :: XC_GGA_K_YT65 = 503 ! TF-lambda-vW form by Baltin (l = 5/9) integer(c_int), parameter, public :: XC_GGA_K_BALTIN = 504 ! TF-lambda-vW form by Lieb (l = 0.185909191) integer(c_int), parameter, public :: XC_GGA_K_LIEB = 505 ! gamma-TFvW form by Acharya et al [$g = 1 - 1.412/N^{1/3}$] integer(c_int), parameter, public :: XC_GGA_K_ABSP1 = 506 ! gamma-TFvW form by Acharya et al [$g = 1 - 1.332/N^{1/3}$] integer(c_int), parameter, public :: XC_GGA_K_ABSP2 = 507 ! gamma-TFvW form by Gazquez and Robles integer(c_int), parameter, public :: XC_GGA_K_GR = 508 ! gamma-TFvW form by Ludena integer(c_int), parameter, public :: XC_GGA_K_LUDENA = 509 ! gamma-TFvW form by Ghosh and Parr integer(c_int), parameter, public :: XC_GGA_K_GP85 = 510 ! Pearson 1992 integer(c_int), parameter, public :: XC_GGA_K_PEARSON = 511 ! Ou-Yang and Levy v.1 integer(c_int), parameter, public :: XC_GGA_K_OL1 = 512 ! Ou-Yang and Levy v.2 integer(c_int), parameter, public :: XC_GGA_K_OL2 = 513 ! Fuentealba & Reyes (B88 version) integer(c_int), parameter, public :: XC_GGA_K_FR_B88 = 514 ! Fuentealba & Reyes (PW86 version) integer(c_int), parameter, public :: XC_GGA_K_FR_PW86 = 515 ! DePristo and Kress integer(c_int), parameter, public :: XC_GGA_K_DK = 516 ! Perdew integer(c_int), parameter, public :: XC_GGA_K_PERDEW = 517 ! Vitos, Skriver, and Kollar integer(c_int), parameter, public :: XC_GGA_K_VSK = 518 ! Vitos, Johansson, Kollar, and Skriver integer(c_int), parameter, public :: XC_GGA_K_VJKS = 519 ! Ernzerhof integer(c_int), parameter, public :: XC_GGA_K_ERNZERHOF = 520 ! Lembarki & Chermette integer(c_int), parameter, public :: XC_GGA_K_LC94 = 521 ! Lee, Lee & Parr integer(c_int), parameter, public :: XC_GGA_K_LLP = 522 ! Thakkar 1992 integer(c_int), parameter, public :: XC_GGA_K_THAKKAR = 523 ! short-range part of the PBE (default w=0 gives PBEh) integer(c_int), parameter, public :: XC_GGA_X_WPBEH = 524 ! HJS screened exchange PBE version integer(c_int), parameter, public :: XC_GGA_X_HJS_PBE = 525 ! HJS screened exchange PBE_SOL version integer(c_int), parameter, public :: XC_GGA_X_HJS_PBE_SOL = 526 ! HJS screened exchange B88 version integer(c_int), parameter, public :: XC_GGA_X_HJS_B88 = 527 ! HJS screened exchange B97x version integer(c_int), parameter, public :: XC_GGA_X_HJS_B97X = 528 ! Short-range recipe for B88 functional - erf integer(c_int), parameter, public :: XC_GGA_X_ITYH = 529 ! Short-range recipe for B88 functional - Yukawa integer(c_int), parameter, public :: XC_GGA_X_SFAT = 530 ! wB97M-V exchange-correlation functional integer(c_int), parameter, public :: XC_HYB_MGGA_XC_WB97M_V = 531 ! Slater exchange with relativistic corrections integer(c_int), parameter, public :: XC_LDA_X_REL = 532 ! Semiclassical GGA at fourth order integer(c_int), parameter, public :: XC_GGA_X_SG4 = 533 ! Semiclassical GGA at fourth order integer(c_int), parameter, public :: XC_GGA_C_SG4 = 534 ! Gilbert and Gill 1999 integer(c_int), parameter, public :: XC_GGA_X_GG99 = 535 ! LDA constructed from slab-like systems of 1 electron integer(c_int), parameter, public :: XC_LDA_XC_1D_EHWLRG_1 = 536 ! LDA constructed from slab-like systems of 2 electrons integer(c_int), parameter, public :: XC_LDA_XC_1D_EHWLRG_2 = 537 ! LDA constructed from slab-like systems of 3 electrons integer(c_int), parameter, public :: XC_LDA_XC_1D_EHWLRG_3 = 538 ! PBE power integer(c_int), parameter, public :: XC_GGA_X_PBEPOW = 539 ! Tao and Mo 2016 exchange integer(c_int), parameter, public :: XC_MGGA_X_TM = 540 ! meta-GGA version of VT{8,4} GGA integer(c_int), parameter, public :: XC_MGGA_X_VT84 = 541 ! TPSS with correct surface asymptotics integer(c_int), parameter, public :: XC_MGGA_X_SA_TPSS = 542 ! Perdew and Constantin 2007 integer(c_int), parameter, public :: XC_MGGA_K_PC07 = 543 ! Gilbert and Gill 1999 (mixed) integer(c_int), parameter, public :: XC_GGA_X_KGG99 = 544 ! high local exchange 2016 integer(c_int), parameter, public :: XC_GGA_XC_HLE16 = 545 ! Short-range LDA exchange with error function kernel (erfc) integer(c_int), parameter, public :: XC_LDA_X_ERF = 546 ! Lee-Parr reparametrization A integer(c_int), parameter, public :: XC_LDA_XC_LP_A = 547 ! Lee-Parr reparametrization B integer(c_int), parameter, public :: XC_LDA_XC_LP_B = 548 ! Rae self-energy corrected exchange integer(c_int), parameter, public :: XC_LDA_X_RAE = 549 ! Wigner including kinetic energy contribution integer(c_int), parameter, public :: XC_LDA_K_ZLP = 550 ! McWeeny 76 integer(c_int), parameter, public :: XC_LDA_C_MCWEENY = 551 ! Brual & Rothstein 78 integer(c_int), parameter, public :: XC_LDA_C_BR78 = 552 ! GGA component of SCAN integer(c_int), parameter, public :: XC_GGA_C_SCAN_E0 = 553 ! Proynov and Kong 2009 integer(c_int), parameter, public :: XC_LDA_C_PK09 = 554 ! GapC integer(c_int), parameter, public :: XC_GGA_C_GAPC = 555 ! Gaploc integer(c_int), parameter, public :: XC_GGA_C_GAPLOC = 556 ! another spin-dependent correction to PBEint integer(c_int), parameter, public :: XC_GGA_C_ZVPBEINT = 557 ! another spin-dependent correction to PBEsol integer(c_int), parameter, public :: XC_GGA_C_ZVPBESOL = 558 ! Takkar and McCarthy reparametrization integer(c_int), parameter, public :: XC_GGA_C_TM_LYP = 559 ! Thakkar and McCarthy reparametrization integer(c_int), parameter, public :: XC_GGA_C_TM_PBE = 560 ! Wilson 94 (Eq. 25) integer(c_int), parameter, public :: XC_GGA_C_W94 = 561 ! Krieger, Chen, Iafrate, and Savin integer(c_int), parameter, public :: XC_MGGA_C_KCIS = 562 ! Hybrid based on KCIS integer(c_int), parameter, public :: XC_HYB_MGGA_XC_B0KCIS = 563 ! Lee & Parr, Eq. (56) integer(c_int), parameter, public :: XC_MGGA_XC_LP90 = 564 ! A dynamical correlation functional integer(c_int), parameter, public :: XC_GGA_C_CS1 = 565 ! MPW1KCIS for barrier heights integer(c_int), parameter, public :: XC_HYB_MGGA_XC_MPW1KCIS = 566 ! MPWKCIS1K for barrier heights integer(c_int), parameter, public :: XC_HYB_MGGA_XC_MPWKCIS1K = 567 ! PBE1KCIS for binding energies integer(c_int), parameter, public :: XC_HYB_MGGA_XC_PBE1KCIS = 568 ! TPSS1KCIS for thermochemistry and kinetics integer(c_int), parameter, public :: XC_HYB_MGGA_XC_TPSS1KCIS = 569 ! Becke 88 reoptimized to be used with tau1 integer(c_int), parameter, public :: XC_GGA_X_B88M = 570 ! Meta-GGA correlation by Becke integer(c_int), parameter, public :: XC_MGGA_C_B88 = 571 ! B5050LYP integer(c_int), parameter, public :: XC_HYB_GGA_XC_B5050LYP = 572 ! Wigner with corresponding LYP parameters integer(c_int), parameter, public :: XC_LDA_C_OW_LYP = 573 ! Optimized Wigner integer(c_int), parameter, public :: XC_LDA_C_OW = 574 ! GX functional of Loos integer(c_int), parameter, public :: XC_MGGA_X_GX = 575 ! PBE-GX functional of Loos integer(c_int), parameter, public :: XC_MGGA_X_PBE_GX = 576 ! Groth, Dornheim, Sjostrom, Malone, Foulkes, Bonitz integer(c_int), parameter, public :: XC_LDA_XC_GDSMFB = 577 ! Gordon and Kim 1972 integer(c_int), parameter, public :: XC_LDA_C_GK72 = 578 ! Karasiev reparameterization of Chachiyo integer(c_int), parameter, public :: XC_LDA_C_KARASIEV = 579 ! Liu-Parr kinetic integer(c_int), parameter, public :: XC_LDA_K_LP96 = 580 ! revised SCAN integer(c_int), parameter, public :: XC_MGGA_X_REVSCAN = 581 ! revised SCAN integer(c_int), parameter, public :: XC_MGGA_C_REVSCAN = 582 ! revised SCAN hybrid exchange (SCAN0) integer(c_int), parameter, public :: XC_HYB_MGGA_X_REVSCAN0 = 583 ! SCAN + VV10 correlation integer(c_int), parameter, public :: XC_MGGA_C_SCAN_VV10 = 584 ! REVSCAN + VV10 correlation integer(c_int), parameter, public :: XC_MGGA_C_REVSCAN_VV10 = 585 ! Becke-Roussel 89 with an explicit inversion of x(y), gamma = 0.8 integer(c_int), parameter, public :: XC_MGGA_X_BR89_EXPLICIT = 586 ! Keal and Tozer, version 3 integer(c_int), parameter, public :: XC_GGA_XC_KT3 = 587 ! Baer and Neuhauser, gamma=1 integer(c_int), parameter, public :: XC_HYB_LDA_XC_BN05 = 588 ! Livshits and Baer, empirical functional also used for IP tuning integer(c_int), parameter, public :: XC_HYB_GGA_XC_LB07 = 589 ! Long-range LDA correlation functional integer(c_int), parameter, public :: XC_LDA_C_PMGB06 = 590 ! Combined analytical theory with Monte Carlo sampling integer(c_int), parameter, public :: XC_GGA_K_GDS08 = 591 ! As GDS08 but for an electron gas with spin integer(c_int), parameter, public :: XC_GGA_K_GHDS10 = 592 ! Reparametrized GHDS10 integer(c_int), parameter, public :: XC_GGA_K_GHDS10R = 593 ! Trickey, Karasiev, and Vela integer(c_int), parameter, public :: XC_GGA_K_TKVLN = 594 ! Three parameter PBE-like expansion integer(c_int), parameter, public :: XC_GGA_K_PBE3 = 595 ! Four parameter PBE-like expansion integer(c_int), parameter, public :: XC_GGA_K_PBE4 = 596 ! Intermediate form between PBE3 and PBE4 integer(c_int), parameter, public :: XC_GGA_K_EXP4 = 597 ! Becke 98 integer(c_int), parameter, public :: XC_HYB_MGGA_XC_B98 = 598 ! Neural network LDA from Tozer et al integer(c_int), parameter, public :: XC_LDA_XC_TIH = 599 ! Exchange in 1D for an exponentially screened interaction integer(c_int), parameter, public :: XC_LDA_X_1D_EXPONENTIAL = 600 ! Short-range recipe for PBE functional - Yukawa integer(c_int), parameter, public :: XC_GGA_X_SFAT_PBE = 601 ! Becke-Roussel 89 with an explicit inversion of x(y), gamma = 1.0 integer(c_int), parameter, public :: XC_MGGA_X_BR89_EXPLICIT_1 = 602 ! Regularized TPSS integer(c_int), parameter, public :: XC_MGGA_X_REGTPSS = 603 ! Functional derivative recovered from the stray LB94 potential integer(c_int), parameter, public :: XC_GGA_X_FD_LB94 = 604 ! Revised FD_LB94 integer(c_int), parameter, public :: XC_GGA_X_FD_REVLB94 = 605 ! PBEloc variation with enhanced compatibility with exact exchange integer(c_int), parameter, public :: XC_GGA_C_ZVPBELOC = 606 ! Hybrid based on APBE integer(c_int), parameter, public :: XC_HYB_GGA_XC_APBE0 = 607 ! Hybrid based in APBE and zvPBEloc integer(c_int), parameter, public :: XC_HYB_GGA_XC_HAPBE = 608 ! JS17 meta-GGA for 2D integer(c_int), parameter, public :: XC_MGGA_X_2D_JS17 = 609 ! Similar to CAM-B3LYP, but trying to reduce the many-electron self-interaction integer(c_int), parameter, public :: XC_HYB_GGA_XC_RCAM_B3LYP = 610 ! hybrid fitted to carbon NMR shifts integer(c_int), parameter, public :: XC_HYB_GGA_XC_WC04 = 611 ! hybrid fitted to proton NMR shifts integer(c_int), parameter, public :: XC_HYB_GGA_XC_WP04 = 612 ! Luo-Karasiev-Trickey GGA kinetic integer(c_int), parameter, public :: XC_GGA_K_LKT = 613 ! CAM version of B3LYP, tuned for TDDFT integer(c_int), parameter, public :: XC_HYB_GGA_XC_CAMH_B3LYP = 614 ! Long-range corrected short-range hybrid PBE (whPBE0) by Shao et al integer(c_int), parameter, public :: XC_HYB_GGA_XC_WHPBE0 = 615 ! Three parameter PBE-like expansion integer(c_int), parameter, public :: XC_GGA_K_PBE2 = 616 ! L0.4 by Laricchia et al integer(c_int), parameter, public :: XC_MGGA_K_L04 = 617 ! L0.6 by Laricchia et al integer(c_int), parameter, public :: XC_MGGA_K_L06 = 618 ! VT84F by Karasiev et al integer(c_int), parameter, public :: XC_GGA_K_VT84F = 619 ! LGAP by Constantin et al integer(c_int), parameter, public :: XC_GGA_K_LGAP = 620 ! Reduced derivative approximation by Karasiev et al integer(c_int), parameter, public :: XC_MGGA_K_RDA = 621 ! Short-range recipe for OPTX functional integer(c_int), parameter, public :: XC_GGA_X_ITYH_OPTX = 622 ! Short-range recipe for PBE functional integer(c_int), parameter, public :: XC_GGA_X_ITYH_PBE = 623 ! Short-range LYP by Ai, Fang, and Su integer(c_int), parameter, public :: XC_GGA_C_LYPR = 624 ! LC version of BLYP for electron affinities integer(c_int), parameter, public :: XC_HYB_GGA_XC_LC_BLYP_EA = 625 ! Regularized Tao and Mo exchange integer(c_int), parameter, public :: XC_MGGA_X_REGTM = 626 ! Second-order gradient expansion integer(c_int), parameter, public :: XC_MGGA_K_GEA2 = 627 ! Fourth-order gradient expansion integer(c_int), parameter, public :: XC_MGGA_K_GEA4 = 628 ! mGGA-rev functional by Cancio, Stewart, and Kuna (a=1) integer(c_int), parameter, public :: XC_MGGA_K_CSK1 = 629 ! mGGA-rev functional by Cancio, Stewart, and Kuna (a=4) integer(c_int), parameter, public :: XC_MGGA_K_CSK4 = 630 ! mGGAloc-rev functional by Cancio, Stewart, and Kuna (a=1) integer(c_int), parameter, public :: XC_MGGA_K_CSK_LOC1 = 631 ! mGGAloc-rev functional by Cancio, Stewart, and Kuna (a=4) integer(c_int), parameter, public :: XC_MGGA_K_CSK_LOC4 = 632 ! LGAP-GE by Constantin et al integer(c_int), parameter, public :: XC_GGA_K_LGAP_GE = 633 ! Reoptimized PC07 by Mejia-Rodriguez and Trickey integer(c_int), parameter, public :: XC_MGGA_K_PC07_OPT = 634 ! empirically optimized gamma-TFvW form integer(c_int), parameter, public :: XC_GGA_K_TFVW_OPT = 635 ! LC version of B88 integer(c_int), parameter, public :: XC_HYB_GGA_XC_LC_BOP = 636 ! LC version of PBE integer(c_int), parameter, public :: XC_HYB_GGA_XC_LC_PBEOP = 637 ! Krieger, Chen, and Kurth integer(c_int), parameter, public :: XC_MGGA_C_KCISK = 638 ! LC version of BLYP with correlation only in the short range integer(c_int), parameter, public :: XC_HYB_GGA_XC_LC_BLYPR = 639 ! Modified CAM-B3LYP by Day, Nguyen and Pachter integer(c_int), parameter, public :: XC_HYB_GGA_XC_MCAM_B3LYP = 640 ! Short-range LDA exchange with Yukawa attenuation integer(c_int), parameter, public :: XC_LDA_X_YUKAWA = 641 ! Re-regularized SCAN correlation with larger value for eta integer(c_int), parameter, public :: XC_MGGA_C_R2SCAN01 = 642 ! Revised correlation energy for MGGAC exchange functional integer(c_int), parameter, public :: XC_MGGA_C_RMGGAC = 643 ! MCML exchange integer(c_int), parameter, public :: XC_MGGA_X_MCML = 644 ! Re-regularized SCAN exchange by Furness et al with larger value for eta integer(c_int), parameter, public :: XC_MGGA_X_R2SCAN01 = 645 ! Swart 2012 range-separated hybrid GGA exchange integer(c_int), parameter, public :: XC_HYB_GGA_X_CAM_S12G = 646 ! Swart 2012 range-separated hybrid GGA exchange integer(c_int), parameter, public :: XC_HYB_GGA_X_CAM_S12H = 647 ! r++SCAN: rSCAN with uniform density limit and coordinate scaling behavior integer(c_int), parameter, public :: XC_MGGA_X_RPPSCAN = 648 ! r++SCAN: rSCAN with uniform density limit and coordinate scaling behavior integer(c_int), parameter, public :: XC_MGGA_C_RPPSCAN = 649 ! r$^{4}$SCAN, a functional that satisfies the same exact constraints that SCAN does integer(c_int), parameter, public :: XC_MGGA_X_R4SCAN = 650 ! Exchange part of VCML-rVV10 by Trepte and Voss integer(c_int), parameter, public :: XC_MGGA_X_VCML = 651 ! VCML-rVV10 by Trepte and Voss integer(c_int), parameter, public :: XC_MGGA_XC_VCML_RVV10 = 652 ! CAM hybrid screened exchange PBE version integer(c_int), parameter, public :: XC_HYB_GGA_XC_CAM_PBEH = 681 ! CAMY hybrid screened exchange PBE version integer(c_int), parameter, public :: XC_HYB_GGA_XC_CAMY_PBEH = 682 ! Ruggeri, Rios, and Alavi unrestricted fit integer(c_int), parameter, public :: XC_LDA_C_UPW92 = 683 ! Ruggeri, Rios, and Alavi restricted fit integer(c_int), parameter, public :: XC_LDA_C_RPW92 = 684 ! LDA-type exchange with tau-dependent potential integer(c_int), parameter, public :: XC_MGGA_X_TLDA = 685 ! Tao 2001 integer(c_int), parameter, public :: XC_MGGA_X_EDMGGA = 686 ! Generalized density-matrix with a=1/2 integer(c_int), parameter, public :: XC_MGGA_X_GDME_NV = 687 ! Reparametrized local-density approximation integer(c_int), parameter, public :: XC_MGGA_X_RLDA = 688 ! Generalized density-matrix with a=0 integer(c_int), parameter, public :: XC_MGGA_X_GDME_0 = 689 ! Generalized density-matrix with a=0.00638 integer(c_int), parameter, public :: XC_MGGA_X_GDME_KOS = 690 ! Varied-terms (VT) mGGA of Koehl, Odom, and Scuseria integer(c_int), parameter, public :: XC_MGGA_X_GDME_VT = 691 ! simple local model for Slater potential integer(c_int), parameter, public :: XC_LDA_X_SLOC = 692 ! revised Tao and Mo 2016 exchange integer(c_int), parameter, public :: XC_MGGA_X_REVTM = 693 ! revised Tao and Mo 2016 exchange integer(c_int), parameter, public :: XC_MGGA_C_REVTM = 694 ! EDMGGA hybrid integer(c_int), parameter, public :: XC_HYB_MGGA_XC_EDMGGAH = 695 ! Modified Becke-Roussel for band gaps - cuspless hole integer(c_int), parameter, public :: XC_MGGA_X_MBRXC_BG = 696 ! Modified Becke-Roussel for band gaps - hydrogen hole integer(c_int), parameter, public :: XC_MGGA_X_MBRXH_BG = 697 ! Half-and-half meta-LDAized LDA exchange by Lehtola and Marques integer(c_int), parameter, public :: XC_MGGA_X_HLTA = 698 ! Half-and-half meta-LDAized PW correlation by Lehtola and Marques integer(c_int), parameter, public :: XC_MGGA_C_HLTAPW = 699 ! Deorbitalized SCAN (SCAN-L) exchange integer(c_int), parameter, public :: XC_MGGA_X_SCANL = 700 ! Deorbitalized revised SCAN (revSCAN-L) exchange integer(c_int), parameter, public :: XC_MGGA_X_REVSCANL = 701 ! Deorbitalized SCAN (SCAN-L) correlation integer(c_int), parameter, public :: XC_MGGA_C_SCANL = 702 ! SCAN-L + rVV10 correlation integer(c_int), parameter, public :: XC_MGGA_C_SCANL_RVV10 = 703 ! SCAN-L + VV10 correlation integer(c_int), parameter, public :: XC_MGGA_C_SCANL_VV10 = 704 ! Jana and Samal 2018, screened range-separated TM exchange integer(c_int), parameter, public :: XC_HYB_MGGA_X_JS18 = 705 ! Patra, Jana and Samal 2018, screened range-separated TM exchange integer(c_int), parameter, public :: XC_HYB_MGGA_X_PJS18 = 706 ! TASK exchange of Aschebrock and Kuemmel integer(c_int), parameter, public :: XC_MGGA_X_TASK = 707 ! MGGAC exchange of Patra et al integer(c_int), parameter, public :: XC_MGGA_X_MGGAC = 711 ! beta fitted to LC20 to be used with MGGAC integer(c_int), parameter, public :: XC_GGA_C_MGGAC = 712 ! modified Becke-Roussel by Patra et al integer(c_int), parameter, public :: XC_MGGA_X_MBR = 716 ! Deorbitalized re-regularized SCAN (r2SCAN-L) exchange integer(c_int), parameter, public :: XC_MGGA_X_R2SCANL = 718 ! Deorbitalized re-regularized SCAN (r2SCAN-L) correlation integer(c_int), parameter, public :: XC_MGGA_C_R2SCANL = 719 ! Long-range corrected TM-LYP by Jana et al integer(c_int), parameter, public :: XC_HYB_MGGA_XC_LC_TMLYP = 720 ! modified TASK exchange integer(c_int), parameter, public :: XC_MGGA_X_MTASK = 724 ! Functional for quasi-1D systems integer(c_int), parameter, public :: XC_GGA_X_Q1D = 734 ! These are old names kept for compatibility integer(c_int), parameter, public :: & XC_LDA_X_1D = 21, & XC_GGA_X_BGCP = 38, & XC_GGA_C_BGCP = 39, & XC_GGA_C_BCGP = 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, & XC_LDA_C_LP_A = 547, & XC_LDA_C_LP_B = 548, & XC_MGGA_C_LP90 = 564 !---------------------------------------------------------------- interface subroutine xc_version(major, minor, micro) bind(c) import integer(c_int), intent(out) :: major, minor, micro end subroutine xc_version type(c_ptr) function xc_version_string() bind(c) import end function xc_version_string type(c_ptr) function xc_reference() bind(c) import end function xc_reference type(c_ptr) function xc_reference_doi() bind(c) import end function xc_reference_doi end interface !---------------------------------------------------------------- type :: xc_f90_func_info_t private type(c_ptr) :: ptr = C_NULL_PTR end type xc_f90_func_info_t interface integer(c_int) function xc_func_info_get_number(info) bind(c) import type(c_ptr), value :: info end function xc_func_info_get_number integer(c_int) function xc_func_info_get_kind(info) bind(c) import type(c_ptr), value :: info end function xc_func_info_get_kind type(c_ptr) function xc_func_info_get_name(info) bind(c) import type(c_ptr), value :: info end function xc_func_info_get_name integer(c_int) function xc_func_info_get_family(info) bind(c) import type(c_ptr), value :: info end function xc_func_info_get_family integer(c_int) function xc_func_info_get_flags(info) bind(c) import type(c_ptr), value :: info end function xc_func_info_get_flags type(c_ptr) function xc_func_info_get_references(info, number) bind(c) import type(c_ptr), value :: info integer(c_int), value :: number end function xc_func_info_get_references integer(c_int) function xc_func_info_get_n_ext_params(info) bind(c) import type(c_ptr), value :: info end function xc_func_info_get_n_ext_params type(c_ptr) function xc_func_info_get_ext_params_name(info, number) bind(c) import type(c_ptr), value :: info integer(c_int), value :: number end function xc_func_info_get_ext_params_name type(c_ptr) function xc_func_info_get_ext_params_description(info, number) bind(c) import type(c_ptr), value :: info integer(c_int), value :: number end function xc_func_info_get_ext_params_description real(c_double) function xc_func_info_get_ext_params_default_value(info, number) bind(c) import type(c_ptr), value :: info integer(c_int), value :: number end function xc_func_info_get_ext_params_default_value end interface !---------------------------------------------------------------- type :: xc_f90_func_reference_t private type(c_ptr) :: ptr = C_NULL_PTR end type xc_f90_func_reference_t interface type(c_ptr) function xc_func_reference_get_ref(reference) bind(c) import type(c_ptr), value :: reference end function xc_func_reference_get_ref type(c_ptr) function xc_func_reference_get_doi(reference) bind(c) import type(c_ptr), value :: reference end function xc_func_reference_get_doi type(c_ptr) function xc_func_reference_get_bibtex(reference) bind(c) import type(c_ptr), value :: reference end function xc_func_reference_get_bibtex end interface !---------------------------------------------------------------- type :: xc_f90_func_t private type(c_ptr) :: ptr = C_NULL_PTR end type xc_f90_func_t interface type(c_ptr) function xc_func_alloc() bind(c) import end function xc_func_alloc integer(c_int) function xc_func_init(p, functional, nspin) bind(c) import type(c_ptr), value :: p integer(c_int), value :: functional, nspin end function xc_func_init subroutine xc_func_end(p) bind(c) import type(c_ptr), value :: p end subroutine xc_func_end subroutine xc_func_free(p) bind(c) import type(c_ptr), value :: p end subroutine xc_func_free subroutine libxc_free(p) bind(c) import type(c_ptr), value :: p end subroutine libxc_free type(c_ptr) function xc_func_get_info(p) bind(c) import type(c_ptr), value :: p end function xc_func_get_info type(c_ptr) function xc_functional_get_name(number) bind(c) import integer(c_int), value :: number end function xc_functional_get_name integer(c_int) function xc_functional_get_number(func_string) bind(c) import character(kind=c_char), intent(in) :: func_string(*) end function xc_functional_get_number integer(c_int) function xc_family_from_id(id, family, number) bind(c) import integer(c_int), value :: id type(c_ptr), value :: family, number end function xc_family_from_id integer(c_int) function xc_f90_number_of_functionals() bind(c, name="xc_number_of_functionals") import end function xc_f90_number_of_functionals integer(c_int) function xc_f90_maximum_name_length() bind(c, name="xc_maximum_name_length") import end function xc_f90_maximum_name_length subroutine xc_f90_available_functional_numbers(list) bind(c, name="xc_available_functional_numbers") import integer(c_int), intent(out) :: list(*) end subroutine xc_f90_available_functional_numbers subroutine xc_available_functional_names(list) bind(c) import type(c_ptr) :: list(*) end subroutine xc_available_functional_names subroutine xc_func_set_dens_threshold(p, dens_threshold) bind(c) import type(c_ptr), value :: p real(c_double), value :: dens_threshold end subroutine xc_func_set_dens_threshold subroutine xc_func_set_zeta_threshold(p, zeta_threshold) bind(c) import type(c_ptr), value :: p real(c_double), value :: zeta_threshold end subroutine xc_func_set_zeta_threshold subroutine xc_func_set_sigma_threshold(p, sigma_threshold) bind(c) import type(c_ptr), value :: p real(c_double), value :: sigma_threshold end subroutine xc_func_set_sigma_threshold subroutine xc_func_set_tau_threshold(p, tau_threshold) bind(c) import type(c_ptr), value :: p real(c_double), value :: tau_threshold end subroutine xc_func_set_tau_threshold subroutine xc_func_set_ext_params(p, ext_params) bind(c) import type(c_ptr), value :: p real(c_double), intent(in) :: ext_params(*) end subroutine xc_func_set_ext_params subroutine xc_func_set_ext_params_name(p, name, par) bind(c) import type(c_ptr), value :: p character(kind=c_char), intent(in) :: name(*) real(c_double), value :: par end subroutine xc_func_set_ext_params_name end interface ! LDAs !---------------------------------------------------------------- interface subroutine xc_lda(p, np, rho, zk, vrho, v2rho2, v3rho3, v4rho4) bind(c) import type(c_ptr), value :: p integer(c_size_t), value :: np real(c_double), intent(in) :: rho(*) real(c_double), intent(out) :: zk(*), vrho(*), v2rho2(*), v3rho3(*), v4rho4(*) end subroutine xc_lda subroutine xc_lda_exc(p, np, rho, zk) bind(c) import type(c_ptr), value :: p integer(c_size_t), value :: np real(c_double), intent(in) :: rho(*) real(c_double), intent(out) :: zk(*) end subroutine xc_lda_exc subroutine xc_lda_exc_vxc(p, np, rho, zk, vrho) bind(c) import type(c_ptr), value :: p integer(c_size_t), value :: np real(c_double), intent(in) :: rho(*) real(c_double), intent(out) :: zk(*), vrho(*) end subroutine xc_lda_exc_vxc subroutine xc_lda_exc_vxc_fxc(p, np, rho, zk, vrho, v2rho2) bind(c) import type(c_ptr), value :: p integer(c_size_t), value :: np real(c_double), intent(in) :: rho(*) real(c_double), intent(out) :: zk(*), vrho(*), v2rho2(*) end subroutine xc_lda_exc_vxc_fxc subroutine xc_lda_exc_vxc_fxc_kxc(p, np, rho, zk, vrho, v2rho2, v3rho3) bind(c) import type(c_ptr), value :: p integer(c_size_t), value :: np real(c_double), intent(in) :: rho(*) real(c_double), intent(out) :: zk(*), vrho(*), v2rho2(*), v3rho3(*) end subroutine xc_lda_exc_vxc_fxc_kxc subroutine xc_lda_vxc(p, np, rho, vrho) bind(c) import type(c_ptr), value :: p integer(c_size_t), value :: np real(c_double), intent(in) :: rho(*) real(c_double), intent(out) :: vrho(*) end subroutine xc_lda_vxc subroutine xc_lda_vxc_fxc(p, np, rho, vrho, v2rho2) bind(c) import type(c_ptr), value :: p integer(c_size_t), value :: np real(c_double), intent(in) :: rho(*) real(c_double), intent(out) :: vrho(*), v2rho2(*) end subroutine xc_lda_vxc_fxc subroutine xc_lda_vxc_fxc_kxc(p, np, rho, vrho, v2rho2, v3rho3) bind(c) import type(c_ptr), value :: p integer(c_size_t), value :: np real(c_double), intent(in) :: rho(*) real(c_double), intent(out) :: vrho(*), v2rho2(*), v3rho3(*) end subroutine xc_lda_vxc_fxc_kxc subroutine xc_lda_fxc(p, np, rho, v2rho2) bind(c) import type(c_ptr), value :: p integer(c_size_t), value :: np real(c_double), intent(in) :: rho(*) real(c_double), intent(out) :: v2rho2(*) end subroutine xc_lda_fxc subroutine xc_lda_kxc(p, np, rho, v3rho3) bind(c) import type(c_ptr), value :: p integer(c_size_t), value :: np real(c_double), intent(in) :: rho(*) real(c_double), intent(out) :: v3rho3(*) end subroutine xc_lda_kxc subroutine xc_lda_lxc(p, np, rho, v4rho4) bind(c) import type(c_ptr), value :: p integer(c_size_t), value :: np real(c_double), intent(in) :: rho(*) real(c_double), intent(out) :: v4rho4(*) end subroutine xc_lda_lxc end interface ! GGAs !---------------------------------------------------------------- interface subroutine xc_gga(p, np, rho, sigma, zk, vrho, vsigma, & v2rho2, v2rhosigma, v2sigma2, & v3rho3, v3rho2sigma, v3rhosigma2, v3sigma3, & v4rho4, v4rho3sigma, v4rho2sigma2, v4rhosigma3, v4sigma4 & ) bind(c) import type(c_ptr), value :: p integer(c_size_t), value :: np real(c_double), intent(in) :: rho(*), sigma(*) real(c_double), intent(out) :: zk(*), vrho(*), vsigma(*) real(c_double), intent(out) :: v2rho2(*), v2rhosigma(*), v2sigma2(*) real(c_double), intent(out) :: v3rho3(*), v3rho2sigma(*), v3rhosigma2(*), v3sigma3(*) real(c_double), intent(out) :: v4rho4(*), v4rho3sigma(*), v4rho2sigma2(*), v4rhosigma3(*), v4sigma4(*) end subroutine xc_gga subroutine xc_gga_exc(p, np, rho, sigma, zk) bind(c) import type(c_ptr), value :: p integer(c_size_t), value :: np real(c_double), intent(in) :: rho(*), sigma(*) real(c_double), intent(out) :: zk(*) end subroutine xc_gga_exc subroutine xc_gga_exc_vxc(p, np, rho, sigma, zk, vrho, vsigma) bind(c) import type(c_ptr), value :: p integer(c_size_t), value :: np real(c_double), intent(in) :: rho(*), sigma(*) real(c_double), intent(out) :: zk(*), vrho(*), vsigma(*) end subroutine xc_gga_exc_vxc subroutine xc_gga_exc_vxc_fxc(p, np, rho, sigma, zk, vrho, vsigma, & v2rho2, v2rhosigma, v2sigma2) bind(c) import type(c_ptr), value :: p integer(c_size_t), value :: np real(c_double), intent(in) :: rho(*), sigma(*) real(c_double), intent(out) :: zk(*), vrho(*), vsigma(*) real(c_double), intent(out) :: v2rho2(*), v2rhosigma(*), v2sigma2(*) end subroutine xc_gga_exc_vxc_fxc subroutine xc_gga_exc_vxc_fxc_kxc(p, np, rho, sigma, zk, vrho, vsigma, & v2rho2, v2rhosigma, v2sigma2, & v3rho3, v3rho2sigma, v3rhosigma2, v3sigma3) bind(c) import type(c_ptr), value :: p integer(c_size_t), value :: np real(c_double), intent(in) :: rho(*), sigma(*) real(c_double), intent(out) :: zk(*), vrho(*), vsigma(*) real(c_double), intent(out) :: v2rho2(*), v2rhosigma(*), v2sigma2(*) real(c_double), intent(out) :: v3rho3(*), v3rho2sigma(*), v3rhosigma2(*), v3sigma3(*) end subroutine xc_gga_exc_vxc_fxc_kxc subroutine xc_gga_vxc(p, np, rho, sigma, vrho, vsigma) bind(c) import type(c_ptr), value :: p integer(c_size_t), value :: np real(c_double), intent(in) :: rho(*), sigma(*) real(c_double), intent(out) :: vrho(*), vsigma(*) end subroutine xc_gga_vxc subroutine xc_gga_vxc_fxc(p, np, rho, sigma, vrho, vsigma, & v2rho2, v2rhosigma, v2sigma2) bind(c) import type(c_ptr), value :: p integer(c_size_t), value :: np real(c_double), intent(in) :: rho(*), sigma(*) real(c_double), intent(out) :: vrho(*), vsigma(*) real(c_double), intent(out) :: v2rho2(*), v2rhosigma(*), v2sigma2(*) end subroutine xc_gga_vxc_fxc subroutine xc_gga_vxc_fxc_kxc(p, np, rho, sigma, vrho, vsigma, & v2rho2, v2rhosigma, v2sigma2, & v3rho3, v3rho2sigma, v3rhosigma2, v3sigma3) bind(c) import type(c_ptr), value :: p integer(c_size_t), value :: np real(c_double), intent(in) :: rho(*), sigma(*) real(c_double), intent(out) :: vrho(*), vsigma(*) real(c_double), intent(out) :: v2rho2(*), v2rhosigma(*), v2sigma2(*) real(c_double), intent(out) :: v3rho3(*), v3rho2sigma(*), v3rhosigma2(*), v3sigma3(*) end subroutine xc_gga_vxc_fxc_kxc subroutine xc_gga_fxc(p, np, rho, sigma, v2rho2, v2rhosigma, v2sigma2) bind(c) import type(c_ptr), value :: p integer(c_size_t), value :: np real(c_double), intent(in) :: rho(*), sigma(*) real(c_double), intent(out) :: v2rho2(*), v2rhosigma(*), v2sigma2(*) end subroutine xc_gga_fxc subroutine xc_gga_kxc(p, np, rho, sigma, v3rho3, v3rho2sigma, v3rhosigma2, v3sigma3) bind(c) import type(c_ptr), value :: p integer(c_size_t), value :: np real(c_double), intent(in) :: rho(*), sigma(*) real(c_double), intent(out) :: v3rho3(*), v3rho2sigma(*), v3rhosigma2(*), v3sigma3(*) end subroutine xc_gga_kxc subroutine xc_gga_lxc(p, np, rho, sigma, v4rho4, v4rho3sigma, v4rho2sigma2, v4rhosigma3, v4sigma4) bind(c) import type(c_ptr), value :: p integer(c_size_t), value :: np real(c_double), intent(in) :: rho(*), sigma(*) real(c_double), intent(out) :: v4rho4(*), v4rho3sigma(*), v4rho2sigma2(*), v4rhosigma3(*), v4sigma4(*) end subroutine xc_gga_lxc end interface interface real(c_double) function xc_gga_ak13_get_asymptotic(homo) bind(c) import real(c_double), value :: homo end function xc_gga_ak13_get_asymptotic end interface interface real(c_double) function xc_hyb_exx_coef(p) bind(c) import type(c_ptr), value :: p end function xc_hyb_exx_coef subroutine xc_hyb_cam_coef(p, omega, alpha, beta) bind(c) import type(c_ptr), value :: p real(c_double), intent(out) :: omega, alpha, beta end subroutine xc_hyb_cam_coef subroutine xc_nlc_coef(p, nlc_b, nlc_c) bind(c) import type(c_ptr), value :: p real(c_double), intent(out) :: nlc_b, nlc_c end subroutine xc_nlc_coef integer(c_int) function xc_num_aux_funcs(p) bind(c, name="xc_num_aux_funcs") import type(c_ptr), value :: p end function xc_num_aux_funcs subroutine xc_aux_func_ids(p, ids) bind(c, name="xc_aux_func_ids") import type(c_ptr), value :: p integer(c_int), intent(out) :: ids(*) end subroutine xc_aux_func_ids subroutine xc_aux_func_weights(p, weights) bind(c, name="xc_aux_func_weights") import type(c_ptr), value :: p real(c_double), intent(in) :: weights(*) end subroutine xc_aux_func_weights end interface ! the meta-GGAs !---------------------------------------------------------------- interface subroutine xc_mgga(p, np, rho, sigma, lapl, tau, zk, vrho, vsigma, vlapl, vtau, & v2rho2, v2rhosigma, v2rholapl, v2rhotau, v2sigma2, v2sigmalapl, v2sigmatau, & v2lapl2, v2lapltau, v2tau2, & v3rho3, v3rho2sigma, v3rho2lapl, v3rho2tau, v3rhosigma2, v3rhosigmalapl, & v3rhosigmatau, v3rholapl2, v3rholapltau, v3rhotau2, v3sigma3, v3sigma2lapl, & v3sigma2tau, v3sigmalapl2, v3sigmalapltau, v3sigmatau2, v3lapl3, v3lapl2tau, & v3lapltau2, v3tau3, & v4rho4, v4rho3sigma, v4rho3lapl, v4rho3tau, v4rho2sigma2, v4rho2sigmalapl, & v4rho2sigmatau, v4rho2lapl2, v4rho2lapltau, v4rho2tau2, v4rhosigma3, & v4rhosigma2lapl, v4rhosigma2tau, v4rhosigmalapl2, v4rhosigmalapltau, & v4rhosigmatau2, v4rholapl3, v4rholapl2tau, v4rholapltau2, v4rhotau3, v4sigma4, & v4sigma3lapl, v4sigma3tau, v4sigma2lapl2, v4sigma2lapltau, v4sigma2tau2, & v4sigmalapl3, v4sigmalapl2tau, v4sigmalapltau2, v4sigmatau3, v4lapl4, & v4lapl3tau, v4lapl2tau2, v4lapltau3, v4tau4 & ) bind(c) import type(c_ptr), value :: p integer(c_size_t), value :: np real(c_double), intent(in) :: rho(*), sigma(*), lapl(*), tau(*) real(c_double), intent(out) :: zk(*), vrho(*), vsigma(*), vlapl(*), vtau(*) real(c_double), intent(out) :: v2rho2(*), v2rhosigma(*), v2rholapl(*), v2rhotau(*), & v2sigma2(*), v2sigmalapl(*), v2sigmatau(*), v2lapl2(*), v2lapltau(*), v2tau2(*) real(c_double), intent(out) :: v3rho3(*), v3rho2sigma(*), v3rho2lapl(*), v3rho2tau(*), & v3rhosigma2(*), v3rhosigmalapl(*), v3rhosigmatau(*), v3rholapl2(*), & v3rholapltau(*), v3rhotau2(*), v3sigma3(*), v3sigma2lapl(*), v3sigma2tau(*), & v3sigmalapl2(*), v3sigmalapltau(*), v3sigmatau2(*), v3lapl3(*), v3lapl2tau(*), & v3lapltau2(*), v3tau3(*) real(c_double), intent(out) :: & v4rho4(*), v4rho3sigma(*), v4rho3lapl(*), v4rho3tau(*), v4rho2sigma2(*), v4rho2sigmalapl(*), & v4rho2sigmatau(*), v4rho2lapl2(*), v4rho2lapltau(*), v4rho2tau2(*), v4rhosigma3(*), & v4rhosigma2lapl(*), v4rhosigma2tau(*), v4rhosigmalapl2(*), v4rhosigmalapltau(*), & v4rhosigmatau2(*), v4rholapl3(*), v4rholapl2tau(*), v4rholapltau2(*), v4rhotau3(*), v4sigma4(*), & v4sigma3lapl(*), v4sigma3tau(*), v4sigma2lapl2(*), v4sigma2lapltau(*), v4sigma2tau2(*), & v4sigmalapl3(*), v4sigmalapl2tau(*), v4sigmalapltau2(*), v4sigmatau3(*), v4lapl4(*), & v4lapl3tau(*), v4lapl2tau2(*), v4lapltau3(*), v4tau4(*) end subroutine xc_mgga subroutine xc_mgga_exc(p, np, rho, sigma, lapl, tau, zk) bind(c) import type(c_ptr), value :: p integer(c_size_t), value :: np real(c_double), intent(in) :: rho(*), sigma(*), lapl(*), tau(*) real(c_double), intent(out) :: zk(*) end subroutine xc_mgga_exc subroutine xc_mgga_exc_vxc(p, np, rho, sigma, lapl, tau, zk, vrho, vsigma, vlapl, vtau) bind(c) import type(c_ptr), value :: p integer(c_size_t), value :: np real(c_double), intent(in) :: rho(*), sigma(*), lapl(*), tau(*) real(c_double), intent(out) :: zk(*), vrho(*), vsigma(*), vlapl(*), vtau(*) end subroutine xc_mgga_exc_vxc subroutine xc_mgga_exc_vxc_fxc(p, np, rho, sigma, lapl, tau, zk, vrho, vsigma, vlapl, vtau, & v2rho2, v2rhosigma, v2rholapl, v2rhotau, v2sigma2, v2sigmalapl, v2sigmatau, & v2lapl2, v2lapltau, v2tau2) bind(c) import type(c_ptr), value :: p integer(c_size_t), value :: np real(c_double), intent(in) :: rho(*), sigma(*), lapl(*), tau(*) real(c_double), intent(out) :: zk(*), vrho(*), vsigma(*), vlapl(*), vtau(*) real(c_double), intent(out) :: v2rho2(*), v2rhosigma(*), v2rholapl(*), v2rhotau(*), & v2sigma2(*), v2sigmalapl(*), v2sigmatau(*), v2lapl2(*), v2lapltau(*), v2tau2(*) end subroutine xc_mgga_exc_vxc_fxc subroutine xc_mgga_exc_vxc_fxc_kxc(p, np, rho, sigma, lapl, tau, zk, vrho, vsigma, vlapl, vtau, & v2rho2, v2rhosigma, v2rholapl, v2rhotau, v2sigma2, v2sigmalapl, v2sigmatau, & v2lapl2, v2lapltau, v2tau2, & v3rho3, v3rho2sigma, v3rho2lapl, v3rho2tau, v3rhosigma2, v3rhosigmalapl, & v3rhosigmatau, v3rholapl2, v3rholapltau, v3rhotau2, v3sigma3, v3sigma2lapl, & v3sigma2tau, v3sigmalapl2, v3sigmalapltau, v3sigmatau2, v3lapl3, v3lapl2tau, & v3lapltau2, v3tau3) bind(c) import type(c_ptr), value :: p integer(c_size_t), value :: np real(c_double), intent(in) :: rho(*), sigma(*), lapl(*), tau(*) real(c_double), intent(out) :: zk(*), vrho(*), vsigma(*), vlapl(*), vtau(*) real(c_double), intent(out) :: v2rho2(*), v2rhosigma(*), v2rholapl(*), v2rhotau(*), & v2sigma2(*), v2sigmalapl(*), v2sigmatau(*), v2lapl2(*), v2lapltau(*), v2tau2(*) real(c_double), intent(out) :: v3rho3(*), v3rho2sigma(*), v3rho2lapl(*), v3rho2tau(*), & v3rhosigma2(*), v3rhosigmalapl(*), v3rhosigmatau(*), v3rholapl2(*), & v3rholapltau(*), v3rhotau2(*), v3sigma3(*), v3sigma2lapl(*), v3sigma2tau(*), & v3sigmalapl2(*), v3sigmalapltau(*), v3sigmatau2(*), v3lapl3(*), v3lapl2tau(*), & v3lapltau2(*), v3tau3(*) end subroutine xc_mgga_exc_vxc_fxc_kxc subroutine xc_mgga_vxc(p, np, rho, sigma, lapl, tau, vrho, vsigma, vlapl, vtau) bind(c) import type(c_ptr), value :: p integer(c_size_t), value :: np real(c_double), intent(in) :: rho(*), sigma(*), lapl(*), tau(*) real(c_double), intent(out) :: vrho(*), vsigma(*), vlapl(*), vtau(*) end subroutine xc_mgga_vxc subroutine xc_mgga_vxc_fxc(p, np, rho, sigma, lapl, tau, vrho, vsigma, vlapl, vtau, & v2rho2, v2rhosigma, v2rholapl, v2rhotau, v2sigma2, v2sigmalapl, v2sigmatau, & v2lapl2, v2lapltau, v2tau2) bind(c) import type(c_ptr), value :: p integer(c_size_t), value :: np real(c_double), intent(in) :: rho(*), sigma(*), lapl(*), tau(*) real(c_double), intent(out) :: vrho(*), vsigma(*), vlapl(*), vtau(*) real(c_double), intent(out) :: v2rho2(*), v2rhosigma(*), v2rholapl(*), v2rhotau(*), & v2sigma2(*), v2sigmalapl(*), v2sigmatau(*), v2lapl2(*), v2lapltau(*), v2tau2(*) end subroutine xc_mgga_vxc_fxc subroutine xc_mgga_vxc_fxc_kxc(p, np, rho, sigma, lapl, tau, vrho, vsigma, vlapl, vtau, & v2rho2, v2rhosigma, v2rholapl, v2rhotau, v2sigma2, v2sigmalapl, v2sigmatau, & v2lapl2, v2lapltau, v2tau2, & v3rho3, v3rho2sigma, v3rho2lapl, v3rho2tau, v3rhosigma2, v3rhosigmalapl, & v3rhosigmatau, v3rholapl2, v3rholapltau, v3rhotau2, v3sigma3, v3sigma2lapl, & v3sigma2tau, v3sigmalapl2, v3sigmalapltau, v3sigmatau2, v3lapl3, v3lapl2tau, & v3lapltau2, v3tau3) bind(c) import type(c_ptr), value :: p integer(c_size_t), value :: np real(c_double), intent(in) :: rho(*), sigma(*), lapl(*), tau(*) real(c_double), intent(out) :: vrho(*), vsigma(*), vlapl(*), vtau(*) real(c_double), intent(out) :: v2rho2(*), v2rhosigma(*), v2rholapl(*), v2rhotau(*), & v2sigma2(*), v2sigmalapl(*), v2sigmatau(*), v2lapl2(*), v2lapltau(*), v2tau2(*) real(c_double), intent(out) :: v3rho3(*), v3rho2sigma(*), v3rho2lapl(*), v3rho2tau(*), & v3rhosigma2(*), v3rhosigmalapl(*), v3rhosigmatau(*), v3rholapl2(*), & v3rholapltau(*), v3rhotau2(*), v3sigma3(*), v3sigma2lapl(*), v3sigma2tau(*), & v3sigmalapl2(*), v3sigmalapltau(*), v3sigmatau2(*), v3lapl3(*), v3lapl2tau(*), & v3lapltau2(*), v3tau3(*) end subroutine xc_mgga_vxc_fxc_kxc subroutine xc_mgga_fxc(p, np, rho, sigma, lapl, tau, & v2rho2, v2rhosigma, v2rholapl, v2rhotau, v2sigma2, v2sigmalapl, v2sigmatau, & v2lapl2, v2lapltau, v2tau2) bind(c) import type(c_ptr), value :: p integer(c_size_t), value :: np real(c_double), intent(in) :: rho(*), sigma(*), lapl(*), tau(*) real(c_double), intent(out) :: v2rho2(*), v2rhosigma(*), v2rholapl(*), v2rhotau(*), & v2sigma2(*), v2sigmalapl(*), v2sigmatau(*), v2lapl2(*), v2lapltau(*), v2tau2(*) end subroutine xc_mgga_fxc subroutine xc_mgga_kxc(p, np, rho, sigma, lapl, tau, & v3rho3, v3rho2sigma, v3rho2lapl, v3rho2tau, v3rhosigma2, v3rhosigmalapl, & v3rhosigmatau, v3rholapl2, v3rholapltau, v3rhotau2, v3sigma3, v3sigma2lapl, & v3sigma2tau, v3sigmalapl2, v3sigmalapltau, v3sigmatau2, v3lapl3, v3lapl2tau, & v3lapltau2, v3tau3) bind(c) import type(c_ptr), value :: p integer(c_size_t), value :: np real(c_double), intent(in) :: rho(*), sigma(*), lapl(*), tau(*) real(c_double), intent(out) :: v3rho3(*), v3rho2sigma(*), v3rho2lapl(*), v3rho2tau(*), & v3rhosigma2(*), v3rhosigmalapl(*), v3rhosigmatau(*), v3rholapl2(*), & v3rholapltau(*), v3rhotau2(*), v3sigma3(*), v3sigma2lapl(*), v3sigma2tau(*), & v3sigmalapl2(*), v3sigmalapltau(*), v3sigmatau2(*), v3lapl3(*), v3lapl2tau(*), & v3lapltau2(*), v3tau3(*) end subroutine xc_mgga_kxc subroutine xc_mgga_lxc(p, np, rho, sigma, lapl, tau, & v4rho4, v4rho3sigma, v4rho3lapl, v4rho3tau, v4rho2sigma2, v4rho2sigmalapl, & v4rho2sigmatau, v4rho2lapl2, v4rho2lapltau, v4rho2tau2, v4rhosigma3, & v4rhosigma2lapl, v4rhosigma2tau, v4rhosigmalapl2, v4rhosigmalapltau, & v4rhosigmatau2, v4rholapl3, v4rholapl2tau, v4rholapltau2, v4rhotau3, v4sigma4, & v4sigma3lapl, v4sigma3tau, v4sigma2lapl2, v4sigma2lapltau, v4sigma2tau2, & v4sigmalapl3, v4sigmalapl2tau, v4sigmalapltau2, v4sigmatau3, v4lapl4, & v4lapl3tau, v4lapl2tau2, v4lapltau3, v4tau4 & ) bind(c) import type(c_ptr), value :: p integer(c_size_t), value :: np real(c_double), intent(in) :: rho(*), sigma(*), lapl(*), tau(*) real(c_double), intent(out) :: & v4rho4(*), v4rho3sigma(*), v4rho3lapl(*), v4rho3tau(*), v4rho2sigma2(*), v4rho2sigmalapl(*), & v4rho2sigmatau(*), v4rho2lapl2(*), v4rho2lapltau(*), v4rho2tau2(*), v4rhosigma3(*), & v4rhosigma2lapl(*), v4rhosigma2tau(*), v4rhosigmalapl2(*), v4rhosigmalapltau(*), & v4rhosigmatau2(*), v4rholapl3(*), v4rholapl2tau(*), v4rholapltau2(*), v4rhotau3(*), v4sigma4(*), & v4sigma3lapl(*), v4sigma3tau(*), v4sigma2lapl2(*), v4sigma2lapltau(*), v4sigma2tau2(*), & v4sigmalapl3(*), v4sigmalapl2tau(*), v4sigmalapltau2(*), v4sigmatau3(*), v4lapl4(*), & v4lapl3tau(*), v4lapl2tau2(*), v4lapltau3(*), v4tau4(*) end subroutine xc_mgga_lxc end interface contains !---------------------------------------------------------------- subroutine xc_f90_version(major, minor, micro) integer(c_int), intent(out) :: major, minor, micro call xc_version(major, minor, micro) end subroutine xc_f90_version subroutine xc_f90_version_string(version) character(len=*), intent(out) :: version type(c_ptr) :: c_version c_version = xc_version_string() call c_to_f_string_ptr(c_version, version) end subroutine xc_f90_version_string subroutine xc_f90_reference(ref) character(len=*), intent(out) :: ref type(c_ptr) :: c_ref c_ref = xc_reference() call c_to_f_string_ptr(c_ref, ref) end subroutine xc_f90_reference subroutine xc_f90_reference_doi(doi) character(len=*), intent(out) :: doi type(c_ptr) :: c_doi c_doi = xc_reference_doi() call c_to_f_string_ptr(c_doi, doi) end subroutine xc_f90_reference_doi !---------------------------------------------------------------- integer(c_int) function xc_f90_func_info_get_number(info) result(number) type(xc_f90_func_info_t), intent(in) :: info number = xc_func_info_get_number(info%ptr) end function xc_f90_func_info_get_number integer(c_int) function xc_f90_func_info_get_kind(info) result(kind) type(xc_f90_func_info_t), intent(in) :: info kind = xc_func_info_get_kind(info%ptr) end function xc_f90_func_info_get_kind character(len=128) function xc_f90_func_info_get_name(info) result(name) type(xc_f90_func_info_t), intent(in) :: info call c_to_f_string_ptr(xc_func_info_get_name(info%ptr), name) end function xc_f90_func_info_get_name integer(c_int) function xc_f90_func_info_get_family(info) result(family) type(xc_f90_func_info_t), intent(in) :: info family = xc_func_info_get_family(info%ptr) end function xc_f90_func_info_get_family integer(c_int) function xc_f90_func_info_get_flags(info) result(flags) type(xc_f90_func_info_t), intent(in) :: info flags = xc_func_info_get_flags(info%ptr) end function xc_f90_func_info_get_flags type(xc_f90_func_reference_t) function xc_f90_func_info_get_references(info, number) result(reference) type(xc_f90_func_info_t), intent(in) :: info integer(c_int), intent(inout) :: number ! number of the reference. Must be 0 in the first call type(c_ptr) :: next_ref reference%ptr = xc_func_info_get_references(info%ptr, number) if (.not. c_associated(reference%ptr)) then number = -1 else next_ref = xc_func_info_get_references(info%ptr, INT(number + 1, c_int)) if (c_associated(next_ref)) then number = number + 1 else number = -1 end if end if end function xc_f90_func_info_get_references integer(c_int) function xc_f90_func_info_get_n_ext_params(info) result(n_ext_params) type(xc_f90_func_info_t), intent(in) :: info n_ext_params = xc_func_info_get_n_ext_params(info%ptr) end function xc_f90_func_info_get_n_ext_params character(len=128) function xc_f90_func_info_get_ext_params_name(info, number) result(name) type(xc_f90_func_info_t), intent(in) :: info integer(c_int), intent(in) :: number call c_to_f_string_ptr(xc_func_info_get_ext_params_name(info%ptr, number), name) end function xc_f90_func_info_get_ext_params_name character(len=128) function xc_f90_func_info_get_ext_params_description(info, number) result(description) type(xc_f90_func_info_t), intent(in) :: info integer(c_int), intent(in) :: number call c_to_f_string_ptr(xc_func_info_get_ext_params_description(info%ptr, number), description) end function xc_f90_func_info_get_ext_params_description real(c_double) function xc_f90_func_info_get_ext_params_default_value(info, number) result(val) type(xc_f90_func_info_t), intent(in) :: info integer(c_int), intent(in) :: number val = xc_func_info_get_ext_params_default_value(info%ptr, number) end function xc_f90_func_info_get_ext_params_default_value !---------------------------------------------------------------- character(len=1024) function xc_f90_func_reference_get_ref(reference) result(ref) type(xc_f90_func_reference_t), intent(in) :: reference call c_to_f_string_ptr(xc_func_reference_get_ref(reference%ptr), ref) end function xc_f90_func_reference_get_ref character(len=1024) function xc_f90_func_reference_get_doi(reference) result(doi) type(xc_f90_func_reference_t), intent(in) :: reference call c_to_f_string_ptr(xc_func_reference_get_doi(reference%ptr), doi) end function xc_f90_func_reference_get_doi character(len=1024) function xc_f90_func_reference_get_bibtex(reference) result(bibtex) type(xc_f90_func_reference_t), intent(in) :: reference call c_to_f_string_ptr(xc_func_reference_get_bibtex(reference%ptr), bibtex) end function xc_f90_func_reference_get_bibtex !---------------------------------------------------------------- subroutine xc_f90_func_init(p, functional, nspin, err) type(xc_f90_func_t), intent(inout) :: p integer(c_int), intent(in) :: functional integer(c_int), intent(in) :: nspin integer(c_int), optional, intent(out) :: err integer(c_int) :: ierr p%ptr = xc_func_alloc() ierr = xc_func_init(p%ptr, functional, nspin) if(present(err)) err = ierr end subroutine xc_f90_func_init subroutine xc_f90_func_end(p) type(xc_f90_func_t), intent(inout) :: p call xc_func_end(p%ptr) call xc_func_free(p%ptr) end subroutine xc_f90_func_end type(xc_f90_func_info_t) function xc_f90_func_get_info(p) result(info) type(xc_f90_func_t), intent(in) :: p info%ptr = xc_func_get_info(p%ptr) end function xc_f90_func_get_info character(len=128) function xc_f90_functional_get_name(number) result(name) integer(c_int), intent(in) :: number type(c_ptr) :: cstr cstr = xc_functional_get_name(number) call c_to_f_string_ptr(cstr, name) call libxc_free(cstr) end function xc_f90_functional_get_name integer(c_int) function xc_f90_functional_get_number(func_string) result(number) character(len=*), intent(in) :: func_string number = xc_functional_get_number(f_to_c_string(func_string)) end function xc_f90_functional_get_number integer(c_int) function xc_f90_family_from_id(id, family, number) integer(c_int), intent(in) :: id integer(c_int), intent(out), optional, target :: family, number type(c_ptr) c_family, c_number integer(c_int), pointer :: f_family, f_number if (present(family)) then f_family => family call c_f_pointer(c_family, f_family) else c_family = C_NULL_PTR end if if (present(number)) then f_number => number call c_f_pointer(c_number, f_number) else c_number = C_NULL_PTR end if xc_f90_family_from_id = xc_family_from_id(id, c_family, c_number) end function xc_f90_family_from_id subroutine xc_f90_available_functional_names(list) character(len=*), intent(out) :: list(*) integer(c_int) :: n, i, maxlen character(kind=c_char), allocatable, target :: names(:,:) type(c_ptr), allocatable :: c_list(:) n = xc_f90_number_of_functionals() maxlen = xc_f90_maximum_name_length() allocate(names(maxlen, n)) allocate(c_list(n)) do i = 1, n c_list(i) = c_loc(names(1,i)) end do call xc_available_functional_names(c_list) do i = 1, n call c_to_f_string_ptr(c_list(i), list(i)) end do deallocate(c_list) deallocate(names) end subroutine xc_f90_available_functional_names subroutine xc_f90_func_set_dens_threshold(p, dens_threshold) type(xc_f90_func_t), intent(in) :: p real(c_double), intent(in) :: dens_threshold call xc_func_set_dens_threshold(p%ptr, dens_threshold) end subroutine xc_f90_func_set_dens_threshold subroutine xc_f90_func_set_zeta_threshold(p, zeta_threshold) type(xc_f90_func_t), intent(in) :: p real(c_double), intent(in) :: zeta_threshold call xc_func_set_zeta_threshold(p%ptr, zeta_threshold) end subroutine xc_f90_func_set_zeta_threshold subroutine xc_f90_func_set_sigma_threshold(p, sigma_threshold) type(xc_f90_func_t), intent(in) :: p real(c_double), intent(in) :: sigma_threshold call xc_func_set_sigma_threshold(p%ptr, sigma_threshold) end subroutine xc_f90_func_set_sigma_threshold subroutine xc_f90_func_set_tau_threshold(p, tau_threshold) type(xc_f90_func_t), intent(in) :: p real(c_double), intent(in) :: tau_threshold call xc_func_set_tau_threshold(p%ptr, tau_threshold) end subroutine xc_f90_func_set_tau_threshold subroutine xc_f90_func_set_ext_params(p, ext_params) type(xc_f90_func_t), intent(in) :: p real(c_double), intent(in) :: ext_params(*) call xc_func_set_ext_params(p%ptr, ext_params) end subroutine xc_f90_func_set_ext_params subroutine xc_f90_func_set_ext_params_name(p, name, par) type(xc_f90_func_t), intent(in) :: p character(len=*), intent(in) :: name real(c_double), intent(in) :: par call xc_func_set_ext_params_name(p%ptr, f_to_c_string(name), par) end subroutine xc_f90_func_set_ext_params_name ! LDAs !---------------------------------------------------------------- subroutine xc_f90_lda(p, np, rho, zk, vrho, v2rho2, v3rho3, v4rho4) type(xc_f90_func_t), intent(in) :: p integer(c_size_t), intent(in) :: np real(c_double), intent(in) :: rho(*) real(c_double), intent(out) :: zk(*), vrho(*), v2rho2(*), v3rho3(*), v4rho4(*) call xc_lda(p%ptr, np, rho, zk, vrho, v2rho2, v3rho3, v4rho4) end subroutine xc_f90_lda subroutine xc_f90_lda_exc(p, np, rho, zk) type(xc_f90_func_t), intent(in) :: p integer(c_size_t), intent(in) :: np real(c_double), intent(in) :: rho(*) real(c_double), intent(out) :: zk(*) call xc_lda_exc(p%ptr, np, rho, zk) end subroutine xc_f90_lda_exc subroutine xc_f90_lda_exc_vxc(p, np, rho, zk, vrho) type(xc_f90_func_t), intent(in) :: p integer(c_size_t), intent(in) :: np real(c_double), intent(in) :: rho(*) real(c_double), intent(out) :: zk(*), vrho(*) call xc_lda_exc_vxc(p%ptr, np, rho, zk, vrho) end subroutine xc_f90_lda_exc_vxc subroutine xc_f90_lda_exc_vxc_fxc(p, np, rho, zk, vrho, v2rho2) type(xc_f90_func_t), intent(in) :: p integer(c_size_t), intent(in) :: np real(c_double), intent(in) :: rho(*) real(c_double), intent(out) :: zk(*), vrho(*), v2rho2(*) call xc_lda_exc_vxc_fxc(p%ptr, np, rho, zk, vrho, v2rho2) end subroutine xc_f90_lda_exc_vxc_fxc subroutine xc_f90_lda_exc_vxc_fxc_kxc(p, np, rho, zk, vrho, v2rho2, v3rho3) type(xc_f90_func_t), intent(in) :: p integer(c_size_t), intent(in) :: np real(c_double), intent(in) :: rho(*) real(c_double), intent(out) :: zk(*), vrho(*), v2rho2(*), v3rho3(*) call xc_lda_exc_vxc_fxc_kxc(p%ptr, np, rho, zk, vrho, v2rho2, v3rho3) end subroutine xc_f90_lda_exc_vxc_fxc_kxc subroutine xc_f90_lda_vxc(p, np, rho, vrho) type(xc_f90_func_t), intent(in) :: p integer(c_size_t), intent(in) :: np real(c_double), intent(in) :: rho(*) real(c_double), intent(out) :: vrho(*) call xc_lda_vxc(p%ptr, np, rho, vrho) end subroutine xc_f90_lda_vxc subroutine xc_f90_lda_vxc_fxc(p, np, rho, vrho, v2rho2) type(xc_f90_func_t), intent(in) :: p integer(c_size_t), intent(in) :: np real(c_double), intent(in) :: rho(*) real(c_double), intent(out) :: vrho(*), v2rho2(*) call xc_lda_vxc_fxc(p%ptr, np, rho, vrho, v2rho2) end subroutine xc_f90_lda_vxc_fxc subroutine xc_f90_lda_vxc_fxc_kxc(p, np, rho, vrho, v2rho2, v3rho3) type(xc_f90_func_t), intent(in) :: p integer(c_size_t), intent(in) :: np real(c_double), intent(in) :: rho(*) real(c_double), intent(out) :: vrho(*), v2rho2(*), v3rho3(*) call xc_lda_vxc_fxc_kxc(p%ptr, np, rho, vrho, v2rho2, v3rho3) end subroutine xc_f90_lda_vxc_fxc_kxc subroutine xc_f90_lda_fxc(p, np, rho, v2rho2) type(xc_f90_func_t), intent(in) :: p integer(c_size_t), intent(in) :: np real(c_double), intent(in) :: rho(*) real(c_double), intent(out) :: v2rho2(*) call xc_lda_fxc(p%ptr, np, rho, v2rho2) end subroutine xc_f90_lda_fxc subroutine xc_f90_lda_kxc(p, np, rho, v3rho3) type(xc_f90_func_t), intent(in) :: p integer(c_size_t), intent(in) :: np real(c_double), intent(in) :: rho(*) real(c_double), intent(out) :: v3rho3(*) call xc_lda_kxc(p%ptr, np, rho, v3rho3) end subroutine xc_f90_lda_kxc subroutine xc_f90_lda_lxc(p, np, rho, v4rho4) type(xc_f90_func_t), intent(in) :: p integer(c_size_t), intent(in) :: np real(c_double), intent(in) :: rho(*) real(c_double), intent(out) :: v4rho4(*) call xc_lda_lxc(p%ptr, np, rho, v4rho4) end subroutine xc_f90_lda_lxc ! GGAs !---------------------------------------------------------------- subroutine xc_f90_gga(p, np, rho, sigma, zk, vrho, vsigma, & v2rho2, v2rhosigma, v2sigma2, & v3rho3, v3rho2sigma, v3rhosigma2, v3sigma3, & v4rho4, v4rho3sigma, v4rho2sigma2, v4rhosigma3, v4sigma4 & ) type(xc_f90_func_t), intent(in) :: p integer(c_size_t), intent(in) :: np real(c_double), intent(in) :: rho(*), sigma(*) real(c_double), intent(out) :: zk(*), vrho(*), vsigma(*) real(c_double), intent(out) :: v2rho2(*), v2rhosigma(*), v2sigma2(*) real(c_double), intent(out) :: v3rho3(*), v3rho2sigma(*), v3rhosigma2(*), v3sigma3(*) real(c_double), intent(out) :: v4rho4(*), v4rho3sigma(*), v4rho2sigma2(*), v4rhosigma3(*), v4sigma4(*) call xc_gga(p%ptr, np, rho, sigma, zk, vrho, vsigma, & v2rho2, v2rhosigma, v2sigma2, & v3rho3, v3rho2sigma, v3rhosigma2, v3sigma3, & v4rho4, v4rho3sigma, v4rho2sigma2, v4rhosigma3, v4sigma4 & ) end subroutine xc_f90_gga subroutine xc_f90_gga_exc(p, np, rho, sigma, zk) type(xc_f90_func_t), intent(in) :: p integer(c_size_t), intent(in) :: np real(c_double), intent(in) :: rho(*), sigma(*) real(c_double), intent(out) :: zk(*) call xc_gga_exc(p%ptr, np, rho, sigma, zk) end subroutine xc_f90_gga_exc subroutine xc_f90_gga_exc_vxc(p, np, rho, sigma, zk, vrho, vsigma) type(xc_f90_func_t), intent(in) :: p integer(c_size_t), intent(in) :: np real(c_double), intent(in) :: rho(*), sigma(*) real(c_double), intent(out) :: zk(*), vrho(*), vsigma(*) call xc_gga_exc_vxc(p%ptr, np, rho, sigma, zk, vrho, vsigma) end subroutine xc_f90_gga_exc_vxc subroutine xc_f90_gga_exc_vxc_fxc(p, np, rho, sigma, zk, vrho, vsigma, & v2rho2, v2rhosigma, v2sigma2) type(xc_f90_func_t), intent(in) :: p integer(c_size_t), intent(in) :: np real(c_double), intent(in) :: rho(*), sigma(*) real(c_double), intent(out) :: zk(*), vrho(*), vsigma(*) real(c_double), intent(out) :: v2rho2(*), v2rhosigma(*), v2sigma2(*) call xc_gga_exc_vxc_fxc(p%ptr, np, rho, sigma, zk, vrho, vsigma, & v2rho2, v2rhosigma, v2sigma2) end subroutine xc_f90_gga_exc_vxc_fxc subroutine xc_f90_gga_exc_vxc_fxc_kxc(p, np, rho, sigma, zk, vrho, vsigma, & v2rho2, v2rhosigma, v2sigma2, & v3rho3, v3rho2sigma, v3rhosigma2, v3sigma3) type(xc_f90_func_t), intent(in) :: p integer(c_size_t), intent(in) :: np real(c_double), intent(in) :: rho(*), sigma(*) real(c_double), intent(out) :: zk(*), vrho(*), vsigma(*) real(c_double), intent(out) :: v2rho2(*), v2rhosigma(*), v2sigma2(*) real(c_double), intent(out) :: v3rho3(*), v3rho2sigma(*), v3rhosigma2(*), v3sigma3(*) call xc_gga_exc_vxc_fxc_kxc(p%ptr, np, rho, sigma, zk, vrho, vsigma, & v2rho2, v2rhosigma, v2sigma2, & v3rho3, v3rho2sigma, v3rhosigma2, v3sigma3) end subroutine xc_f90_gga_exc_vxc_fxc_kxc subroutine xc_f90_gga_vxc(p, np, rho, sigma, vrho, vsigma) type(xc_f90_func_t), intent(in) :: p integer(c_size_t), intent(in) :: np real(c_double), intent(in) :: rho(*), sigma(*) real(c_double), intent(out) :: vrho(*), vsigma(*) call xc_gga_vxc(p%ptr, np, rho, sigma, vrho, vsigma) end subroutine xc_f90_gga_vxc subroutine xc_f90_gga_vxc_fxc(p, np, rho, sigma, vrho, vsigma, & v2rho2, v2rhosigma, v2sigma2) type(xc_f90_func_t), intent(in) :: p integer(c_size_t), intent(in) :: np real(c_double), intent(in) :: rho(*), sigma(*) real(c_double), intent(out) :: vrho(*), vsigma(*) real(c_double), intent(out) :: v2rho2(*), v2rhosigma(*), v2sigma2(*) call xc_gga_vxc_fxc(p%ptr, np, rho, sigma, vrho, vsigma, & v2rho2, v2rhosigma, v2sigma2) end subroutine xc_f90_gga_vxc_fxc subroutine xc_f90_gga_vxc_fxc_kxc(p, np, rho, sigma, vrho, vsigma, & v2rho2, v2rhosigma, v2sigma2, & v3rho3, v3rho2sigma, v3rhosigma2, v3sigma3) type(xc_f90_func_t), intent(in) :: p integer(c_size_t), intent(in) :: np real(c_double), intent(in) :: rho(*), sigma(*) real(c_double), intent(out) :: vrho(*), vsigma(*) real(c_double), intent(out) :: v2rho2(*), v2rhosigma(*), v2sigma2(*) real(c_double), intent(out) :: v3rho3(*), v3rho2sigma(*), v3rhosigma2(*), v3sigma3(*) call xc_gga_vxc_fxc_kxc(p%ptr, np, rho, sigma, vrho, vsigma, & v2rho2, v2rhosigma, v2sigma2, & v3rho3, v3rho2sigma, v3rhosigma2, v3sigma3) end subroutine xc_f90_gga_vxc_fxc_kxc subroutine xc_f90_gga_fxc(p, np, rho, sigma, v2rho2, v2rhosigma, v2sigma2) type(xc_f90_func_t), intent(in) :: p integer(c_size_t), intent(in) :: np real(c_double), intent(in) :: rho(*), sigma(*) real(c_double), intent(out) :: v2rho2(*), v2rhosigma(*), v2sigma2(*) call xc_gga_fxc(p%ptr, np, rho, sigma, v2rho2, v2rhosigma, v2sigma2) end subroutine xc_f90_gga_fxc subroutine xc_f90_gga_kxc(p, np, rho, sigma, v3rho3, v3rho2sigma, v3rhosigma2, v3sigma3) type(xc_f90_func_t), intent(in) :: p integer(c_size_t), intent(in) :: np real(c_double), intent(in) :: rho(*), sigma(*) real(c_double), intent(out) :: v3rho3(*), v3rho2sigma(*), v3rhosigma2(*), v3sigma3(*) call xc_gga_kxc(p%ptr, np, rho, sigma, v3rho3, v3rho2sigma, v3rhosigma2, v3sigma3) end subroutine xc_f90_gga_kxc subroutine xc_f90_gga_lxc(p, np, rho, sigma, v4rho4, v4rho3sigma, v4rho2sigma2, v4rhosigma3, v4sigma4) type(xc_f90_func_t), intent(in) :: p integer(c_size_t), intent(in) :: np real(c_double), intent(in) :: rho(*), sigma(*) real(c_double), intent(out) :: v4rho4(*), v4rho3sigma(*), v4rho2sigma2(*), v4rhosigma3(*), v4sigma4(*) call xc_gga_lxc(p%ptr, np, rho, sigma, v4rho4, v4rho3sigma, v4rho2sigma2, v4rhosigma3, v4sigma4) end subroutine xc_f90_gga_lxc real(c_double) function xc_f90_gga_ak13_get_asymptotic(homo) result(asymptotic) real(c_double), intent(in) :: homo asymptotic = xc_gga_ak13_get_asymptotic(homo) end function xc_f90_gga_ak13_get_asymptotic real(c_double) function xc_f90_hyb_exx_coef(p) result(coef) type(xc_f90_func_t), intent(in) :: p coef = xc_hyb_exx_coef(p%ptr) end function xc_f90_hyb_exx_coef subroutine xc_f90_hyb_cam_coef(p, omega, alpha, beta) type(xc_f90_func_t), intent(in) :: p real(c_double), intent(out) :: omega, alpha, beta call xc_hyb_cam_coef(p%ptr, omega, alpha, beta) end subroutine xc_f90_hyb_cam_coef subroutine xc_f90_nlc_coef(p, nlc_b, nlc_c) type(xc_f90_func_t), intent(in) :: p real(c_double), intent(out) :: nlc_b, nlc_c call xc_nlc_coef(p%ptr, nlc_b, nlc_c) end subroutine xc_f90_nlc_coef integer(c_int) function xc_f90_num_aux_funcs(p) result(naux) type(xc_f90_func_t), intent(in) :: p naux = xc_num_aux_funcs(p%ptr) end function xc_f90_num_aux_funcs subroutine xc_f90_aux_func_ids(p, ids) type(xc_f90_func_t), intent(in) :: p integer(c_int), intent(out) :: ids(:) call xc_aux_func_ids(p%ptr, ids) end subroutine xc_f90_aux_func_ids subroutine xc_f90_aux_func_weights(p, weights) type(xc_f90_func_t), intent(in) :: p real(c_double), intent(out) :: weights(:) call xc_aux_func_weights(p%ptr, weights) end subroutine xc_f90_aux_func_weights ! the meta-GGAs !---------------------------------------------------------------- subroutine xc_f90_mgga(p, np, rho, sigma, lapl, tau, zk, vrho, vsigma, vlapl, vtau, & v2rho2, v2rhosigma, v2rholapl, v2rhotau, v2sigma2, v2sigmalapl, v2sigmatau, & v2lapl2, v2lapltau, v2tau2, & v3rho3, v3rho2sigma, v3rho2lapl, v3rho2tau, v3rhosigma2, v3rhosigmalapl, & v3rhosigmatau, v3rholapl2, v3rholapltau, v3rhotau2, v3sigma3, v3sigma2lapl, & v3sigma2tau, v3sigmalapl2, v3sigmalapltau, v3sigmatau2, v3lapl3, v3lapl2tau, & v3lapltau2, v3tau3, & v4rho4, v4rho3sigma, v4rho3lapl, v4rho3tau, v4rho2sigma2, v4rho2sigmalapl, & v4rho2sigmatau, v4rho2lapl2, v4rho2lapltau, v4rho2tau2, v4rhosigma3, & v4rhosigma2lapl, v4rhosigma2tau, v4rhosigmalapl2, v4rhosigmalapltau, & v4rhosigmatau2, v4rholapl3, v4rholapl2tau, v4rholapltau2, v4rhotau3, v4sigma4, & v4sigma3lapl, v4sigma3tau, v4sigma2lapl2, v4sigma2lapltau, v4sigma2tau2, & v4sigmalapl3, v4sigmalapl2tau, v4sigmalapltau2, v4sigmatau3, v4lapl4, & v4lapl3tau, v4lapl2tau2, v4lapltau3, v4tau4 & ) type(xc_f90_func_t), intent(in) :: p integer(c_size_t), intent(in) :: np real(c_double), intent(in) :: rho(*), sigma(*), lapl(*), tau(*) real(c_double), intent(out) :: zk(*), vrho(*), vsigma(*), vlapl(*), vtau(*) real(c_double), intent(out) :: v2rho2(*), v2rhosigma(*), v2rholapl(*), v2rhotau(*), & v2sigma2(*), v2sigmalapl(*), v2sigmatau(*), v2lapl2(*), v2lapltau(*), v2tau2(*) real(c_double), intent(out) :: v3rho3(*), v3rho2sigma(*), v3rho2lapl(*), v3rho2tau(*), & v3rhosigma2(*), v3rhosigmalapl(*), v3rhosigmatau(*), v3rholapl2(*), & v3rholapltau(*), v3rhotau2(*), v3sigma3(*), v3sigma2lapl(*), v3sigma2tau(*), & v3sigmalapl2(*), v3sigmalapltau(*), v3sigmatau2(*), v3lapl3(*), v3lapl2tau(*), & v3lapltau2(*), v3tau3(*) real(c_double), intent(out) :: & v4rho4(*), v4rho3sigma(*), v4rho3lapl(*), v4rho3tau(*), v4rho2sigma2(*), v4rho2sigmalapl(*), & v4rho2sigmatau(*), v4rho2lapl2(*), v4rho2lapltau(*), v4rho2tau2(*), v4rhosigma3(*), & v4rhosigma2lapl(*), v4rhosigma2tau(*), v4rhosigmalapl2(*), v4rhosigmalapltau(*), & v4rhosigmatau2(*), v4rholapl3(*), v4rholapl2tau(*), v4rholapltau2(*), v4rhotau3(*), v4sigma4(*), & v4sigma3lapl(*), v4sigma3tau(*), v4sigma2lapl2(*), v4sigma2lapltau(*), v4sigma2tau2(*), & v4sigmalapl3(*), v4sigmalapl2tau(*), v4sigmalapltau2(*), v4sigmatau3(*), v4lapl4(*), & v4lapl3tau(*), v4lapl2tau2(*), v4lapltau3(*), v4tau4(*) call xc_mgga(p%ptr, np, rho, sigma, lapl, tau, zk, vrho, vsigma, vlapl, vtau, & v2rho2, v2rhosigma, v2rholapl, v2rhotau, v2sigma2, v2sigmalapl, v2sigmatau, & v2lapl2, v2lapltau, v2tau2, & v3rho3, v3rho2sigma, v3rho2lapl, v3rho2tau, v3rhosigma2, v3rhosigmalapl, & v3rhosigmatau, v3rholapl2, v3rholapltau, v3rhotau2, v3sigma3, v3sigma2lapl, & v3sigma2tau, v3sigmalapl2, v3sigmalapltau, v3sigmatau2, v3lapl3, v3lapl2tau, & v3lapltau2, v3tau3, & v4rho4, v4rho3sigma, v4rho3lapl, v4rho3tau, v4rho2sigma2, v4rho2sigmalapl, & v4rho2sigmatau, v4rho2lapl2, v4rho2lapltau, v4rho2tau2, v4rhosigma3, & v4rhosigma2lapl, v4rhosigma2tau, v4rhosigmalapl2, v4rhosigmalapltau, & v4rhosigmatau2, v4rholapl3, v4rholapl2tau, v4rholapltau2, v4rhotau3, v4sigma4, & v4sigma3lapl, v4sigma3tau, v4sigma2lapl2, v4sigma2lapltau, v4sigma2tau2, & v4sigmalapl3, v4sigmalapl2tau, v4sigmalapltau2, v4sigmatau3, v4lapl4, & v4lapl3tau, v4lapl2tau2, v4lapltau3, v4tau4 & ) end subroutine xc_f90_mgga subroutine xc_f90_mgga_exc(p, np, rho, sigma, lapl, tau, zk) type(xc_f90_func_t), intent(in) :: p integer(c_size_t), intent(in) :: np real(c_double), intent(in) :: rho(*), sigma(*), lapl(*), tau(*) real(c_double), intent(out) :: zk(*) call xc_mgga_exc(p%ptr, np, rho, sigma, lapl, tau, zk) end subroutine xc_f90_mgga_exc subroutine xc_f90_mgga_exc_vxc(p, np, rho, sigma, lapl, tau, zk, vrho, vsigma, vlapl, vtau) type(xc_f90_func_t), intent(in) :: p integer(c_size_t), intent(in) :: np real(c_double), intent(in) :: rho(*), sigma(*), lapl(*), tau(*) real(c_double), intent(out) :: zk(*), vrho(*), vsigma(*), vlapl(*), vtau(*) call xc_mgga_exc_vxc(p%ptr, np, rho, sigma, lapl, tau, zk, vrho, vsigma, vlapl, vtau) end subroutine xc_f90_mgga_exc_vxc subroutine xc_f90_mgga_exc_vxc_fxc(p, np, rho, sigma, lapl, tau, zk, vrho, vsigma, vlapl, vtau, & v2rho2, v2rhosigma, v2rholapl, v2rhotau, v2sigma2, v2sigmalapl, v2sigmatau, & v2lapl2, v2lapltau, v2tau2) type(xc_f90_func_t), intent(in) :: p integer(c_size_t), intent(in) :: np real(c_double), intent(in) :: rho(*), sigma(*), lapl(*), tau(*) real(c_double), intent(out) :: zk(*), vrho(*), vsigma(*), vlapl(*), vtau(*) real(c_double), intent(out) :: v2rho2(*), v2rhosigma(*), v2rholapl(*), v2rhotau(*), & v2sigma2(*), v2sigmalapl(*), v2sigmatau(*), v2lapl2(*), v2lapltau(*), v2tau2(*) call xc_mgga_exc_vxc_fxc(p%ptr, np, rho, sigma, lapl, tau, zk, vrho, vsigma, vlapl, vtau, & v2rho2, v2rhosigma, v2rholapl, v2rhotau, v2sigma2, v2sigmalapl, v2sigmatau, & v2lapl2, v2lapltau, v2tau2) end subroutine xc_f90_mgga_exc_vxc_fxc subroutine xc_f90_mgga_exc_vxc_fxc_kxc(p, np, rho, sigma, lapl, tau, zk, vrho, vsigma, vlapl, vtau, & v2rho2, v2rhosigma, v2rholapl, v2rhotau, v2sigma2, v2sigmalapl, v2sigmatau, & v2lapl2, v2lapltau, v2tau2, & v3rho3, v3rho2sigma, v3rho2lapl, v3rho2tau, v3rhosigma2, v3rhosigmalapl, & v3rhosigmatau, v3rholapl2, v3rholapltau, v3rhotau2, v3sigma3, v3sigma2lapl, & v3sigma2tau, v3sigmalapl2, v3sigmalapltau, v3sigmatau2, v3lapl3, v3lapl2tau, & v3lapltau2, v3tau3) type(xc_f90_func_t), intent(in) :: p integer(c_size_t), intent(in) :: np real(c_double), intent(in) :: rho(*), sigma(*), lapl(*), tau(*) real(c_double), intent(out) :: zk(*), vrho(*), vsigma(*), vlapl(*), vtau(*) real(c_double), intent(out) :: v2rho2(*), v2rhosigma(*), v2rholapl(*), v2rhotau(*), & v2sigma2(*), v2sigmalapl(*), v2sigmatau(*), v2lapl2(*), v2lapltau(*), v2tau2(*) real(c_double), intent(out) :: v3rho3(*), v3rho2sigma(*), v3rho2lapl(*), v3rho2tau(*), & v3rhosigma2(*), v3rhosigmalapl(*), v3rhosigmatau(*), v3rholapl2(*), & v3rholapltau(*), v3rhotau2(*), v3sigma3(*), v3sigma2lapl(*), v3sigma2tau(*), & v3sigmalapl2(*), v3sigmalapltau(*), v3sigmatau2(*), v3lapl3(*), v3lapl2tau(*), & v3lapltau2(*), v3tau3(*) call xc_mgga_exc_vxc_fxc_kxc(p%ptr, np, rho, sigma, lapl, tau, zk, vrho, vsigma, vlapl, vtau, & v2rho2, v2rhosigma, v2rholapl, v2rhotau, v2sigma2, v2sigmalapl, v2sigmatau, & v2lapl2, v2lapltau, v2tau2, & v3rho3, v3rho2sigma, v3rho2lapl, v3rho2tau, v3rhosigma2, v3rhosigmalapl, & v3rhosigmatau, v3rholapl2, v3rholapltau, v3rhotau2, v3sigma3, v3sigma2lapl, & v3sigma2tau, v3sigmalapl2, v3sigmalapltau, v3sigmatau2, v3lapl3, v3lapl2tau, & v3lapltau2, v3tau3) end subroutine xc_f90_mgga_exc_vxc_fxc_kxc subroutine xc_f90_mgga_vxc(p, np, rho, sigma, lapl, tau, vrho, vsigma, vlapl, vtau) type(xc_f90_func_t), intent(in) :: p integer(c_size_t), intent(in) :: np real(c_double), intent(in) :: rho(*), sigma(*), lapl(*), tau(*) real(c_double), intent(out) :: vrho(*), vsigma(*), vlapl(*), vtau(*) call xc_mgga_vxc(p%ptr, np, rho, sigma, lapl, tau, vrho, vsigma, vlapl, vtau) end subroutine xc_f90_mgga_vxc subroutine xc_f90_mgga_vxc_fxc(p, np, rho, sigma, lapl, tau, vrho, vsigma, vlapl, vtau, & v2rho2, v2rhosigma, v2rholapl, v2rhotau, v2sigma2, v2sigmalapl, v2sigmatau, & v2lapl2, v2lapltau, v2tau2) type(xc_f90_func_t), intent(in) :: p integer(c_size_t), intent(in) :: np real(c_double), intent(in) :: rho(*), sigma(*), lapl(*), tau(*) real(c_double), intent(out) :: vrho(*), vsigma(*), vlapl(*), vtau(*) real(c_double), intent(out) :: v2rho2(*), v2rhosigma(*), v2rholapl(*), v2rhotau(*), & v2sigma2(*), v2sigmalapl(*), v2sigmatau(*), v2lapl2(*), v2lapltau(*), v2tau2(*) call xc_mgga_vxc_fxc(p%ptr, np, rho, sigma, lapl, tau, vrho, vsigma, vlapl, vtau, & v2rho2, v2rhosigma, v2rholapl, v2rhotau, v2sigma2, v2sigmalapl, v2sigmatau, & v2lapl2, v2lapltau, v2tau2) end subroutine xc_f90_mgga_vxc_fxc subroutine xc_f90_mgga_vxc_fxc_kxc(p, np, rho, sigma, lapl, tau, vrho, vsigma, vlapl, vtau, & v2rho2, v2rhosigma, v2rholapl, v2rhotau, v2sigma2, v2sigmalapl, v2sigmatau, & v2lapl2, v2lapltau, v2tau2, & v3rho3, v3rho2sigma, v3rho2lapl, v3rho2tau, v3rhosigma2, v3rhosigmalapl, & v3rhosigmatau, v3rholapl2, v3rholapltau, v3rhotau2, v3sigma3, v3sigma2lapl, & v3sigma2tau, v3sigmalapl2, v3sigmalapltau, v3sigmatau2, v3lapl3, v3lapl2tau, & v3lapltau2, v3tau3) type(xc_f90_func_t), intent(in) :: p integer(c_size_t), intent(in) :: np real(c_double), intent(in) :: rho(*), sigma(*), lapl(*), tau(*) real(c_double), intent(out) :: vrho(*), vsigma(*), vlapl(*), vtau(*) real(c_double), intent(out) :: v2rho2(*), v2rhosigma(*), v2rholapl(*), v2rhotau(*), & v2sigma2(*), v2sigmalapl(*), v2sigmatau(*), v2lapl2(*), v2lapltau(*), v2tau2(*) real(c_double), intent(out) :: v3rho3(*), v3rho2sigma(*), v3rho2lapl(*), v3rho2tau(*), & v3rhosigma2(*), v3rhosigmalapl(*), v3rhosigmatau(*), v3rholapl2(*), & v3rholapltau(*), v3rhotau2(*), v3sigma3(*), v3sigma2lapl(*), v3sigma2tau(*), & v3sigmalapl2(*), v3sigmalapltau(*), v3sigmatau2(*), v3lapl3(*), v3lapl2tau(*), & v3lapltau2(*), v3tau3(*) call xc_mgga_vxc_fxc_kxc(p%ptr, np, rho, sigma, lapl, tau, vrho, vsigma, vlapl, vtau, & v2rho2, v2rhosigma, v2rholapl, v2rhotau, v2sigma2, v2sigmalapl, v2sigmatau, & v2lapl2, v2lapltau, v2tau2, & v3rho3, v3rho2sigma, v3rho2lapl, v3rho2tau, v3rhosigma2, v3rhosigmalapl, & v3rhosigmatau, v3rholapl2, v3rholapltau, v3rhotau2, v3sigma3, v3sigma2lapl, & v3sigma2tau, v3sigmalapl2, v3sigmalapltau, v3sigmatau2, v3lapl3, v3lapl2tau, & v3lapltau2, v3tau3) end subroutine xc_f90_mgga_vxc_fxc_kxc subroutine xc_f90_mgga_fxc(p, np, rho, sigma, lapl, tau, & v2rho2, v2rhosigma, v2rholapl, v2rhotau, v2sigma2, v2sigmalapl, v2sigmatau, & v2lapl2, v2lapltau, v2tau2) type(xc_f90_func_t), intent(in) :: p integer(c_size_t), intent(in) :: np real(c_double), intent(in) :: rho(*), sigma(*), lapl(*), tau(*) real(c_double), intent(out) :: v2rho2(*), v2rhosigma(*), v2rholapl(*), v2rhotau(*), & v2sigma2(*), v2sigmalapl(*), v2sigmatau(*), v2lapl2(*), v2lapltau(*), v2tau2(*) call xc_mgga_fxc(p%ptr, np, rho, sigma, lapl, tau, & v2rho2, v2rhosigma, v2rholapl, v2rhotau, & v2sigma2, v2sigmalapl, v2sigmatau, v2lapl2, v2lapltau, v2tau2) end subroutine xc_f90_mgga_fxc subroutine xc_f90_mgga_kxc(p, np, rho, sigma, lapl, tau, & v3rho3, v3rho2sigma, v3rho2lapl, v3rho2tau, v3rhosigma2, v3rhosigmalapl, & v3rhosigmatau, v3rholapl2, v3rholapltau, v3rhotau2, v3sigma3, v3sigma2lapl, & v3sigma2tau, v3sigmalapl2, v3sigmalapltau, v3sigmatau2, v3lapl3, v3lapl2tau, & v3lapltau2, v3tau3) type(xc_f90_func_t), intent(in) :: p integer(c_size_t), intent(in) :: np real(c_double), intent(in) :: rho(*), sigma(*), lapl(*), tau(*) real(c_double), intent(out) :: v3rho3(*), v3rho2sigma(*), v3rho2lapl(*), v3rho2tau(*), & v3rhosigma2(*), v3rhosigmalapl(*), v3rhosigmatau(*), v3rholapl2(*), & v3rholapltau(*), v3rhotau2(*), v3sigma3(*), v3sigma2lapl(*), v3sigma2tau(*), & v3sigmalapl2(*), v3sigmalapltau(*), v3sigmatau2(*), v3lapl3(*), v3lapl2tau(*), & v3lapltau2(*), v3tau3(*) call xc_mgga_kxc(p%ptr, np, rho, sigma, lapl, tau, & v3rho3, v3rho2sigma, v3rho2lapl, v3rho2tau, v3rhosigma2, v3rhosigmalapl, & v3rhosigmatau, v3rholapl2, v3rholapltau, v3rhotau2, v3sigma3, v3sigma2lapl, & v3sigma2tau, v3sigmalapl2, v3sigmalapltau, v3sigmatau2, v3lapl3, v3lapl2tau, & v3lapltau2, v3tau3) end subroutine xc_f90_mgga_kxc subroutine xc_f90_mgga_lxc(p, np, rho, sigma, lapl, tau, & v4rho4, v4rho3sigma, v4rho3lapl, v4rho3tau, v4rho2sigma2, v4rho2sigmalapl, & v4rho2sigmatau, v4rho2lapl2, v4rho2lapltau, v4rho2tau2, v4rhosigma3, & v4rhosigma2lapl, v4rhosigma2tau, v4rhosigmalapl2, v4rhosigmalapltau, & v4rhosigmatau2, v4rholapl3, v4rholapl2tau, v4rholapltau2, v4rhotau3, v4sigma4, & v4sigma3lapl, v4sigma3tau, v4sigma2lapl2, v4sigma2lapltau, v4sigma2tau2, & v4sigmalapl3, v4sigmalapl2tau, v4sigmalapltau2, v4sigmatau3, v4lapl4, & v4lapl3tau, v4lapl2tau2, v4lapltau3, v4tau4 & ) type(xc_f90_func_t), intent(in) :: p integer(c_size_t), intent(in) :: np real(c_double), intent(in) :: rho(*), sigma(*), lapl(*), tau(*) real(c_double), intent(out) :: & v4rho4(*), v4rho3sigma(*), v4rho3lapl(*), v4rho3tau(*), v4rho2sigma2(*), v4rho2sigmalapl(*), & v4rho2sigmatau(*), v4rho2lapl2(*), v4rho2lapltau(*), v4rho2tau2(*), v4rhosigma3(*), & v4rhosigma2lapl(*), v4rhosigma2tau(*), v4rhosigmalapl2(*), v4rhosigmalapltau(*), & v4rhosigmatau2(*), v4rholapl3(*), v4rholapl2tau(*), v4rholapltau2(*), v4rhotau3(*), v4sigma4(*), & v4sigma3lapl(*), v4sigma3tau(*), v4sigma2lapl2(*), v4sigma2lapltau(*), v4sigma2tau2(*), & v4sigmalapl3(*), v4sigmalapl2tau(*), v4sigmalapltau2(*), v4sigmatau3(*), v4lapl4(*), & v4lapl3tau(*), v4lapl2tau2(*), v4lapltau3(*), v4tau4(*) call xc_mgga_lxc(p%ptr, np, rho, sigma, lapl, tau, & v4rho4, v4rho3sigma, v4rho3lapl, v4rho3tau, v4rho2sigma2, v4rho2sigmalapl, & v4rho2sigmatau, v4rho2lapl2, v4rho2lapltau, v4rho2tau2, v4rhosigma3, & v4rhosigma2lapl, v4rhosigma2tau, v4rhosigmalapl2, v4rhosigmalapltau, & v4rhosigmatau2, v4rholapl3, v4rholapl2tau, v4rholapltau2, v4rhotau3, v4sigma4, & v4sigma3lapl, v4sigma3tau, v4sigma2lapl2, v4sigma2lapltau, v4sigma2tau2, & v4sigmalapl3, v4sigmalapl2tau, v4sigmalapltau2, v4sigmatau3, v4lapl4, & v4lapl3tau, v4lapl2tau2, v4lapltau3, v4tau4 & ) end subroutine xc_f90_mgga_lxc ! Helper functions to convert between C and Fortran strings ! Based on the routines by Joseph M. Krahn function f_to_c_string(f_string) result(c_string) character(len=*), intent(in) :: f_string character(kind=c_char,len=1) :: c_string(len_trim(f_string)+1) integer :: i, strlen strlen = len_trim(f_string) forall (i=1:strlen) c_string(i) = f_string(i:i) end forall c_string(strlen+1) = C_NULL_CHAR end function f_to_c_string subroutine c_to_f_string(c_string, f_string) character(kind=c_char,len=1), intent(in) :: c_string(*) character(len=*), intent(out) :: f_string integer :: i i = 1 do while(c_string(i) /= C_NULL_CHAR .and. i <= len(f_string)) f_string(i:i) = c_string(i) i = i + 1 end do if (i < len(f_string)) f_string(i:) = ' ' end subroutine c_to_f_string subroutine c_to_f_string_ptr(c_string, f_string) type(c_ptr), intent(in) :: c_string character(len=*), intent(out) :: f_string character(len=1, kind=c_char), pointer :: p_chars(:) integer :: i if (.not. c_associated(c_string)) then f_string = ' ' else call c_f_pointer(c_string, p_chars, [huge(0)]) i = 1 do while(p_chars(i) /= C_NULL_CHAR .and. i <= len(f_string)) f_string(i:i) = p_chars(i) i = i + 1 end do if (i < len(f_string)) f_string(i:) = ' ' end if end subroutine c_to_f_string_ptr end module xc_f90_lib_m !! Local Variables: !! mode: f90 !! coding: utf-8 !! End: elk-9.6.8/src/PaxHeaders/libxcifc.f900000644000000000000000000000013014626155521014266 xustar0029 mtime=1717099345.57099493 30 atime=1717099345.569994925 29 ctime=1717099345.57099493 elk-9.6.8/src/libxcifc.f900000644002504400250440000004403714626155521017022 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) private grad contains !BOP ! !ROUTINE: xcifc_libxc ! !INTERFACE: subroutine xcifc_libxc(xctype,n,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) ! !USES: use, intrinsic :: iso_c_binding ! !INPUT/OUTPUT PARAMETERS: ! xctype : type of exchange-correlation functional (in,integer(3)) ! n : number of density points (in,integer) ! 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) ! Updated for Libxc 5, May 2020 (JKD) ! Updated for Libxc 6, December 2022 (JKD) !EOP !BOC implicit none ! mandatory arguments integer, intent(in) :: xctype(3),n ! optional arguments real(8), optional, intent(in) :: 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,fmly,id,k integer(c_size_t) np type(xc_f90_func_t) p ! 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(libxcifc): missing arguments")') write(*,*) stop end if if (xctype(2) /= 0) then if (xctype(2) == xctype(3)) then write(*,*) write(*,'("Error(libxcifc): Libxc exchange and correlation functionals")') write(*,'(" are the same : ",2I8)') xctype(2:3) write(*,*) stop end if end if ! convert number of points to long integer np=n ! loop over functional kinds (exchange or correlation) do k=2,3 id=xctype(k) if (id > 0) then fmly=xc_f90_family_from_id(id) ! initialise functional call xc_f90_func_init(p,id,nspin) select case(fmly) case(XC_FAMILY_LDA) !-------------------------! ! LDA functionals ! !-------------------------! ! set temperature for free energy functional if ((id == XC_LDA_XC_KSDT).or.(id == XC_LDA_XC_GDSMFB)) then call xc_f90_func_set_ext_params(p,[tempa]) end if if (k == 2) then ! exchange or a kinetic energy functional if (present(rho)) then if (present(ex)) then call xc_f90_lda_exc_vxc(p,np,rho,ex,vx) else call xc_f90_lda_vxc(p,np,rho,vx) end if else allocate(r(2,n),vrho(2,n)) r(1,:)=rhoup(:); r(2,:)=rhodn(:) if (present(ex)) then call xc_f90_lda_exc_vxc(p,np,r,ex,vrho) else call xc_f90_lda_vxc(p,np,r,vrho) end if vxup(:)=vrho(1,:); vxdn(:)=vrho(2,:) deallocate(r,vrho) end if else ! correlation if (present(rho)) then if (present(ec)) then call xc_f90_lda_exc_vxc(p,np,rho,ec,vc) else call xc_f90_lda_vxc(p,np,rho,vc) end if else allocate(r(2,n),vrho(2,n)) r(1,:)=rhoup(:); r(2,:)=rhodn(:) if (present(ec)) then call xc_f90_lda_exc_vxc(p,np,r,ec,vrho) else call xc_f90_lda_vxc(p,np,r,vrho) end if 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 == 2) then ! exchange or a kinetic energy functional if (present(rho)) then if (present(ex)) then call xc_f90_gga_exc_vxc(p,np,rho,grho2,ex,vx,dxdgr2) else call xc_f90_gga_vxc(p,np,rho,grho2,vx,dxdgr2) end if else allocate(r(2,n),sigma(3,n),vrho(2,n),vsigma(3,n)) r(1,:)=rhoup(:); r(2,:)=rhodn(:) sigma(1,:)=gup2(:) if (present(gupdn)) then sigma(2,:)=gupdn(:) else sigma(2,:)=0.d0 end if sigma(3,:)=gdn2(:) if (present(ex)) then call xc_f90_gga_exc_vxc(p,np,r,sigma,ex,vrho,vsigma) else call xc_f90_gga_vxc(p,np,r,sigma,vrho,vsigma) end if vxup(:)=vrho(1,:); vxdn(:)=vrho(2,:) dxdgu2(:)=vsigma(1,:) if (present(dxdgud)) dxdgud(:)=vsigma(2,:) dxdgd2(:)=vsigma(3,:) deallocate(r,sigma,vrho,vsigma) end if else ! correlation if (present(rho)) then if (present(ec)) then call xc_f90_gga_exc_vxc(p,np,rho,grho2,ec,vc,dcdgr2) else call xc_f90_gga_vxc(p,np,rho,grho2,vc,dcdgr2) end if 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(:) if (present(ec)) then call xc_f90_gga_exc_vxc(p,np,r,sigma,ec,vrho,vsigma) else call xc_f90_gga_vxc(p,np,r,sigma,vrho,vsigma) end if 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 ! !------------------------------! if (k == 2) then ! exchange or a kinetic energy functional if (present(rho)) then if (present(ex)) then call xc_f90_mgga_exc_vxc(p,np,rho,grho2,g2rho,tau,ex,vx,dxdgr2, & dxdg2r,wx) else call xc_f90_mgga_vxc(p,np,rho,grho2,g2rho,tau,vx,dxdgr2,dxdg2r,wx) 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(3,:)=gdn2(:) if (present(gupdn)) then sigma(2,:)=gupdn(:) else sigma(2,:)=0.d0 end if lapl(1,:)=g2up(:); lapl(2,:)=g2dn(:) t(1,:)=tauup(:); t(2,:)=taudn(:) if (present(ex)) then call xc_f90_mgga_exc_vxc(p,np,r,sigma,lapl,t,ex,vrho,vsigma,vlapl, & vtau) else call xc_f90_mgga_vxc(p,np,r,sigma,lapl,t,vrho,vsigma,vlapl,vtau) end if vxup(:)=vrho(1,:); vxdn(:)=vrho(2,:) dxdgu2(:)=vsigma(1,:); dxdgd2(:)=vsigma(3,:) if (present(dxdgud)) dxdgud(:)=vsigma(2,:) dxdg2u(:)=vlapl(1,:); dxdg2d(:)=vlapl(2,:) wxup(:)=vtau(1,:); wxdn(:)=vtau(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,np,rho,grho2,g2rho,tau,ec,vc,dcdgr2, & dcdg2r,wc) else call xc_f90_mgga_vxc(p,np,rho,grho2,g2rho,tau,vc,dcdgr2,dcdg2r,wc) 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,np,r,sigma,lapl,t,ec,vrho,vsigma,vlapl, & vtau) else call xc_f90_mgga_vxc(p,np,r,sigma,lapl,t,vrho,vsigma,vlapl,vtau) end if vcup(:)=vrho(1,:); vcdn(:)=vrho(2,:) dcdgu2(:)=vsigma(1,:); dcdgud(:)=vsigma(2,:); dcdgd2(:)=vsigma(3,:) dcdg2u(:)=vlapl(1,:); dcdg2d(:)=vlapl(2,:) wcup(:)=vtau(1,:); wcdn(:)=vtau(2,:) deallocate(r,sigma,lapl,t) deallocate(vrho,vsigma,vlapl,vtau) end if end if case default write(*,*) write(*,'("Error(libxcifc): unsupported Libxc functional family : ",I8)')& fmly write(*,*) stop end select ! destroy functional call xc_f90_func_end(p) else ! case when id=0 if (k == 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 if (present(dxdg2r)) dxdg2r(:)=0.d0 if (present(dxdg2u)) dxdg2u(:)=0.d0 if (present(dxdg2d)) dxdg2d(:)=0.d0 if (present(wx)) wx(:)=0.d0 if (present(wxup)) wxup(:)=0.d0 if (present(wxdn)) wxdn(:)=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 if (present(dcdg2r)) dcdg2r(:)=0.d0 if (present(dcdg2u)) dcdg2u(:)=0.d0 if (present(dcdg2d)) dcdg2d(:)=0.d0 if (present(wc)) wc(:)=0.d0 if (present(wcup)) wcup(:)=0.d0 if (present(wcdn)) wcdn(:)=0.d0 end if end if end do end subroutine subroutine fxcifc_libxc(fxctype,n,rho,rhoup,rhodn,fxc,fxcuu,fxcud,fxcdd) use, intrinsic :: iso_c_binding 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,fmly,id,k integer(c_size_t) np type(xc_f90_func_t) p ! allocatable arrays real(8), allocatable :: r(:,:),f(:,:) np=n if (present(rho)) then nspin=XC_UNPOLARIZED else if (present(rhoup).and.present(rhodn)) then nspin=XC_POLARIZED else write(*,*) write(*,'("Error(libxcifc): 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 <= 0) cycle fmly=xc_f90_family_from_id(id) ! initialise functional call xc_f90_func_init(p,id,nspin) select case(fmly) case(XC_FAMILY_LDA) !-------------------------! ! LDA functionals ! !-------------------------! if (present(rho)) then allocate(f(1,n)) call xc_f90_lda_fxc(p,np,rho,f) 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,np,r,f) fxcuu(:)=fxcuu(:)+f(1,:) fxcud(:)=fxcud(:)+f(2,:) fxcdd(:)=fxcdd(:)+f(3,:) deallocate(r,f) end if case default write(*,*) write(*,'("Error(libxcifc): unsupported Libxc functional family : ",I8)') & fmly write(*,'(" for calculating f_xc")') write(*,*) stop end select ! destroy functional call xc_f90_func_end(p) end do end subroutine subroutine xcdata_libxc(xctype,xcdescr,xcspin,xcgrad,hybrid,hybridc) implicit none ! arguments integer, intent(in) :: xctype(3) character(264), intent(out) :: xcdescr integer, intent(out) :: xcspin,xcgrad logical, intent(out) :: hybrid real(8), intent(out) :: hybridc ! local variables integer k,id,fmly,g character(128) name type(xc_f90_func_t) p ! check version is compatible call xc_f90_version(libxcv(1),libxcv(2),libxcv(3)) if (libxcv(1) /= 6) then write(*,*) write(*,'("Error(libxcifc): incompatible Libxc version : ",I2.2,".",I3.3,".",& &I3.3)') libxcv(:) write(*,*) stop end if ! undefined spin polarisation xcspin=-1 ! undefined gradient type xcgrad=-1 ! not a hybrid functional by default hybrid=.false. ! default description xcdescr='none' do k=2,3 id=xctype(k) if (id <= 0) cycle ! initialise functional call xc_f90_func_init(p,id,XC_UNPOLARIZED) !-----------------------! ! gradient type ! !-----------------------! g=grad(p) if (g < 0) then write(*,*) write(*,'("Error(libxcifc): unsupported gradient type")') write(*,*) stop end if if (k == 3) then if ((xcgrad >= 0).and.(g /= xcgrad)) then write(*,*) write(*,'("Error(libxcifc): inconsistent exchange and correlation & &gradient types")') write(*,*) stop end if end if xcgrad=g !----------------------------! ! hybrid functionals ! !----------------------------! fmly=xc_f90_family_from_id(id) ! hybrid GGA functionals if (fmly == XC_FAMILY_HYB_GGA) then if (k == 2) then write(*,*) write(*,'("Error(libxcifc): set only correlation part of xctype for & &Libxc hybrids")') write(*,*) stop end if ! set the hybrid mixing coefficient hybridc=xc_f90_hyb_exx_coef(p) hybrid=.true. end if !--------------------------------! ! functional description ! !--------------------------------! name=xc_f90_functional_get_name(id) if (k == 2) then xcdescr=trim(name) else xcdescr=trim(xcdescr)//'; '//trim(name) end if ! destroy functional call xc_f90_func_end(p) end do end subroutine integer function grad(p) implicit none ! arguments type(xc_f90_func_t), intent(in) :: p ! local variables type(xc_f90_func_info_t) info type(xc_f90_func_t) pa integer fmly,flg,knd integer naux,i ! allocatable arrays integer, allocatable :: ida(:) info=xc_f90_func_get_info(p) fmly=xc_f90_func_info_get_family(info) select case(fmly) case(XC_FAMILY_LDA) ! no gradients required grad=0 case(XC_FAMILY_GGA,XC_FAMILY_HYB_GGA) ! GGA gradients required grad=2 case(XC_FAMILY_MGGA) flg=xc_f90_func_info_get_flags(info) if (iand(flg,XC_FLAGS_NEEDS_LAPLACIAN) == 0) then ! tau and no Laplacian grad=4 else ! tau and Laplacian grad=5 end if ! check if tau is not required knd=xc_f90_func_info_get_kind(info) if (knd == XC_KINETIC) then ! this is a kinetic energy functional so tau is not required grad=3 else ! this is an exchange and/or correlation functional naux=xc_f90_num_aux_funcs(p) allocate(ida(naux)) call xc_f90_aux_func_ids(p,ida) do i=1,naux call xc_f90_func_init(pa,ida(i),XC_UNPOLARIZED) info=xc_f90_func_get_info(pa) knd=xc_f90_func_info_get_kind(info) call xc_f90_func_end(pa) if (knd == XC_KINETIC) then ! this is a deorbitalised functional and does not require tau grad=3 exit end if end do deallocate(ida) end if case default grad=-1 end select end function !EOC end module elk-9.6.8/src/PaxHeaders/zfftifc_mkl.f900000644000000000000000000000013214626155521015003 xustar0030 mtime=1717099345.590995038 30 atime=1717099345.589995032 30 ctime=1717099345.590995038 elk-9.6.8/src/zfftifc_mkl.f900000644002504400250440000000364214626155521017532 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 == -1) then status=DftiComputeForward(handle,z) else status=DftiComputeBackward(handle,z) end if status=DftiFreeDescriptor(handle) 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 > 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 == -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) end subroutine elk-9.6.8/src/PaxHeaders/cfftifc_mkl.f900000644000000000000000000000013214626155521014754 xustar0030 mtime=1717099345.592995049 30 atime=1717099345.592995049 30 ctime=1717099345.592995049 elk-9.6.8/src/cfftifc_mkl.f900000644002504400250440000000363314626155521017503 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2022 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 cfftifc(nd,n,sgn,c) use mkl_dfti implicit none ! arguments integer, intent(in) :: nd,n(nd),sgn complex(4), intent(inout) :: c(*) ! local variables ! local variables integer status,p real(4) 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.e0/real(p) status=DftiCreateDescriptor(handle,DFTI_SINGLE,DFTI_COMPLEX,nd,n) status=DftiSetValue(handle,DFTI_FORWARD_SCALE,t1) status=DftiCommitDescriptor(handle) if (sgn == -1) then status=DftiComputeForward(handle,c) else status=DftiComputeBackward(handle,c) end if status=DftiFreeDescriptor(handle) end subroutine subroutine rcfftifc(nd,n,sgn,r,c) use mkl_dfti implicit none ! arguments integer, intent(in) :: nd,n(nd),sgn real(4), intent(inout) :: r(*) complex(4), intent(inout) :: c(*) ! local variables integer status,p,i real(4) t1 type(DFTI_DESCRIPTOR), pointer :: handle ! automatic arrays integer strides(0:nd) p=product(n(:)) t1=1.e0/real(p) status=DftiCreateDescriptor(handle,DFTI_SINGLE,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 > 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 == -1) then status=DftiSetValue(handle,DFTI_OUTPUT_STRIDES,strides) status=DftiCommitDescriptor(handle) status=DftiComputeForward(handle,r,c) else status=DftiSetValue(handle,DFTI_INPUT_STRIDES,strides) status=DftiCommitDescriptor(handle) status=DftiComputeBackward(handle,c,r) end if status=DftiFreeDescriptor(handle) end subroutine elk-9.6.8/PaxHeaders/examples0000644000000000000000000000013214626155522013140 xustar0030 mtime=1717099346.275998729 30 atime=1717099345.604995113 30 ctime=1717099346.275998729 elk-9.6.8/examples/0000755002504400250440000000000014626155522015737 5ustar00dewhurstdewhurst00000000000000elk-9.6.8/examples/PaxHeaders/BSE0000644000000000000000000000013214626155521013550 xustar0030 mtime=1717099345.626995232 30 atime=1717099345.606995124 30 ctime=1717099345.626995232 elk-9.6.8/examples/BSE/0000755002504400250440000000000014626155521016347 5ustar00dewhurstdewhurst00000000000000elk-9.6.8/examples/BSE/PaxHeaders/Si0000644000000000000000000000013214626155521014123 xustar0030 mtime=1717099345.616995178 30 atime=1717099345.607995129 30 ctime=1717099345.616995178 elk-9.6.8/examples/BSE/Si/0000755002504400250440000000000014626155521016722 5ustar00dewhurstdewhurst00000000000000elk-9.6.8/examples/BSE/Si/PaxHeaders/EPSILON_11.OUT0000644000000000000000000000013114626155521016202 xustar0030 mtime=1717099345.610995146 29 atime=1717099345.60999514 30 ctime=1717099345.610995146 elk-9.6.8/examples/BSE/Si/EPSILON_11.OUT0000644002504400250440000016350614626155521020740 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-9.6.8/examples/BSE/Si/PaxHeaders/EPSILON_BSE_11.OUT0000644000000000000000000000013214626155521016674 xustar0030 mtime=1717099345.614995167 30 atime=1717099345.613995162 30 ctime=1717099345.614995167 elk-9.6.8/examples/BSE/Si/EPSILON_BSE_11.OUT0000644002504400250440000016350614626155521021431 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-9.6.8/examples/BSE/Si/PaxHeaders/elk.in0000644000000000000000000000013214626155521015303 xustar0030 mtime=1717099345.616995178 30 atime=1717099345.616995178 30 ctime=1717099345.616995178 elk-9.6.8/examples/BSE/Si/elk.in0000644002504400250440000000331014626155521020022 0ustar00dewhurstdewhurst00000000000000 ! BSE optical spectrum of silicon. Note that the non-zero vkloff is needed to ! make the system non-metallic, i.e. all occupation numbers 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-9.6.8/examples/BSE/PaxHeaders/CaO-core0000644000000000000000000000013214626155521015140 xustar0030 mtime=1717099345.624995221 30 atime=1717099345.618995189 30 ctime=1717099345.624995221 elk-9.6.8/examples/BSE/CaO-core/0000755002504400250440000000000014626155521017737 5ustar00dewhurstdewhurst00000000000000elk-9.6.8/examples/BSE/CaO-core/PaxHeaders/Ca_lo.in0000644000000000000000000000013214626155521016562 xustar0030 mtime=1717099345.620995199 30 atime=1717099345.620995199 30 ctime=1717099345.620995199 elk-9.6.8/examples/BSE/CaO-core/Ca_lo.in0000644002504400250440000000357314626155521021314 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-9.6.8/examples/BSE/CaO-core/PaxHeaders/O.in0000644000000000000000000000012714626155521015747 xustar0029 mtime=1717099345.62299521 29 atime=1717099345.62299521 29 ctime=1717099345.62299521 elk-9.6.8/examples/BSE/CaO-core/O.in0000644002504400250440000000222014626155521020461 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-9.6.8/examples/BSE/CaO-core/PaxHeaders/elk.in0000644000000000000000000000013214626155521016320 xustar0030 mtime=1717099345.625995226 30 atime=1717099345.624995221 30 ctime=1717099345.625995226 elk-9.6.8/examples/BSE/CaO-core/elk.in0000644002504400250440000000506214626155521021045 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-9.6.8/examples/BSE/PaxHeaders/LiF0000644000000000000000000000013214626155521014222 xustar0030 mtime=1717099345.627995237 30 atime=1717099345.626995232 30 ctime=1717099345.627995237 elk-9.6.8/examples/BSE/LiF/0000755002504400250440000000000014626155521017021 5ustar00dewhurstdewhurst00000000000000elk-9.6.8/examples/BSE/LiF/PaxHeaders/elk.in0000644000000000000000000000013214626155521015402 xustar0030 mtime=1717099345.628995243 30 atime=1717099345.628995243 30 ctime=1717099345.628995243 elk-9.6.8/examples/BSE/LiF/elk.in0000644002504400250440000000217614626155521020132 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-9.6.8/examples/PaxHeaders/ELF0000644000000000000000000000013214626155521013545 xustar0030 mtime=1717099345.634995275 30 atime=1717099345.629995248 30 ctime=1717099345.634995275 elk-9.6.8/examples/ELF/0000755002504400250440000000000014626155521016344 5ustar00dewhurstdewhurst00000000000000elk-9.6.8/examples/ELF/PaxHeaders/BN0000644000000000000000000000013214626155521014044 xustar0030 mtime=1717099345.632995264 30 atime=1717099345.631995259 30 ctime=1717099345.632995264 elk-9.6.8/examples/ELF/BN/0000755002504400250440000000000014626155521016643 5ustar00dewhurstdewhurst00000000000000elk-9.6.8/examples/ELF/BN/PaxHeaders/elk.in0000644000000000000000000000013214626155521015224 xustar0030 mtime=1717099345.633995269 30 atime=1717099345.633995269 30 ctime=1717099345.633995269 elk-9.6.8/examples/ELF/BN/elk.in0000644002504400250440000000105514626155521017747 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-9.6.8/examples/ELF/PaxHeaders/Ru0000644000000000000000000000013214626155521014133 xustar0030 mtime=1717099345.638995296 30 atime=1717099345.634995275 30 ctime=1717099345.638995296 elk-9.6.8/examples/ELF/Ru/0000755002504400250440000000000014626155521016732 5ustar00dewhurstdewhurst00000000000000elk-9.6.8/examples/ELF/Ru/PaxHeaders/Ru.in0000644000000000000000000000013214626155521015126 xustar0030 mtime=1717099345.637995291 30 atime=1717099345.636995286 30 ctime=1717099345.637995291 elk-9.6.8/examples/ELF/Ru/Ru.in0000644002504400250440000000404114626155521017647 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-9.6.8/examples/ELF/Ru/PaxHeaders/elk.in0000644000000000000000000000013214626155521015313 xustar0030 mtime=1717099345.639995302 30 atime=1717099345.638995296 30 ctime=1717099345.639995302 elk-9.6.8/examples/ELF/Ru/elk.in0000644002504400250440000000146714626155521020045 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 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-9.6.8/examples/PaxHeaders/Hartree-Fock0000644000000000000000000000013214626155521015411 xustar0030 mtime=1717099345.645995334 30 atime=1717099345.640995307 30 ctime=1717099345.645995334 elk-9.6.8/examples/Hartree-Fock/0000755002504400250440000000000014626155521020210 5ustar00dewhurstdewhurst00000000000000elk-9.6.8/examples/Hartree-Fock/PaxHeaders/HEG0000644000000000000000000000013214626155521016014 xustar0030 mtime=1717099345.643995323 30 atime=1717099345.641995313 30 ctime=1717099345.643995323 elk-9.6.8/examples/Hartree-Fock/HEG/0000755002504400250440000000000014626155521020613 5ustar00dewhurstdewhurst00000000000000elk-9.6.8/examples/Hartree-Fock/HEG/PaxHeaders/elk.in0000644000000000000000000000013214626155521017174 xustar0030 mtime=1717099345.643995323 30 atime=1717099345.643995323 30 ctime=1717099345.643995323 elk-9.6.8/examples/Hartree-Fock/HEG/elk.in0000644002504400250440000000065214626155521021721 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-9.6.8/examples/Hartree-Fock/PaxHeaders/Si0000644000000000000000000000013214626155521015764 xustar0030 mtime=1717099345.646995339 30 atime=1717099345.645995334 30 ctime=1717099345.646995339 elk-9.6.8/examples/Hartree-Fock/Si/0000755002504400250440000000000014626155521020563 5ustar00dewhurstdewhurst00000000000000elk-9.6.8/examples/Hartree-Fock/Si/PaxHeaders/elk.in0000644000000000000000000000013214626155521017144 xustar0030 mtime=1717099345.647995345 30 atime=1717099345.647995345 30 ctime=1717099345.647995345 elk-9.6.8/examples/Hartree-Fock/Si/elk.in0000644002504400250440000000151214626155521021665 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-9.6.8/examples/PaxHeaders/TDDFT-magnetic-response0000644000000000000000000000013114626155521017424 xustar0030 mtime=1717099345.658995404 29 atime=1717099345.64899535 30 ctime=1717099345.658995404 elk-9.6.8/examples/TDDFT-magnetic-response/0000755002504400250440000000000014626155521022224 5ustar00dewhurstdewhurst00000000000000elk-9.6.8/examples/TDDFT-magnetic-response/PaxHeaders/Ni-magnetic-response0000644000000000000000000000013214626155521023414 xustar0030 mtime=1717099345.655995388 30 atime=1717099345.649995356 30 ctime=1717099345.655995388 elk-9.6.8/examples/TDDFT-magnetic-response/Ni-magnetic-response/0000755002504400250440000000000014626155521026213 5ustar00dewhurstdewhurst00000000000000elk-9.6.8/examples/TDDFT-magnetic-response/Ni-magnetic-response/PaxHeaders/CHI0_T.OUT0000644000000000000000000000013214626155521025030 xustar0030 mtime=1717099345.652995372 30 atime=1717099345.651995366 30 ctime=1717099345.652995372 elk-9.6.8/examples/TDDFT-magnetic-response/Ni-magnetic-response/CHI0_T.OUT0000644002504400250440000001053214626155521027553 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-9.6.8/examples/TDDFT-magnetic-response/Ni-magnetic-response/PaxHeaders/CHI_T.OUT0000644000000000000000000000013214626155521024750 xustar0030 mtime=1717099345.654995383 30 atime=1717099345.654995383 30 ctime=1717099345.654995383 elk-9.6.8/examples/TDDFT-magnetic-response/Ni-magnetic-response/CHI_T.OUT0000644002504400250440000001053214626155521027473 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-9.6.8/examples/TDDFT-magnetic-response/Ni-magnetic-response/PaxHeaders/elk.in0000644000000000000000000000013214626155521024574 xustar0030 mtime=1717099345.656995393 30 atime=1717099345.656995393 30 ctime=1717099345.656995393 elk-9.6.8/examples/TDDFT-magnetic-response/Ni-magnetic-response/elk.in0000644002504400250440000000161014626155521027314 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-9.6.8/examples/TDDFT-magnetic-response/PaxHeaders/Ni-magnon-spiral0000644000000000000000000000013014626155521022536 xustar0029 mtime=1717099345.65999541 30 atime=1717099345.658995404 29 ctime=1717099345.65999541 elk-9.6.8/examples/TDDFT-magnetic-response/Ni-magnon-spiral/0000755002504400250440000000000014626155521025337 5ustar00dewhurstdewhurst00000000000000elk-9.6.8/examples/TDDFT-magnetic-response/Ni-magnon-spiral/PaxHeaders/elk.in0000644000000000000000000000013114626155521023717 xustar0030 mtime=1717099345.660995415 29 atime=1717099345.65999541 30 ctime=1717099345.660995415 elk-9.6.8/examples/TDDFT-magnetic-response/Ni-magnon-spiral/elk.in0000644002504400250440000000334614626155521026450 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-9.6.8/examples/PaxHeaders/basic0000644000000000000000000000013114626155521014217 xustar0030 mtime=1717099345.714995706 29 atime=1717099345.66199542 30 ctime=1717099345.714995706 elk-9.6.8/examples/basic/0000755002504400250440000000000014626155521017017 5ustar00dewhurstdewhurst00000000000000elk-9.6.8/examples/basic/PaxHeaders/Au0000644000000000000000000000013214626155521014565 xustar0030 mtime=1717099345.664995437 30 atime=1717099345.663995431 30 ctime=1717099345.664995437 elk-9.6.8/examples/basic/Au/0000755002504400250440000000000014626155521017364 5ustar00dewhurstdewhurst00000000000000elk-9.6.8/examples/basic/Au/PaxHeaders/elk.in0000644000000000000000000000013214626155521015745 xustar0030 mtime=1717099345.665995442 30 atime=1717099345.665995442 30 ctime=1717099345.665995442 elk-9.6.8/examples/basic/Au/elk.in0000644002504400250440000000125214626155521020467 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-9.6.8/examples/basic/PaxHeaders/HfSiO40000644000000000000000000000013214626155521015254 xustar0030 mtime=1717099345.670995469 30 atime=1717099345.666995447 30 ctime=1717099345.670995469 elk-9.6.8/examples/basic/HfSiO4/0000755002504400250440000000000014626155521020053 5ustar00dewhurstdewhurst00000000000000elk-9.6.8/examples/basic/HfSiO4/PaxHeaders/elk.in0000644000000000000000000000013214626155521016434 xustar0030 mtime=1717099345.668995458 30 atime=1717099345.668995458 30 ctime=1717099345.668995458 elk-9.6.8/examples/basic/HfSiO4/elk.in0000644002504400250440000000454514626155521021166 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-9.6.8/examples/basic/HfSiO4/PaxHeaders/spacegroup.in0000644000000000000000000000013214626155521020031 xustar0030 mtime=1717099345.670995469 30 atime=1717099345.670995469 30 ctime=1717099345.670995469 elk-9.6.8/examples/basic/HfSiO4/spacegroup.in0000644002504400250440000000101414626155521022547 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-9.6.8/examples/basic/PaxHeaders/Si0000644000000000000000000000013114626155521014572 xustar0030 mtime=1717099345.673995485 29 atime=1717099345.67299548 30 ctime=1717099345.673995485 elk-9.6.8/examples/basic/Si/0000755002504400250440000000000014626155521017372 5ustar00dewhurstdewhurst00000000000000elk-9.6.8/examples/basic/Si/PaxHeaders/elk.in0000644000000000000000000000012714626155521015757 xustar0029 mtime=1717099345.67499549 29 atime=1717099345.67499549 29 ctime=1717099345.67499549 elk-9.6.8/examples/basic/Si/elk.in0000644002504400250440000000141714626155521020500 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-9.6.8/examples/basic/PaxHeaders/graphene0000644000000000000000000000013214626155521016011 xustar0030 mtime=1717099345.676995501 30 atime=1717099345.675995496 30 ctime=1717099345.676995501 elk-9.6.8/examples/basic/graphene/0000755002504400250440000000000014626155521020610 5ustar00dewhurstdewhurst00000000000000elk-9.6.8/examples/basic/graphene/PaxHeaders/elk.in0000644000000000000000000000013214626155521017171 xustar0030 mtime=1717099345.677995507 30 atime=1717099345.677995507 30 ctime=1717099345.677995507 elk-9.6.8/examples/basic/graphene/elk.in0000644002504400250440000000141514626155521021714 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-9.6.8/examples/basic/PaxHeaders/B120000644000000000000000000000013214626155521014544 xustar0030 mtime=1717099345.680995523 30 atime=1717099345.678995512 30 ctime=1717099345.680995523 elk-9.6.8/examples/basic/B12/0000755002504400250440000000000014626155521017343 5ustar00dewhurstdewhurst00000000000000elk-9.6.8/examples/basic/B12/PaxHeaders/elk.in0000644000000000000000000000013214626155521015724 xustar0030 mtime=1717099345.680995523 30 atime=1717099345.680995523 30 ctime=1717099345.680995523 elk-9.6.8/examples/basic/B12/elk.in0000644002504400250440000000137014626155521020447 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-9.6.8/examples/basic/PaxHeaders/Nb-autoswidth0000644000000000000000000000013214626155521016750 xustar0030 mtime=1717099345.683995539 30 atime=1717099345.681995528 30 ctime=1717099345.683995539 elk-9.6.8/examples/basic/Nb-autoswidth/0000755002504400250440000000000014626155521021547 5ustar00dewhurstdewhurst00000000000000elk-9.6.8/examples/basic/Nb-autoswidth/PaxHeaders/elk.in0000644000000000000000000000013214626155521020130 xustar0030 mtime=1717099345.684995544 30 atime=1717099345.683995539 30 ctime=1717099345.684995544 elk-9.6.8/examples/basic/Nb-autoswidth/elk.in0000644002504400250440000000100514626155521022646 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-9.6.8/examples/basic/PaxHeaders/TiC-eg-t2g0000644000000000000000000000013114626155521015761 xustar0030 mtime=1717099345.686995555 29 atime=1717099345.68599555 30 ctime=1717099345.686995555 elk-9.6.8/examples/basic/TiC-eg-t2g/0000755002504400250440000000000014626155521020561 5ustar00dewhurstdewhurst00000000000000elk-9.6.8/examples/basic/TiC-eg-t2g/PaxHeaders/elk.in0000644000000000000000000000012714626155521017146 xustar0029 mtime=1717099345.68799556 29 atime=1717099345.68799556 29 ctime=1717099345.68799556 elk-9.6.8/examples/basic/TiC-eg-t2g/elk.in0000644002504400250440000000213214626155521021662 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-9.6.8/examples/basic/PaxHeaders/Al0000644000000000000000000000013214626155521014554 xustar0030 mtime=1717099345.690995577 30 atime=1717099345.688995566 30 ctime=1717099345.690995577 elk-9.6.8/examples/basic/Al/0000755002504400250440000000000014626155521017353 5ustar00dewhurstdewhurst00000000000000elk-9.6.8/examples/basic/Al/PaxHeaders/elk.in0000644000000000000000000000013214626155521015734 xustar0030 mtime=1717099345.690995577 30 atime=1717099345.690995577 30 ctime=1717099345.690995577 elk-9.6.8/examples/basic/Al/elk.in0000644002504400250440000000127514626155521020463 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-9.6.8/examples/basic/PaxHeaders/Cu0000644000000000000000000000013214626155521014567 xustar0030 mtime=1717099345.693995593 30 atime=1717099345.692995587 30 ctime=1717099345.693995593 elk-9.6.8/examples/basic/Cu/0000755002504400250440000000000014626155521017366 5ustar00dewhurstdewhurst00000000000000elk-9.6.8/examples/basic/Cu/PaxHeaders/elk.in0000644000000000000000000000013214626155521015747 xustar0030 mtime=1717099345.694995598 30 atime=1717099345.694995598 30 ctime=1717099345.694995598 elk-9.6.8/examples/basic/Cu/elk.in0000644002504400250440000000144414626155521020474 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-9.6.8/examples/basic/PaxHeaders/Pb0000644000000000000000000000013214626155521014561 xustar0030 mtime=1717099345.696995609 30 atime=1717099345.695995604 30 ctime=1717099345.696995609 elk-9.6.8/examples/basic/Pb/0000755002504400250440000000000014626155521017360 5ustar00dewhurstdewhurst00000000000000elk-9.6.8/examples/basic/Pb/PaxHeaders/elk.in0000644000000000000000000000013214626155521015741 xustar0030 mtime=1717099345.697995614 30 atime=1717099345.697995614 30 ctime=1717099345.697995614 elk-9.6.8/examples/basic/Pb/elk.in0000644002504400250440000000123614626155521020465 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-9.6.8/examples/basic/PaxHeaders/YBCO0000644000000000000000000000012714626155521014760 xustar0029 mtime=1717099345.70099563 29 atime=1717099345.69899562 29 ctime=1717099345.70099563 elk-9.6.8/examples/basic/YBCO/0000755002504400250440000000000014626155521017553 5ustar00dewhurstdewhurst00000000000000elk-9.6.8/examples/basic/YBCO/PaxHeaders/elk.in0000644000000000000000000000012714626155521016140 xustar0029 mtime=1717099345.70099563 29 atime=1717099345.70099563 29 ctime=1717099345.70099563 elk-9.6.8/examples/basic/YBCO/elk.in0000644002504400250440000000147014626155521020660 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-9.6.8/examples/basic/PaxHeaders/AlAs-fatbands0000644000000000000000000000013214626155521016620 xustar0030 mtime=1717099345.705995657 30 atime=1717099345.701995636 30 ctime=1717099345.705995657 elk-9.6.8/examples/basic/AlAs-fatbands/0000755002504400250440000000000014626155521021417 5ustar00dewhurstdewhurst00000000000000elk-9.6.8/examples/basic/AlAs-fatbands/PaxHeaders/AlAs.par0000644000000000000000000000013214626155521020221 xustar0030 mtime=1717099345.703995647 30 atime=1717099345.703995647 30 ctime=1717099345.703995647 elk-9.6.8/examples/basic/AlAs-fatbands/AlAs.par0000644002504400250440000000551114626155521022745 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-9.6.8/examples/basic/AlAs-fatbands/PaxHeaders/elk.in0000644000000000000000000000013214626155521020000 xustar0030 mtime=1717099345.706995663 30 atime=1717099345.705995657 30 ctime=1717099345.706995663 elk-9.6.8/examples/basic/AlAs-fatbands/elk.in0000644002504400250440000000146514626155521022530 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-9.6.8/examples/basic/PaxHeaders/CuFeS20000644000000000000000000000013214626155521015247 xustar0030 mtime=1717099345.709995679 30 atime=1717099345.707995668 30 ctime=1717099345.709995679 elk-9.6.8/examples/basic/CuFeS2/0000755002504400250440000000000014626155521020046 5ustar00dewhurstdewhurst00000000000000elk-9.6.8/examples/basic/CuFeS2/PaxHeaders/elk.in0000644000000000000000000000013214626155521016427 xustar0030 mtime=1717099345.709995679 30 atime=1717099345.709995679 30 ctime=1717099345.709995679 elk-9.6.8/examples/basic/CuFeS2/elk.in0000644002504400250440000000324714626155521021157 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-9.6.8/examples/basic/PaxHeaders/Si-PBEsol0000644000000000000000000000013214626155521015715 xustar0030 mtime=1717099345.712995695 30 atime=1717099345.710995684 30 ctime=1717099345.712995695 elk-9.6.8/examples/basic/Si-PBEsol/0000755002504400250440000000000014626155521020514 5ustar00dewhurstdewhurst00000000000000elk-9.6.8/examples/basic/Si-PBEsol/PaxHeaders/elk.in0000644000000000000000000000013214626155521017075 xustar0030 mtime=1717099345.712995695 30 atime=1717099345.712995695 30 ctime=1717099345.712995695 elk-9.6.8/examples/basic/Si-PBEsol/elk.in0000644002504400250440000000136514626155521021624 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-9.6.8/examples/basic/PaxHeaders/diamond-rho3D0000644000000000000000000000013214626155521016610 xustar0030 mtime=1717099345.720995738 30 atime=1717099345.714995706 30 ctime=1717099345.720995738 elk-9.6.8/examples/basic/diamond-rho3D/0000755002504400250440000000000014626155521021407 5ustar00dewhurstdewhurst00000000000000elk-9.6.8/examples/basic/diamond-rho3D/PaxHeaders/elk.in0000644000000000000000000000013214626155521017770 xustar0030 mtime=1717099345.716995717 30 atime=1717099345.716995717 30 ctime=1717099345.716995717 elk-9.6.8/examples/basic/diamond-rho3D/elk.in0000644002504400250440000000112314626155521022507 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-9.6.8/examples/basic/diamond-rho3D/PaxHeaders/rho3d.general0000644000000000000000000000013214626155521021243 xustar0030 mtime=1717099345.718995727 30 atime=1717099345.718995727 30 ctime=1717099345.718995727 elk-9.6.8/examples/basic/diamond-rho3D/rho3d.general0000644002504400250440000000027414626155521023770 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-9.6.8/examples/basic/diamond-rho3D/PaxHeaders/rho3d.net0000644000000000000000000000013214626155521020414 xustar0030 mtime=1717099345.721995744 30 atime=1717099345.720995738 30 ctime=1717099345.721995744 elk-9.6.8/examples/basic/diamond-rho3D/rho3d.net0000644002504400250440000003450214626155521023142 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-9.6.8/examples/PaxHeaders/magnetism-source-free0000644000000000000000000000013014626155521017336 xustar0029 mtime=1717099345.72499576 30 atime=1717099345.723995754 29 ctime=1717099345.72499576 elk-9.6.8/examples/magnetism-source-free/0000755002504400250440000000000014626155521022137 5ustar00dewhurstdewhurst00000000000000elk-9.6.8/examples/magnetism-source-free/PaxHeaders/Ba1220000644000000000000000000000013114626155521020106 xustar0030 mtime=1717099345.732995803 29 atime=1717099345.72499576 30 ctime=1717099345.732995803 elk-9.6.8/examples/magnetism-source-free/Ba122/0000755002504400250440000000000014626155521022706 5ustar00dewhurstdewhurst00000000000000elk-9.6.8/examples/magnetism-source-free/Ba122/PaxHeaders/Ba122-Bxc-field-lines.png0000644000000000000000000000013214626155521024344 xustar0030 mtime=1717099345.730995792 30 atime=1717099345.726995771 30 ctime=1717099345.730995792 elk-9.6.8/examples/magnetism-source-free/Ba122/Ba122-Bxc-field-lines.png0000644002504400250440000124625314626155521027103 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-9.6.8/examples/magnetism-source-free/Ba122/PaxHeaders/elk.in0000644000000000000000000000013214626155521021267 xustar0030 mtime=1717099345.733995808 30 atime=1717099345.732995803 30 ctime=1717099345.733995808 elk-9.6.8/examples/magnetism-source-free/Ba122/elk.in0000644002504400250440000000474514626155521024023 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) sxcscf 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-9.6.8/examples/PaxHeaders/molecules0000644000000000000000000000013214626155521015127 xustar0030 mtime=1717099345.742995857 30 atime=1717099345.734995814 30 ctime=1717099345.742995857 elk-9.6.8/examples/molecules/0000755002504400250440000000000014626155521017726 5ustar00dewhurstdewhurst00000000000000elk-9.6.8/examples/molecules/PaxHeaders/C600000644000000000000000000000013014626155521015455 xustar0029 mtime=1717099345.73799583 30 atime=1717099345.735995819 29 ctime=1717099345.73799583 elk-9.6.8/examples/molecules/C60/0000755002504400250440000000000014626155521020256 5ustar00dewhurstdewhurst00000000000000elk-9.6.8/examples/molecules/C60/PaxHeaders/elk.in0000644000000000000000000000012714626155521016643 xustar0029 mtime=1717099345.73799583 29 atime=1717099345.73799583 29 ctime=1717099345.73799583 elk-9.6.8/examples/molecules/C60/elk.in0000644002504400250440000000550714626155521021370 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-9.6.8/examples/molecules/PaxHeaders/H2O-iterative0000644000000000000000000000013214626155521017511 xustar0030 mtime=1717099345.741995851 30 atime=1717099345.739995841 30 ctime=1717099345.741995851 elk-9.6.8/examples/molecules/H2O-iterative/0000755002504400250440000000000014626155521022310 5ustar00dewhurstdewhurst00000000000000elk-9.6.8/examples/molecules/H2O-iterative/PaxHeaders/elk.in0000644000000000000000000000013214626155521020671 xustar0030 mtime=1717099345.741995851 30 atime=1717099345.741995851 30 ctime=1717099345.741995851 elk-9.6.8/examples/molecules/H2O-iterative/elk.in0000644002504400250440000000143514626155521023416 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. ! use adaptive linear mixing mixtype 1 ! 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 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-9.6.8/examples/molecules/PaxHeaders/NaCl-monomer0000644000000000000000000000013214626155521017416 xustar0030 mtime=1717099345.744995868 30 atime=1717099345.742995857 30 ctime=1717099345.744995868 elk-9.6.8/examples/molecules/NaCl-monomer/0000755002504400250440000000000014626155521022215 5ustar00dewhurstdewhurst00000000000000elk-9.6.8/examples/molecules/NaCl-monomer/PaxHeaders/elk.in0000644000000000000000000000013214626155521020576 xustar0030 mtime=1717099345.745995873 30 atime=1717099345.744995868 30 ctime=1717099345.745995873 elk-9.6.8/examples/molecules/NaCl-monomer/elk.in0000644002504400250440000000164014626155521023321 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.005 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-9.6.8/examples/PaxHeaders/structure-factors0000644000000000000000000000013214626155521016636 xustar0030 mtime=1717099345.747995884 30 atime=1717099345.746995878 30 ctime=1717099345.747995884 elk-9.6.8/examples/structure-factors/0000755002504400250440000000000014626155521021435 5ustar00dewhurstdewhurst00000000000000elk-9.6.8/examples/structure-factors/PaxHeaders/MnO0000644000000000000000000000013214626155521017327 xustar0030 mtime=1717099345.749995894 30 atime=1717099345.747995884 30 ctime=1717099345.749995894 elk-9.6.8/examples/structure-factors/MnO/0000755002504400250440000000000014626155521022126 5ustar00dewhurstdewhurst00000000000000elk-9.6.8/examples/structure-factors/MnO/PaxHeaders/elk.in0000644000000000000000000000013214626155521020507 xustar0030 mtime=1717099345.749995894 30 atime=1717099345.749995894 30 ctime=1717099345.749995894 elk-9.6.8/examples/structure-factors/MnO/elk.in0000644002504400250440000000455014626155521023235 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-9.6.8/examples/PaxHeaders/README0000644000000000000000000000013214626155521014074 xustar0030 mtime=1717099345.752995911 30 atime=1717099345.751995905 30 ctime=1717099345.752995911 elk-9.6.8/examples/README0000644002504400250440000000037714626155521016625 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-9.6.8/examples/PaxHeaders/electric-field0000644000000000000000000000013214626155521016012 xustar0030 mtime=1717099345.754995921 30 atime=1717099345.753995916 30 ctime=1717099345.754995921 elk-9.6.8/examples/electric-field/0000755002504400250440000000000014626155521020611 5ustar00dewhurstdewhurst00000000000000elk-9.6.8/examples/electric-field/PaxHeaders/WSe2-bilayer0000644000000000000000000000013214626155521020217 xustar0030 mtime=1717099345.756995932 30 atime=1717099345.754995921 30 ctime=1717099345.756995932 elk-9.6.8/examples/electric-field/WSe2-bilayer/0000755002504400250440000000000014626155521023016 5ustar00dewhurstdewhurst00000000000000elk-9.6.8/examples/electric-field/WSe2-bilayer/PaxHeaders/elk.in0000644000000000000000000000013214626155521021377 xustar0030 mtime=1717099345.757995938 30 atime=1717099345.756995932 30 ctime=1717099345.757995938 elk-9.6.8/examples/electric-field/WSe2-bilayer/elk.in0000644002504400250440000000274714626155521024133 0ustar00dewhurstdewhurst00000000000000 ! Demonstration of gap closing in WeS2 bilayers by application of a strong ! electric field. See Dai, et al., J. App. Phys. 117, 084310 (2015). tasks 0 31 ! plot the density in 1D 41 ! plot the potentials in 1D ! Electric field across the bilayer. The corresponding potential crosses zero ! at the center of the unit cell. This field is sufficient to completely close ! the indirect gap. efieldc 0.0 0.0 0.04 ! distance from center of unit cell at which the electric field is cut off. dmaxefc 15.0 plot1d 2 1000 0.0 0.0 0.0 0.0 0.0 1.0 ! band structure plot !tasks ! 20 !plot1d ! 4 400 : nvp1d, npp1d ##number of high symmetric points ! 0.0000000000 0.0000000000 0.0000000000 ! 0.5000000000 0.0000000000 0.0000000000 ! 0.3333333333 0.3333333333 0.0000000000 ! 0.0000000000 0.0000000000 0.0000000000 gmaxvr 24.0 rgkmax 8.0 ! avoid writing direct access files to disk wrtdsk .false. ! enable spin-orbit coupling spinorb .true. nempty 10 ! use PBE xctype 20 ngridk 8 8 1 swidth 0.005 avec 0.5 -0.866025403784 0.0 0.5 0.866025403784 0.0 0.0 0.0 3.0 scale 6.20208114106 scale3 3.94881170018 sppath '../../../species/' atoms 2 'W.in' 2 -0.333333333333 0.333333333333 0.417 0.333333333333 -0.333333333333 0.583 'Se.in' 4 0.333333333333 -0.333333333333 0.3740 0.333333333333 -0.333333333333 0.4600 -0.333333333333 0.333333333333 0.5400 -0.333333333333 0.333333333333 0.6260 elk-9.6.8/examples/PaxHeaders/Bogoliubov0000644000000000000000000000013014626155521015244 xustar0029 mtime=1717099345.76399597 30 atime=1717099345.758995943 29 ctime=1717099345.76399597 elk-9.6.8/examples/Bogoliubov/0000755002504400250440000000000014626155521020045 5ustar00dewhurstdewhurst00000000000000elk-9.6.8/examples/Bogoliubov/PaxHeaders/diamond0000644000000000000000000000013214626155521016661 xustar0030 mtime=1717099345.761995959 30 atime=1717099345.759995948 30 ctime=1717099345.761995959 elk-9.6.8/examples/Bogoliubov/diamond/0000755002504400250440000000000014626155521021460 5ustar00dewhurstdewhurst00000000000000elk-9.6.8/examples/Bogoliubov/diamond/PaxHeaders/elk.in0000644000000000000000000000013214626155521020041 xustar0030 mtime=1717099345.761995959 30 atime=1717099345.761995959 30 ctime=1717099345.761995959 elk-9.6.8/examples/Bogoliubov/diamond/elk.in0000644002504400250440000000275514626155521022574 0ustar00dewhurstdewhurst00000000000000 ! Renormalisation of the band gap of diamond using coupled electron and phonon ! Bogoliubov equations. See C.-Yu Wang, et al., Phys. Rev. B 105, 174509 (2022). ! This is a very expensive calculation and requires hundreds of cores to run in ! a reasonable time. ! First generate the phonon dynamical matrices tasks 0 : ground-state 205 : compute the dynamical matrices 220 : output phonon dispersion ! Then uncomment the following lines to solve the Bogoliubov equations !tasks ! 1 : ground-state ! 10 : DOS ! 241 : generate electron-phonon coupling matrix elements ! 270 : solve the electron-phonon Bogoliubov equations self-consistently ! 280 : compute the renormalised DOS ! 285 : compute the FACE and BACE (see article) pwxpsn 2 wplot 10000 300 8 -0.8 0.8 tauefm 0.1 tephde .false. ephscf 8.0 0.02 rgkmax 8.0 lmaxi 2 nrmtscf 2.0 nempty 16 broydpm 0.04 0.01 mixsdb 8 maxscl 500 ngridq 4 4 4 ngridk 16 16 16 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 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-9.6.8/examples/Bogoliubov/PaxHeaders/MgB20000644000000000000000000000013114626155521015774 xustar0030 mtime=1717099345.764995975 29 atime=1717099345.76399597 30 ctime=1717099345.764995975 elk-9.6.8/examples/Bogoliubov/MgB2/0000755002504400250440000000000014626155521020574 5ustar00dewhurstdewhurst00000000000000elk-9.6.8/examples/Bogoliubov/MgB2/PaxHeaders/elk.in0000644000000000000000000000013214626155521017155 xustar0030 mtime=1717099345.765995981 30 atime=1717099345.765995981 30 ctime=1717099345.765995981 elk-9.6.8/examples/Bogoliubov/MgB2/elk.in0000644002504400250440000000356014626155521021703 0ustar00dewhurstdewhurst00000000000000 ! Calculation of the superconducting gap of MgB2 with the coupled ! electron-phonon Bogoliubov equations. See See C.-Yu Wang, et al., ! Phys. Rev. B 105, 174509 (2022). ! Note that this example is computationally very expensive and requires ! hundreds of cores to run in a reasonable time. ! First generate the phonon dynamical matrices tasks 0 : ground state run 205 : compute the dynamical matrices 220 : output phonon dispersion ngridk 24 24 12 ! Then uncomment the following lines to solve the Bogoliubov equations !tasks ! 1 : ground-state ! 10 : DOS ! 241 : generate electron-phonon coupling matrix elements ! 270 : solve the electron-phonon Bogoliubov equations self-consistently ! 280 : compute the renormalised DOS ! 285 : compute the FACE and BACE (see article) ! !ngridk ! 36 36 24 ! !vkloff ! 0.25 0.5 0.625 pwxpsn 2 ecutb 0.001 bdiag .false. ediag .false. tephde .false. ramdisk .true. mixtype 3 broydpm 0.04 0.01 tauefm 0.01 ephscf 8.0 0.02 wplot 100000 1 1 -0.05 0.05 maxscl 8000 anomalous .true. nxlo 1 lmaxi 2 nempty 4 ngridq 12 12 6 ! increase the number of muffin-tin points (for accurate gradients) nrmtscf 2 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 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 elk-9.6.8/examples/PaxHeaders/Compton-scattering0000644000000000000000000000013214626155521016717 xustar0030 mtime=1717099345.782996072 30 atime=1717099345.766995986 30 ctime=1717099345.782996072 elk-9.6.8/examples/Compton-scattering/0000755002504400250440000000000014626155521021516 5ustar00dewhurstdewhurst00000000000000elk-9.6.8/examples/Compton-scattering/PaxHeaders/Li0000644000000000000000000000013214626155521017263 xustar0030 mtime=1717099345.773996024 30 atime=1717099345.767995991 30 ctime=1717099345.773996024 elk-9.6.8/examples/Compton-scattering/Li/0000755002504400250440000000000014626155521022062 5ustar00dewhurstdewhurst00000000000000elk-9.6.8/examples/Compton-scattering/Li/PaxHeaders/elk.in0000644000000000000000000000013214626155521020443 xustar0030 mtime=1717099345.770996008 30 atime=1717099345.769996002 30 ctime=1717099345.770996008 elk-9.6.8/examples/Compton-scattering/Li/elk.in0000644002504400250440000000163214626155521023167 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-9.6.8/examples/Compton-scattering/Li/PaxHeaders/emd2d.general0000644000000000000000000000013214626155521021672 xustar0030 mtime=1717099345.772996018 30 atime=1717099345.772996018 30 ctime=1717099345.772996018 elk-9.6.8/examples/Compton-scattering/Li/emd2d.general0000644002504400250440000000027114626155521024414 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-9.6.8/examples/Compton-scattering/Li/PaxHeaders/emd2d.net0000644000000000000000000000013214626155521021043 xustar0030 mtime=1717099345.774996029 30 atime=1717099345.774996029 30 ctime=1717099345.774996029 elk-9.6.8/examples/Compton-scattering/Li/emd2d.net0000644002504400250440000003741414626155521023576 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-9.6.8/examples/Compton-scattering/PaxHeaders/Ni0000644000000000000000000000013114626155521017264 xustar0030 mtime=1717099345.780996062 29 atime=1717099345.77699604 30 ctime=1717099345.780996062 elk-9.6.8/examples/Compton-scattering/Ni/0000755002504400250440000000000014626155521022064 5ustar00dewhurstdewhurst00000000000000elk-9.6.8/examples/Compton-scattering/Ni/PaxHeaders/EMD1D.OUT0000644000000000000000000000013214626155521020525 xustar0030 mtime=1717099345.778996051 30 atime=1717099345.778996051 30 ctime=1717099345.778996051 elk-9.6.8/examples/Compton-scattering/Ni/EMD1D.OUT0000644002504400250440000001265614626155521023261 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-9.6.8/examples/Compton-scattering/Ni/PaxHeaders/elk.in0000644000000000000000000000013214626155521020445 xustar0030 mtime=1717099345.781996067 30 atime=1717099345.780996062 30 ctime=1717099345.781996067 elk-9.6.8/examples/Compton-scattering/Ni/elk.in0000644002504400250440000000170214626155521023167 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-9.6.8/examples/Compton-scattering/PaxHeaders/Si-GW0000644000000000000000000000013214626155521017605 xustar0030 mtime=1717099345.784996083 30 atime=1717099345.782996072 30 ctime=1717099345.784996083 elk-9.6.8/examples/Compton-scattering/Si-GW/0000755002504400250440000000000014626155521022404 5ustar00dewhurstdewhurst00000000000000elk-9.6.8/examples/Compton-scattering/Si-GW/PaxHeaders/elk.in0000644000000000000000000000013214626155521020765 xustar0030 mtime=1717099345.784996083 30 atime=1717099345.784996083 30 ctime=1717099345.784996083 elk-9.6.8/examples/Compton-scattering/Si-GW/elk.in0000644002504400250440000000244614626155521023515 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-9.6.8/examples/PaxHeaders/ELNES0000644000000000000000000000013214626155521014005 xustar0030 mtime=1717099345.806996202 30 atime=1717099345.786996094 30 ctime=1717099345.806996202 elk-9.6.8/examples/ELNES/0000755002504400250440000000000014626155521016604 5ustar00dewhurstdewhurst00000000000000elk-9.6.8/examples/ELNES/PaxHeaders/Pu0000644000000000000000000000013214626155521014371 xustar0030 mtime=1717099345.791996121 30 atime=1717099345.787996099 30 ctime=1717099345.791996121 elk-9.6.8/examples/ELNES/Pu/0000755002504400250440000000000014626155521017170 5ustar00dewhurstdewhurst00000000000000elk-9.6.8/examples/ELNES/Pu/PaxHeaders/Pu+.in0000644000000000000000000000012714626155521015441 xustar0029 mtime=1717099345.78999611 29 atime=1717099345.78999611 29 ctime=1717099345.78999611 elk-9.6.8/examples/ELNES/Pu/Pu+.in0000644002504400250440000000472314626155521020165 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-9.6.8/examples/ELNES/Pu/PaxHeaders/elk.in0000644000000000000000000000013214626155521015551 xustar0030 mtime=1717099345.791996121 30 atime=1717099345.791996121 30 ctime=1717099345.791996121 elk-9.6.8/examples/ELNES/Pu/elk.in0000644002504400250440000000140114626155521020267 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-9.6.8/examples/ELNES/PaxHeaders/BN0000644000000000000000000000013214626155521014304 xustar0030 mtime=1717099345.803996185 30 atime=1717099345.793996132 30 ctime=1717099345.803996185 elk-9.6.8/examples/ELNES/BN/0000755002504400250440000000000014626155521017103 5ustar00dewhurstdewhurst00000000000000elk-9.6.8/examples/ELNES/BN/PaxHeaders/B.in0000644000000000000000000000013214626155521015072 xustar0030 mtime=1717099345.795996142 30 atime=1717099345.795996142 30 ctime=1717099345.795996142 elk-9.6.8/examples/ELNES/BN/B.in0000644002504400250440000000172214626155521017616 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-9.6.8/examples/ELNES/BN/PaxHeaders/ELNES.OUT0000644000000000000000000000013214626155521015620 xustar0030 mtime=1717099345.797996153 30 atime=1717099345.797996153 30 ctime=1717099345.797996153 elk-9.6.8/examples/ELNES/BN/ELNES.OUT0000644002504400250440000002553414626155521020353 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-9.6.8/examples/ELNES/BN/PaxHeaders/N+.in0000644000000000000000000000013214626155521015161 xustar0030 mtime=1717099345.800996169 30 atime=1717099345.799996164 30 ctime=1717099345.800996169 elk-9.6.8/examples/ELNES/BN/N+.in0000644002504400250440000000253414626155521017707 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-9.6.8/examples/ELNES/BN/PaxHeaders/N.in0000644000000000000000000000012714626155521015112 xustar0029 mtime=1717099345.80299618 29 atime=1717099345.80299618 29 ctime=1717099345.80299618 elk-9.6.8/examples/ELNES/BN/N.in0000644002504400250440000000222014626155521017624 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-9.6.8/examples/ELNES/BN/PaxHeaders/elk.in0000644000000000000000000000013214626155521015464 xustar0030 mtime=1717099345.804996191 30 atime=1717099345.804996191 30 ctime=1717099345.804996191 elk-9.6.8/examples/ELNES/BN/elk.in0000644002504400250440000000356214626155521020214 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-9.6.8/examples/ELNES/PaxHeaders/Cu0000644000000000000000000000013214626155521014354 xustar0030 mtime=1717099345.810996223 30 atime=1717099345.806996202 30 ctime=1717099345.810996223 elk-9.6.8/examples/ELNES/Cu/0000755002504400250440000000000014626155521017153 5ustar00dewhurstdewhurst00000000000000elk-9.6.8/examples/ELNES/Cu/PaxHeaders/Cu+.in0000644000000000000000000000013214626155521015403 xustar0030 mtime=1717099345.808996212 30 atime=1717099345.808996212 30 ctime=1717099345.808996212 elk-9.6.8/examples/ELNES/Cu/Cu+.in0000644002504400250440000000373314626155521020133 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-9.6.8/examples/ELNES/Cu/PaxHeaders/elk.in0000644000000000000000000000013214626155521015534 xustar0030 mtime=1717099345.810996223 30 atime=1717099345.810996223 30 ctime=1717099345.810996223 elk-9.6.8/examples/ELNES/Cu/elk.in0000644002504400250440000000225214626155521020257 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-9.6.8/examples/PaxHeaders/Mossbauer0000644000000000000000000000013214626155521015077 xustar0030 mtime=1717099345.835996358 30 atime=1717099345.812996234 30 ctime=1717099345.835996358 elk-9.6.8/examples/Mossbauer/0000755002504400250440000000000014626155521017676 5ustar00dewhurstdewhurst00000000000000elk-9.6.8/examples/Mossbauer/PaxHeaders/Mg2SiO40000644000000000000000000000013214626155521016223 xustar0030 mtime=1717099345.820996277 30 atime=1717099345.813996239 30 ctime=1717099345.820996277 elk-9.6.8/examples/Mossbauer/Mg2SiO4/0000755002504400250440000000000014626155521021022 5ustar00dewhurstdewhurst00000000000000elk-9.6.8/examples/Mossbauer/Mg2SiO4/PaxHeaders/EFG.OUT0000644000000000000000000000013014626155521017270 xustar0029 mtime=1717099345.81599625 30 atime=1717099345.814996245 29 ctime=1717099345.81599625 elk-9.6.8/examples/Mossbauer/Mg2SiO4/EFG.OUT0000644002504400250440000002127714626155521022025 0ustar00dewhurstdewhurst00000000000000 (electric field gradient tensor is in Cartesian coordinates) Species : 1 (Mg), atom : 1 EFG tensor : 0.4540892586E-01 -0.1763387239E-01 0.6360381772E-01 -0.1763387239E-01 -0.6707466662E-01 0.5324981887E-01 0.6360381772E-01 0.5324981887E-01 0.2166574076E-01 trace : 0.2255140519E-15 eigenvalues : -0.1057174610 0.4640486884E-02 0.1010769741 Species : 1 (Mg), atom : 2 EFG tensor : 0.4540892586E-01 -0.1763387239E-01 -0.6360381772E-01 -0.1763387239E-01 -0.6707466662E-01 -0.5324981887E-01 -0.6360381772E-01 -0.5324981887E-01 0.2166574076E-01 trace : -0.8673617380E-16 eigenvalues : -0.1057174610 0.4640486884E-02 0.1010769741 Species : 1 (Mg), atom : 3 EFG tensor : 0.4540892586E-01 0.1763387239E-01 -0.6360381772E-01 0.1763387239E-01 -0.6707466662E-01 0.5324981887E-01 -0.6360381772E-01 0.5324981887E-01 0.2166574076E-01 trace : -0.2324529458E-15 eigenvalues : -0.1057174610 0.4640486884E-02 0.1010769741 Species : 1 (Mg), atom : 4 EFG tensor : 0.4540892586E-01 0.1763387239E-01 0.6360381772E-01 0.1763387239E-01 -0.6707466662E-01 -0.5324981887E-01 0.6360381772E-01 -0.5324981887E-01 0.2166574076E-01 trace : -0.5204170428E-16 eigenvalues : -0.1057174610 0.4640486884E-02 0.1010769741 Species : 1 (Mg), atom : 5 EFG tensor : -0.8040555871E-01 -0.3650637845E-01 -0.3047653057E-16 -0.3650637845E-01 0.1498274433E-01 -0.1054253974E-15 -0.3047653057E-16 -0.1054253974E-15 0.6542281438E-01 trace : -0.7216449660E-15 eigenvalues : -0.9277343976E-01 0.2735062538E-01 0.6542281438E-01 Species : 1 (Mg), atom : 6 EFG tensor : -0.8040555871E-01 -0.3650637845E-01 -0.8533708916E-16 -0.3650637845E-01 0.1498274433E-01 -0.1268311785E-15 -0.8533708916E-16 -0.1268311785E-15 0.6542281438E-01 trace : 0.2775557562E-16 eigenvalues : -0.9277343976E-01 0.2735062538E-01 0.6542281438E-01 Species : 1 (Mg), atom : 7 EFG tensor : -0.8040555871E-01 0.3650637845E-01 0.6083835430E-16 0.3650637845E-01 0.1498274433E-01 0.8868811951E-16 0.6083835430E-16 0.8868811951E-16 0.6542281438E-01 trace : 0.4163336342E-16 eigenvalues : -0.9277343976E-01 0.2735062538E-01 0.6542281438E-01 Species : 1 (Mg), atom : 8 EFG tensor : -0.8040555871E-01 0.3650637845E-01 -0.2566982641E-16 0.3650637845E-01 0.1498274433E-01 0.1392643800E-15 -0.2566982641E-16 0.1392643800E-15 0.6542281438E-01 trace : 0.9714451465E-16 eigenvalues : -0.9277343976E-01 0.2735062538E-01 0.6542281438E-01 Species : 2 (Si), atom : 1 EFG tensor : 0.1998888880 0.3247854545E-01 0.9705954098E-16 0.3247854545E-01 -0.1762801640 -0.3077944466E-15 0.9705954098E-16 -0.3077944466E-15 -0.2360872399E-01 trace : -0.4787836794E-15 eigenvalues : -0.1790637727 -0.2360872399E-01 0.2026724967 Species : 2 (Si), atom : 2 EFG tensor : 0.1998888880 0.3247854545E-01 0.9050580257E-16 0.3247854545E-01 -0.1762801640 -0.3344693075E-15 0.9050580257E-16 -0.3344693075E-15 -0.2360872399E-01 trace : 0.4336808690E-15 eigenvalues : -0.1790637727 -0.2360872399E-01 0.2026724967 Species : 2 (Si), atom : 3 EFG tensor : 0.1998888880 -0.3247854545E-01 0.1056039611E-15 -0.3247854545E-01 -0.1762801640 0.8244420802E-16 0.1056039611E-15 0.8244420802E-16 -0.2360872399E-01 trace : 0.1151856388E-14 eigenvalues : -0.1790637727 -0.2360872399E-01 0.2026724967 Species : 2 (Si), atom : 4 EFG tensor : 0.1998888880 -0.3247854545E-01 0.1427804355E-16 -0.3247854545E-01 -0.1762801640 0.1160800898E-15 0.1427804355E-16 0.1160800898E-15 -0.2360872399E-01 trace : 0.2775557562E-16 eigenvalues : -0.1790637727 -0.2360872399E-01 0.2026724967 Species : 3 (O), atom : 1 EFG tensor : -0.4883142850 -0.4644265160E-01 -0.2893374241E-15 -0.4644265160E-01 0.1719771655 0.2307362823E-15 -0.2893374241E-15 0.2307362823E-15 0.3163371195 trace : -0.9436895709E-15 eigenvalues : -0.4915649001 0.1752277806 0.3163371195 Species : 3 (O), atom : 2 EFG tensor : -0.4883142850 -0.4644265160E-01 -0.8665332380E-16 -0.4644265160E-01 0.1719771655 0.1921692501E-15 -0.8665332380E-16 0.1921692501E-15 0.3163371195 trace : 0.7216449660E-15 eigenvalues : -0.4915649001 0.1752277806 0.3163371195 Species : 3 (O), atom : 3 EFG tensor : -0.4883142850 0.4644265160E-01 -0.1075299185E-15 0.4644265160E-01 0.1719771655 -0.4737739850E-15 -0.1075299185E-15 -0.4737739850E-15 0.3163371195 trace : 0.3330669074E-14 eigenvalues : -0.4915649001 0.1752277806 0.3163371195 Species : 3 (O), atom : 4 EFG tensor : -0.4883142850 0.4644265160E-01 -0.1908814821E-15 0.4644265160E-01 0.1719771655 -0.3512425491E-15 -0.1908814821E-15 -0.3512425491E-15 0.3163371195 trace : -0.2164934898E-14 eigenvalues : -0.4915649001 0.1752277806 0.3163371195 Species : 3 (O), atom : 5 EFG tensor : -0.5817198967E-01 0.2576542145 0.1269063876E-15 0.2576542145 -0.2568887445 -0.2865787890E-16 0.1269063876E-15 -0.2865787890E-16 0.3150607341 trace : 0.1165734176E-14 eigenvalues : -0.4336784820 0.1186177479 0.3150607341 Species : 3 (O), atom : 6 EFG tensor : -0.5817198967E-01 0.2576542145 0.1229734413E-15 0.2576542145 -0.2568887445 0.1684989048E-15 0.1229734413E-15 0.1684989048E-15 0.3150607341 trace : 0.5551115123E-16 eigenvalues : -0.4336784820 0.1186177479 0.3150607341 Species : 3 (O), atom : 7 EFG tensor : -0.5817198967E-01 -0.2576542145 -0.4353297598E-15 -0.2576542145 -0.2568887445 -0.8050984716E-15 -0.4353297598E-15 -0.8050984716E-15 0.3150607341 trace : -0.5551115123E-16 eigenvalues : -0.4336784820 0.1186177479 0.3150607341 Species : 3 (O), atom : 8 EFG tensor : -0.5817198967E-01 -0.2576542145 -0.3397294856E-15 -0.2576542145 -0.2568887445 -0.6887664005E-15 -0.3397294856E-15 -0.6887664005E-15 0.3150607341 trace : -0.1276756478E-14 eigenvalues : -0.4336784820 0.1186177479 0.3150607341 Species : 3 (O), atom : 9 EFG tensor : 0.3617984671E-01 -0.1046542712 -0.2284590635 -0.1046542712 0.1873139119 -0.1586476054 -0.2284590635 -0.1586476054 -0.2234937586 trace : 0.1165734176E-14 eigenvalues : -0.4161232705 0.1678290337 0.2482942368 Species : 3 (O), atom : 10 EFG tensor : 0.3617984671E-01 -0.1046542712 -0.2284590635 -0.1046542712 0.1873139119 -0.1586476054 -0.2284590635 -0.1586476054 -0.2234937586 trace : 0.3330669074E-15 eigenvalues : -0.4161232705 0.1678290337 0.2482942368 Species : 3 (O), atom : 11 EFG tensor : 0.3617984671E-01 -0.1046542712 0.2284590635 -0.1046542712 0.1873139119 0.1586476054 0.2284590635 0.1586476054 -0.2234937586 trace : 0.8049116929E-15 eigenvalues : -0.4161232705 0.1678290337 0.2482942368 Species : 3 (O), atom : 12 EFG tensor : 0.3617984671E-01 -0.1046542712 0.2284590635 -0.1046542712 0.1873139119 0.1586476054 0.2284590635 0.1586476054 -0.2234937586 trace : -0.4163336342E-15 eigenvalues : -0.4161232705 0.1678290337 0.2482942368 Species : 3 (O), atom : 13 EFG tensor : 0.3617984671E-01 0.1046542712 0.2284590635 0.1046542712 0.1873139119 -0.1586476054 0.2284590635 -0.1586476054 -0.2234937586 trace : -0.5273559367E-15 eigenvalues : -0.4161232705 0.1678290337 0.2482942368 Species : 3 (O), atom : 14 EFG tensor : 0.3617984671E-01 0.1046542712 0.2284590635 0.1046542712 0.1873139119 -0.1586476054 0.2284590635 -0.1586476054 -0.2234937586 trace : 0.9714451465E-15 eigenvalues : -0.4161232705 0.1678290337 0.2482942368 Species : 3 (O), atom : 15 EFG tensor : 0.3617984671E-01 0.1046542712 -0.2284590635 0.1046542712 0.1873139119 0.1586476054 -0.2284590635 0.1586476054 -0.2234937586 trace : 0.000000000 eigenvalues : -0.4161232705 0.1678290337 0.2482942368 Species : 3 (O), atom : 16 EFG tensor : 0.3617984671E-01 0.1046542712 -0.2284590635 0.1046542712 0.1873139119 0.1586476054 -0.2284590635 0.1586476054 -0.2234937586 trace : 0.1665334537E-15 eigenvalues : -0.4161232705 0.1678290337 0.2482942368 elk-9.6.8/examples/Mossbauer/Mg2SiO4/PaxHeaders/elk.in0000644000000000000000000000013214626155521017403 xustar0030 mtime=1717099345.817996261 30 atime=1717099345.817996261 30 ctime=1717099345.817996261 elk-9.6.8/examples/Mossbauer/Mg2SiO4/elk.in0000644002504400250440000000760214626155521022132 0ustar00dewhurstdewhurst00000000000000 ! Electric field gradient of Mg2SiO4. ! See: B. Winkler, P. Blaha and K. Schwarz, Am. Mineralog. 81, 545 (1996). tasks 0 115 lmaxi 2 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-9.6.8/examples/Mossbauer/Mg2SiO4/PaxHeaders/spacegroup.in0000644000000000000000000000013214626155521021000 xustar0030 mtime=1717099345.820996277 30 atime=1717099345.820996277 30 ctime=1717099345.820996277 elk-9.6.8/examples/Mossbauer/Mg2SiO4/spacegroup.in0000644002504400250440000000113314626155521023520 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-9.6.8/examples/Mossbauer/PaxHeaders/Co-hcp0000644000000000000000000000013214626155521016210 xustar0030 mtime=1717099345.824996299 30 atime=1717099345.822996288 30 ctime=1717099345.824996299 elk-9.6.8/examples/Mossbauer/Co-hcp/0000755002504400250440000000000014626155521021007 5ustar00dewhurstdewhurst00000000000000elk-9.6.8/examples/Mossbauer/Co-hcp/PaxHeaders/elk.in0000644000000000000000000000013214626155521017370 xustar0030 mtime=1717099345.824996299 30 atime=1717099345.824996299 30 ctime=1717099345.824996299 elk-9.6.8/examples/Mossbauer/Co-hcp/elk.in0000644002504400250440000000406214626155521022114 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 tjr .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-9.6.8/examples/Mossbauer/PaxHeaders/Fe0000644000000000000000000000013214626155521015431 xustar0030 mtime=1717099345.830996331 30 atime=1717099345.826996309 30 ctime=1717099345.830996331 elk-9.6.8/examples/Mossbauer/Fe/0000755002504400250440000000000014626155521020230 5ustar00dewhurstdewhurst00000000000000elk-9.6.8/examples/Mossbauer/Fe/PaxHeaders/elk.in0000644000000000000000000000012714626155521016615 xustar0029 mtime=1717099345.82899632 29 atime=1717099345.82899632 29 ctime=1717099345.82899632 elk-9.6.8/examples/Mossbauer/Fe/elk.in0000644002504400250440000000425214626155521021336 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 tjr .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-9.6.8/examples/Mossbauer/Fe/PaxHeaders/Fe.in0000644000000000000000000000013214626155521016370 xustar0030 mtime=1717099345.831996336 30 atime=1717099345.830996331 30 ctime=1717099345.831996336 elk-9.6.8/examples/Mossbauer/Fe/Fe.in0000644002504400250440000000311414626155521021111 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-9.6.8/examples/Mossbauer/PaxHeaders/Co-fcc0000644000000000000000000000013214626155521016171 xustar0030 mtime=1717099345.833996347 30 atime=1717099345.832996342 30 ctime=1717099345.833996347 elk-9.6.8/examples/Mossbauer/Co-fcc/0000755002504400250440000000000014626155521020770 5ustar00dewhurstdewhurst00000000000000elk-9.6.8/examples/Mossbauer/Co-fcc/PaxHeaders/elk.in0000644000000000000000000000013214626155521017351 xustar0030 mtime=1717099345.834996352 30 atime=1717099345.833996347 30 ctime=1717099345.834996352 elk-9.6.8/examples/Mossbauer/Co-fcc/elk.in0000644002504400250440000000376514626155521022106 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 ! enable calculation of the dipole magnetic field tbdip .true. ! enable calculation of the current density (i.e. orbital) contribution to the ! dipole field tjr .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-9.6.8/examples/Mossbauer/PaxHeaders/NiF20000644000000000000000000000013214626155521015635 xustar0030 mtime=1717099345.839996379 30 atime=1717099345.835996358 30 ctime=1717099345.839996379 elk-9.6.8/examples/Mossbauer/NiF2/0000755002504400250440000000000014626155521020434 5ustar00dewhurstdewhurst00000000000000elk-9.6.8/examples/Mossbauer/NiF2/PaxHeaders/MOSSBAUER.OUT0000644000000000000000000000013214626155521017643 xustar0030 mtime=1717099345.837996369 30 atime=1717099345.837996369 30 ctime=1717099345.837996369 elk-9.6.8/examples/Mossbauer/NiF2/MOSSBAUER.OUT0000644002504400250440000001013714626155521022367 0ustar00dewhurstdewhurst00000000000000 Species : 1 (Ni), atom : 1 approximate nuclear radius : 0.7325707712E-04 number of mesh points to nuclear radius : 170 density at nuclear center : 27065.61626 density at nuclear surface : 19469.68536 average contact charge density : 21799.30518 contact magnetic moment (mu_B) : 0.3556682277 -0.3250408784E-02 -0.5961585217E-04 contact field : 0.7942691198E-04 -0.7258729125E-06 -0.1331325846E-07 tesla : 18.66943519 -0.1706177033 -0.3129304790E-02 spin and orbital dipole field : -0.6038677809E-05 0.1166101164E-05 0.6342070908E-08 tesla : -1.419401827 0.2740941271 0.1490714908E-02 Species : 1 (Ni), atom : 2 approximate nuclear radius : 0.7325707712E-04 number of mesh points to nuclear radius : 170 density at nuclear center : 27065.62041 density at nuclear surface : 19469.68809 average contact charge density : 21799.30825 contact magnetic moment (mu_B) : 0.3560239771 -0.3179352632E-02 0.3878445782E-04 contact field : 0.7950635701E-04 -0.7100048359E-06 0.8661245165E-08 tesla : 18.68810889 -0.1668878840 0.2035840892E-02 spin and orbital dipole field : -0.6143126486E-05 -0.5623083484E-06 -0.2821446664E-06 tesla : -1.443952673 -0.1321715651 -0.6631859950E-01 Species : 2 (F), atom : 1 approximate nuclear radius : 0.5278478738E-04 number of mesh points to nuclear radius : 89 density at nuclear center : 469.6748179 density at nuclear surface : 458.0181065 average contact charge density : 518.3705591 contact magnetic moment (mu_B) : -0.2076757064 0.1757535181E-02 -0.5037678888E-04 contact field : -0.4637760353E-04 0.3924882270E-06 -0.1125001466E-07 tesla : -10.90113718 0.9225504727E-01 -0.2644335709E-02 spin and orbital dipole field : -0.3840346331E-04 -0.1592687822E-04 -0.2577673716E-07 tesla : -9.026801516 -3.743640704 -0.6058867353E-02 Species : 2 (F), atom : 2 approximate nuclear radius : 0.5278478738E-04 number of mesh points to nuclear radius : 89 density at nuclear center : 469.6746466 density at nuclear surface : 458.0179388 average contact charge density : 518.3703693 contact magnetic moment (mu_B) : -0.2078531243 0.1740868591E-02 -0.1670018648E-04 contact field : -0.4641722404E-04 0.3887662872E-06 -0.3729442605E-08 tesla : -10.91045005 0.9138019878E-01 -0.8766120359E-03 spin and orbital dipole field : -0.3847659363E-04 0.1653003236E-04 -0.5230842188E-08 tesla : -9.043990926 3.885413145 -0.1229518646E-02 Species : 2 (F), atom : 3 approximate nuclear radius : 0.5278478738E-04 number of mesh points to nuclear radius : 89 density at nuclear center : 469.6748179 density at nuclear surface : 458.0181065 average contact charge density : 518.3705591 contact magnetic moment (mu_B) : -0.2076757064 0.1757535181E-02 -0.5037678888E-04 contact field : -0.4637760353E-04 0.3924882270E-06 -0.1125001466E-07 tesla : -10.90113718 0.9225504727E-01 -0.2644335709E-02 spin and orbital dipole field : -0.3840346331E-04 -0.1592687822E-04 -0.2577673716E-07 tesla : -9.026801516 -3.743640704 -0.6058867353E-02 Species : 2 (F), atom : 4 approximate nuclear radius : 0.5278478738E-04 number of mesh points to nuclear radius : 89 density at nuclear center : 469.6746466 density at nuclear surface : 458.0179388 average contact charge density : 518.3703693 contact magnetic moment (mu_B) : -0.2078531243 0.1740868591E-02 -0.1670018648E-04 contact field : -0.4641722404E-04 0.3887662872E-06 -0.3729442605E-08 tesla : -10.91045005 0.9138019878E-01 -0.8766120359E-03 spin and orbital dipole field : -0.3847659363E-04 0.1653003236E-04 -0.5230842188E-08 tesla : -9.043990926 3.885413145 -0.1229518646E-02 Note that the contact term is implicitly included in the spin dipole field but may not match exactly with the directly calculated value. elk-9.6.8/examples/Mossbauer/NiF2/PaxHeaders/elk.in0000644000000000000000000000013214626155521017015 xustar0030 mtime=1717099345.839996379 30 atime=1717099345.839996379 30 ctime=1717099345.839996379 elk-9.6.8/examples/Mossbauer/NiF2/elk.in0000644002504400250440000000403114626155521021535 0ustar00dewhurstdewhurst00000000000000 ! Calculating the zero field resonance frequencies for NiF2. ! The ground state is antiferromagnetic with moments in the a-b plane. ! Nonetheless, the experimentally measured hyperfine field originates from ! domain walls, as explained in R. G. Shulman, Journal of Applied Physics 32, ! S126 (1961). ! The zero field estimate are ~0.7 T and ~1.3 T in good agreement with the ! results provided by this example. ! Example by Pietro Bonfa. tasks 0 ! ground-state calculation 110 ! determine the magnetic hyperfine field lmaxi 2 rgkmax 5.5 gmaxvr 16.0 ! enable calculation of the dipole field tbdip .true. ! enable calculation of the current density (i.e. orbital) contribution to the ! dipole field tjr .true. ! enable spin-orbit coupling spinorb .true. ! switch on core polarisation for hyperfine field spincore .true. sppath '../../../species/' ! external field for breaking spin symmetry bfieldc 0.01 0.0 0.0 reducebf 0.75 ! very large number of empty states required for hyperfine field nempty 40 ! enable conduction local-orbitals lorbcnd .true. ! large number of k-points required ngridk 6 6 6 avec 1.0000000000 0.0000000000 0.0000000000 0.0000000000 1.0000000000 0.0000000000 0.0000000000 0.0000000000 0.6619957537 scale 8.9006099310 atoms 2 : nspecies 'Ni.in' : spfname 2 0.000000000000000 0.000000000000000 0.000000000000000 0.00100000 0.00100000 0.00000000 0.500000000000000 0.500000000000000 0.500000000000000 -0.00100000 -0.00100000 0.00000000 'F.in' : spfname 4 0.303300000000000 0.303300000000000 0.000000000000000 0.00000000 0.00000000 0.00000000 0.196700000000000 0.803300000000000 0.500000000000000 0.00000000 0.00000000 0.00000000 0.696700000000000 0.696700000000000 0.000000000000000 0.00000000 0.00000000 0.00000000 0.803300000000000 0.196700000000000 0.500000000000000 0.00000000 0.00000000 0.00000000 elk-9.6.8/examples/PaxHeaders/TDDFT-optics0000644000000000000000000000013114626155521015302 xustar0030 mtime=1717099345.882996611 29 atime=1717099345.84199639 30 ctime=1717099345.882996611 elk-9.6.8/examples/TDDFT-optics/0000755002504400250440000000000014626155521020102 5ustar00dewhurstdewhurst00000000000000elk-9.6.8/examples/TDDFT-optics/PaxHeaders/Ar-bootstrap-single0000644000000000000000000000013214626155521021137 xustar0030 mtime=1717099345.846996417 30 atime=1717099345.843996401 30 ctime=1717099345.846996417 elk-9.6.8/examples/TDDFT-optics/Ar-bootstrap-single/0000755002504400250440000000000014626155521023736 5ustar00dewhurstdewhurst00000000000000elk-9.6.8/examples/TDDFT-optics/Ar-bootstrap-single/PaxHeaders/Ar_expt_eV.dat0000644000000000000000000000013214626155521023742 xustar0030 mtime=1717099345.845996412 30 atime=1717099345.844996406 30 ctime=1717099345.845996412 elk-9.6.8/examples/TDDFT-optics/Ar-bootstrap-single/Ar_expt_eV.dat0000644002504400250440000000645114626155521026472 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-9.6.8/examples/TDDFT-optics/Ar-bootstrap-single/PaxHeaders/elk.in0000644000000000000000000000013214626155521022317 xustar0030 mtime=1717099345.847996422 30 atime=1717099345.847996422 30 ctime=1717099345.847996422 elk-9.6.8/examples/TDDFT-optics/Ar-bootstrap-single/elk.in0000644002504400250440000000143114626155521025040 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-9.6.8/examples/TDDFT-optics/PaxHeaders/LiF-bootstrap-single0000644000000000000000000000013214626155521021247 xustar0030 mtime=1717099345.850996439 30 atime=1717099345.848996428 30 ctime=1717099345.850996439 elk-9.6.8/examples/TDDFT-optics/LiF-bootstrap-single/0000755002504400250440000000000014626155521024046 5ustar00dewhurstdewhurst00000000000000elk-9.6.8/examples/TDDFT-optics/LiF-bootstrap-single/PaxHeaders/elk.in0000644000000000000000000000013214626155521022427 xustar0030 mtime=1717099345.851996444 30 atime=1717099345.850996439 30 ctime=1717099345.851996444 elk-9.6.8/examples/TDDFT-optics/LiF-bootstrap-single/elk.in0000644002504400250440000000121614626155521025151 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-9.6.8/examples/TDDFT-optics/PaxHeaders/Ni-MOKE0000644000000000000000000000013214626155521016402 xustar0030 mtime=1717099345.853996455 30 atime=1717099345.852996449 30 ctime=1717099345.853996455 elk-9.6.8/examples/TDDFT-optics/Ni-MOKE/0000755002504400250440000000000014626155521021201 5ustar00dewhurstdewhurst00000000000000elk-9.6.8/examples/TDDFT-optics/Ni-MOKE/PaxHeaders/elk.in0000644000000000000000000000012714626155521017566 xustar0029 mtime=1717099345.85499646 29 atime=1717099345.85499646 29 ctime=1717099345.85499646 elk-9.6.8/examples/TDDFT-optics/Ni-MOKE/elk.in0000644002504400250440000000121314626155521022301 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-9.6.8/examples/TDDFT-optics/PaxHeaders/Ge0000644000000000000000000000013214626155521015636 xustar0030 mtime=1717099345.856996471 30 atime=1717099345.855996466 30 ctime=1717099345.856996471 elk-9.6.8/examples/TDDFT-optics/Ge/0000755002504400250440000000000014626155521020435 5ustar00dewhurstdewhurst00000000000000elk-9.6.8/examples/TDDFT-optics/Ge/PaxHeaders/elk.in0000644000000000000000000000013214626155521017016 xustar0030 mtime=1717099345.857996476 30 atime=1717099345.857996476 30 ctime=1717099345.857996476 elk-9.6.8/examples/TDDFT-optics/Ge/elk.in0000644002504400250440000000141114626155521021535 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-9.6.8/examples/TDDFT-optics/PaxHeaders/LiF-bootstrap0000644000000000000000000000013214626155521017770 xustar0030 mtime=1717099345.860996492 30 atime=1717099345.859996487 30 ctime=1717099345.860996492 elk-9.6.8/examples/TDDFT-optics/LiF-bootstrap/0000755002504400250440000000000014626155521022567 5ustar00dewhurstdewhurst00000000000000elk-9.6.8/examples/TDDFT-optics/LiF-bootstrap/PaxHeaders/elk.in0000644000000000000000000000013214626155521021150 xustar0030 mtime=1717099345.861996498 30 atime=1717099345.860996492 30 ctime=1717099345.861996498 elk-9.6.8/examples/TDDFT-optics/LiF-bootstrap/elk.in0000644002504400250440000000251714626155521023677 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-9.6.8/examples/TDDFT-optics/PaxHeaders/TiO20000644000000000000000000000013214626155521016060 xustar0030 mtime=1717099345.864996514 30 atime=1717099345.862996503 30 ctime=1717099345.864996514 elk-9.6.8/examples/TDDFT-optics/TiO2/0000755002504400250440000000000014626155521020657 5ustar00dewhurstdewhurst00000000000000elk-9.6.8/examples/TDDFT-optics/TiO2/PaxHeaders/elk.in0000644000000000000000000000013214626155521017240 xustar0030 mtime=1717099345.864996514 30 atime=1717099345.864996514 30 ctime=1717099345.864996514 elk-9.6.8/examples/TDDFT-optics/TiO2/elk.in0000644002504400250440000000127314626155521021765 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-9.6.8/examples/TDDFT-optics/PaxHeaders/LiF-LRC0000644000000000000000000000012714626155521016377 xustar0029 mtime=1717099345.86799653 29 atime=1717099345.86599652 29 ctime=1717099345.86799653 elk-9.6.8/examples/TDDFT-optics/LiF-LRC/0000755002504400250440000000000014626155521021172 5ustar00dewhurstdewhurst00000000000000elk-9.6.8/examples/TDDFT-optics/LiF-LRC/PaxHeaders/elk.in0000644000000000000000000000013114626155521017552 xustar0030 mtime=1717099345.868996536 29 atime=1717099345.86799653 30 ctime=1717099345.868996536 elk-9.6.8/examples/TDDFT-optics/LiF-LRC/elk.in0000644002504400250440000000242714626155521022302 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-9.6.8/examples/TDDFT-optics/PaxHeaders/LiF0000644000000000000000000000013214626155521015755 xustar0030 mtime=1717099345.870996546 30 atime=1717099345.869996541 30 ctime=1717099345.870996546 elk-9.6.8/examples/TDDFT-optics/LiF/0000755002504400250440000000000014626155521020554 5ustar00dewhurstdewhurst00000000000000elk-9.6.8/examples/TDDFT-optics/LiF/PaxHeaders/elk.in0000644000000000000000000000013214626155521017135 xustar0030 mtime=1717099345.871996552 30 atime=1717099345.870996546 30 ctime=1717099345.871996552 elk-9.6.8/examples/TDDFT-optics/LiF/elk.in0000644002504400250440000000112214626155521021653 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-9.6.8/examples/TDDFT-optics/PaxHeaders/diamond-ALDA0000644000000000000000000000013214626155521017415 xustar0030 mtime=1717099345.874996568 30 atime=1717099345.872996557 30 ctime=1717099345.874996568 elk-9.6.8/examples/TDDFT-optics/diamond-ALDA/0000755002504400250440000000000014626155521022214 5ustar00dewhurstdewhurst00000000000000elk-9.6.8/examples/TDDFT-optics/diamond-ALDA/PaxHeaders/elk.in0000644000000000000000000000013214626155521020575 xustar0030 mtime=1717099345.875996573 30 atime=1717099345.874996568 30 ctime=1717099345.875996573 elk-9.6.8/examples/TDDFT-optics/diamond-ALDA/elk.in0000644002504400250440000000117414626155521023322 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-9.6.8/examples/TDDFT-optics/PaxHeaders/Al0000644000000000000000000000013214626155521015637 xustar0030 mtime=1717099345.877996584 30 atime=1717099345.876996579 30 ctime=1717099345.877996584 elk-9.6.8/examples/TDDFT-optics/Al/0000755002504400250440000000000014626155521020436 5ustar00dewhurstdewhurst00000000000000elk-9.6.8/examples/TDDFT-optics/Al/PaxHeaders/elk.in0000644000000000000000000000013214626155521017017 xustar0030 mtime=1717099345.878996589 30 atime=1717099345.878996589 30 ctime=1717099345.878996589 elk-9.6.8/examples/TDDFT-optics/Al/elk.in0000644002504400250440000000130414626155521021537 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-9.6.8/examples/TDDFT-optics/PaxHeaders/LiF-RBO0000644000000000000000000000013214626155521016375 xustar0030 mtime=1717099345.881996606 30 atime=1717099345.879996595 30 ctime=1717099345.881996606 elk-9.6.8/examples/TDDFT-optics/LiF-RBO/0000755002504400250440000000000014626155521021174 5ustar00dewhurstdewhurst00000000000000elk-9.6.8/examples/TDDFT-optics/LiF-RBO/PaxHeaders/elk.in0000644000000000000000000000013214626155521017555 xustar0030 mtime=1717099345.881996606 30 atime=1717099345.881996606 30 ctime=1717099345.881996606 elk-9.6.8/examples/TDDFT-optics/LiF-RBO/elk.in0000644002504400250440000000201214626155521022272 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-9.6.8/examples/TDDFT-optics/PaxHeaders/Ne-RBO0000644000000000000000000000013214626155521016265 xustar0030 mtime=1717099345.887996638 30 atime=1717099345.882996611 30 ctime=1717099345.887996638 elk-9.6.8/examples/TDDFT-optics/Ne-RBO/0000755002504400250440000000000014626155521021064 5ustar00dewhurstdewhurst00000000000000elk-9.6.8/examples/TDDFT-optics/Ne-RBO/PaxHeaders/Ne_expt_eV.dat0000644000000000000000000000013214626155521021070 xustar0030 mtime=1717099345.885996627 30 atime=1717099345.885996627 30 ctime=1717099345.885996627 elk-9.6.8/examples/TDDFT-optics/Ne-RBO/Ne_expt_eV.dat0000644002504400250440000000153414626155521023615 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-9.6.8/examples/TDDFT-optics/Ne-RBO/PaxHeaders/elk.in0000644000000000000000000000013214626155521017445 xustar0030 mtime=1717099345.887996638 30 atime=1717099345.887996638 30 ctime=1717099345.887996638 elk-9.6.8/examples/TDDFT-optics/Ne-RBO/elk.in0000644002504400250440000000120314626155521022163 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-9.6.8/examples/PaxHeaders/fractional-species0000644000000000000000000000013214626155521016712 xustar0030 mtime=1717099345.890996654 30 atime=1717099345.889996649 30 ctime=1717099345.890996654 elk-9.6.8/examples/fractional-species/0000755002504400250440000000000014626155521021511 5ustar00dewhurstdewhurst00000000000000elk-9.6.8/examples/fractional-species/PaxHeaders/elk.in0000644000000000000000000000012714626155521020076 xustar0029 mtime=1717099345.89199666 29 atime=1717099345.89199666 29 ctime=1717099345.89199666 elk-9.6.8/examples/fractional-species/elk.in0000644002504400250440000000154114626155521022615 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-9.6.8/examples/PaxHeaders/magnetism0000644000000000000000000000013214626155521015123 xustar0030 mtime=1717099345.937996907 30 atime=1717099345.892996665 30 ctime=1717099345.937996907 elk-9.6.8/examples/magnetism/0000755002504400250440000000000014626155521017722 5ustar00dewhurstdewhurst00000000000000elk-9.6.8/examples/magnetism/PaxHeaders/CrSb-altermagnet0000644000000000000000000000013114626155521020254 xustar0030 mtime=1717099345.895996681 29 atime=1717099345.89399667 30 ctime=1717099345.895996681 elk-9.6.8/examples/magnetism/CrSb-altermagnet/0000755002504400250440000000000014626155521023054 5ustar00dewhurstdewhurst00000000000000elk-9.6.8/examples/magnetism/CrSb-altermagnet/PaxHeaders/elk.in0000644000000000000000000000013214626155521021435 xustar0030 mtime=1717099345.896996687 30 atime=1717099345.895996681 30 ctime=1717099345.896996687 elk-9.6.8/examples/magnetism/CrSb-altermagnet/elk.in0000644002504400250440000000333614626155521024164 0ustar00dewhurstdewhurst00000000000000 ! Altermagnetism in CrSb. ! Example thanks to Wenhan Chen. tasks 0 ! ground-state 20 ! band structure plot 102 ! Fermi surface plot using XCrySDen xctype 21 0 0 tempk 300.0 nempty 8 ngridk 24 24 16 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 32 32 24 reducebf 0.7 spinorb .false. spinpol .true. plot1d 11 200 0.00 0.00 0.00 ! G 0.00 0.50 0.00 ! M 0.333333333333333 0.666666666666667 0.0 ! K 0.00 0.00 0.00 ! G 0.00 0.00 0.50 ! A 0.00 0.50 0.50 ! L 0.333333333333333 0.666666666666667 0.500 ! H 0.00 0.00 0.50 ! A 0.00 -0.50 0.50 ! L 0.00 0.00 0.00 ! G 0.00 0.50 0.50 ! L sppath '../../../species/' avec 3.893780680 6.744225971 0.000000000 7.787561360 0.000000000 0.000000000 0.000000000 0.000000000 10.33113270 atoms 2 : nspecies 'Cr.in' : spfname 2 : natoms; atposl, bfcmt below 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00100000 0.00000000 0.00000000 0.50000000 0.00000000 0.00000000 -0.00100000 'Sb.in' : spfname 2 : natoms; atposl, bfcmt below 0.33333333 0.33333333 0.25000000 0.00000000 0.00000000 0.00000000 0.66666667 0.66666667 0.75000000 0.00000000 0.00000000 0.00000000 elk-9.6.8/examples/magnetism/PaxHeaders/Fe-FSM-MT-AFM0000644000000000000000000000013214626155521017017 xustar0030 mtime=1717099345.899996703 30 atime=1717099345.897996692 30 ctime=1717099345.899996703 elk-9.6.8/examples/magnetism/Fe-FSM-MT-AFM/0000755002504400250440000000000014626155521021616 5ustar00dewhurstdewhurst00000000000000elk-9.6.8/examples/magnetism/Fe-FSM-MT-AFM/PaxHeaders/elk.in0000644000000000000000000000013214626155521020177 xustar0030 mtime=1717099345.899996703 30 atime=1717099345.899996703 30 ctime=1717099345.899996703 elk-9.6.8/examples/magnetism/Fe-FSM-MT-AFM/elk.in0000644002504400250440000000213414626155521022721 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-9.6.8/examples/magnetism/PaxHeaders/Fe-spiral0000644000000000000000000000013214626155521016745 xustar0030 mtime=1717099345.902996719 30 atime=1717099345.901996713 30 ctime=1717099345.902996719 elk-9.6.8/examples/magnetism/Fe-spiral/0000755002504400250440000000000014626155521021544 5ustar00dewhurstdewhurst00000000000000elk-9.6.8/examples/magnetism/Fe-spiral/PaxHeaders/elk.in0000644000000000000000000000013214626155521020125 xustar0030 mtime=1717099345.903996724 30 atime=1717099345.903996724 30 ctime=1717099345.903996724 elk-9.6.8/examples/magnetism/Fe-spiral/elk.in0000644002504400250440000000135214626155521022650 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-9.6.8/examples/magnetism/PaxHeaders/Cr-mono0000644000000000000000000000013114626155521016434 xustar0030 mtime=1717099345.911996767 29 atime=1717099345.90499673 30 ctime=1717099345.911996767 elk-9.6.8/examples/magnetism/Cr-mono/0000755002504400250440000000000014626155521021234 5ustar00dewhurstdewhurst00000000000000elk-9.6.8/examples/magnetism/Cr-mono/PaxHeaders/elk.in0000644000000000000000000000013114626155521017614 xustar0030 mtime=1717099345.907996746 29 atime=1717099345.90699674 30 ctime=1717099345.907996746 elk-9.6.8/examples/magnetism/Cr-mono/elk.in0000644002504400250440000000236314626155521022343 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-9.6.8/examples/magnetism/Cr-mono/PaxHeaders/mag2d.general0000644000000000000000000000013214626155521021043 xustar0030 mtime=1717099345.909996757 30 atime=1717099345.909996757 30 ctime=1717099345.909996757 elk-9.6.8/examples/magnetism/Cr-mono/mag2d.general0000644002504400250440000000027314626155521023567 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-9.6.8/examples/magnetism/Cr-mono/PaxHeaders/mag2d.net0000644000000000000000000000013214626155521020214 xustar0030 mtime=1717099345.912996773 30 atime=1717099345.911996767 30 ctime=1717099345.912996773 elk-9.6.8/examples/magnetism/Cr-mono/mag2d.net0000644002504400250440000002211314626155521022735 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-9.6.8/examples/magnetism/PaxHeaders/Fe-FSM-MT-FM0000644000000000000000000000013214626155521016716 xustar0030 mtime=1717099345.914996783 30 atime=1717099345.913996778 30 ctime=1717099345.914996783 elk-9.6.8/examples/magnetism/Fe-FSM-MT-FM/0000755002504400250440000000000014626155521021515 5ustar00dewhurstdewhurst00000000000000elk-9.6.8/examples/magnetism/Fe-FSM-MT-FM/PaxHeaders/elk.in0000644000000000000000000000013214626155521020076 xustar0030 mtime=1717099345.915996789 30 atime=1717099345.915996789 30 ctime=1717099345.915996789 elk-9.6.8/examples/magnetism/Fe-FSM-MT-FM/elk.in0000644002504400250440000000135214626155521022621 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-9.6.8/examples/magnetism/PaxHeaders/Fe0000644000000000000000000000013214626155521015455 xustar0030 mtime=1717099345.918996805 30 atime=1717099345.916996794 30 ctime=1717099345.918996805 elk-9.6.8/examples/magnetism/Fe/0000755002504400250440000000000014626155521020254 5ustar00dewhurstdewhurst00000000000000elk-9.6.8/examples/magnetism/Fe/PaxHeaders/elk.in0000644000000000000000000000013214626155521016635 xustar0030 mtime=1717099345.918996805 30 atime=1717099345.918996805 30 ctime=1717099345.918996805 elk-9.6.8/examples/magnetism/Fe/elk.in0000644002504400250440000000126614626155521021364 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-9.6.8/examples/magnetism/PaxHeaders/Eu0000644000000000000000000000013214626155521015474 xustar0030 mtime=1717099345.922996827 30 atime=1717099345.920996816 30 ctime=1717099345.922996827 elk-9.6.8/examples/magnetism/Eu/0000755002504400250440000000000014626155521020273 5ustar00dewhurstdewhurst00000000000000elk-9.6.8/examples/magnetism/Eu/PaxHeaders/elk.in0000644000000000000000000000013214626155521016654 xustar0030 mtime=1717099345.922996827 30 atime=1717099345.922996827 30 ctime=1717099345.922996827 elk-9.6.8/examples/magnetism/Eu/elk.in0000644002504400250440000000101614626155521021374 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-9.6.8/examples/magnetism/PaxHeaders/Fe-FSM0000644000000000000000000000013214626155521016100 xustar0030 mtime=1717099345.925996843 30 atime=1717099345.923996832 30 ctime=1717099345.925996843 elk-9.6.8/examples/magnetism/Fe-FSM/0000755002504400250440000000000014626155521020677 5ustar00dewhurstdewhurst00000000000000elk-9.6.8/examples/magnetism/Fe-FSM/PaxHeaders/elk.in0000644000000000000000000000013214626155521017260 xustar0030 mtime=1717099345.925996843 30 atime=1717099345.925996843 30 ctime=1717099345.925996843 elk-9.6.8/examples/magnetism/Fe-FSM/elk.in0000644002504400250440000000141614626155521022004 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-9.6.8/examples/magnetism/PaxHeaders/FeCo-MAE0000644000000000000000000000013214626155521016337 xustar0030 mtime=1717099345.928996859 30 atime=1717099345.926996848 30 ctime=1717099345.928996859 elk-9.6.8/examples/magnetism/FeCo-MAE/0000755002504400250440000000000014626155521021136 5ustar00dewhurstdewhurst00000000000000elk-9.6.8/examples/magnetism/FeCo-MAE/PaxHeaders/elk.in0000644000000000000000000000013214626155521017517 xustar0030 mtime=1717099345.929996864 30 atime=1717099345.928996859 30 ctime=1717099345.929996864 elk-9.6.8/examples/magnetism/FeCo-MAE/elk.in0000644002504400250440000000261014626155521022240 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-9.6.8/examples/magnetism/PaxHeaders/Fe-AFM0000644000000000000000000000012714626155521016062 xustar0029 mtime=1717099345.93299688 29 atime=1717099345.93099687 29 ctime=1717099345.93299688 elk-9.6.8/examples/magnetism/Fe-AFM/0000755002504400250440000000000014626155521020655 5ustar00dewhurstdewhurst00000000000000elk-9.6.8/examples/magnetism/Fe-AFM/PaxHeaders/elk.in0000644000000000000000000000012714626155521017242 xustar0029 mtime=1717099345.93299688 29 atime=1717099345.93299688 29 ctime=1717099345.93299688 elk-9.6.8/examples/magnetism/Fe-AFM/elk.in0000644002504400250440000000116614626155521021764 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-9.6.8/examples/magnetism/PaxHeaders/Fe-spiral-supercell0000644000000000000000000000013214626155521020741 xustar0030 mtime=1717099345.936996902 30 atime=1717099345.934996891 30 ctime=1717099345.936996902 elk-9.6.8/examples/magnetism/Fe-spiral-supercell/0000755002504400250440000000000014626155521023540 5ustar00dewhurstdewhurst00000000000000elk-9.6.8/examples/magnetism/Fe-spiral-supercell/PaxHeaders/elk.in0000644000000000000000000000013214626155521022121 xustar0030 mtime=1717099345.936996902 30 atime=1717099345.936996902 30 ctime=1717099345.936996902 elk-9.6.8/examples/magnetism/Fe-spiral-supercell/elk.in0000644002504400250440000000210014626155521024634 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-9.6.8/examples/magnetism/PaxHeaders/Ni0000644000000000000000000000013214626155521015471 xustar0030 mtime=1717099345.939996918 30 atime=1717099345.937996907 30 ctime=1717099345.939996918 elk-9.6.8/examples/magnetism/Ni/0000755002504400250440000000000014626155521020270 5ustar00dewhurstdewhurst00000000000000elk-9.6.8/examples/magnetism/Ni/PaxHeaders/elk.in0000644000000000000000000000013214626155521016651 xustar0030 mtime=1717099345.940996924 30 atime=1717099345.939996918 30 ctime=1717099345.940996924 elk-9.6.8/examples/magnetism/Ni/elk.in0000644002504400250440000000120114626155521021365 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-9.6.8/examples/PaxHeaders/non-linear-optics0000644000000000000000000000013214626155521016500 xustar0030 mtime=1717099345.942996934 30 atime=1717099345.941996929 30 ctime=1717099345.942996934 elk-9.6.8/examples/non-linear-optics/0000755002504400250440000000000014626155521021277 5ustar00dewhurstdewhurst00000000000000elk-9.6.8/examples/non-linear-optics/PaxHeaders/GaAs0000644000000000000000000000013214626155521017313 xustar0030 mtime=1717099345.944996945 30 atime=1717099345.942996934 30 ctime=1717099345.944996945 elk-9.6.8/examples/non-linear-optics/GaAs/0000755002504400250440000000000014626155521022112 5ustar00dewhurstdewhurst00000000000000elk-9.6.8/examples/non-linear-optics/GaAs/PaxHeaders/elk.in0000644000000000000000000000013214626155521020473 xustar0030 mtime=1717099345.944996945 30 atime=1717099345.944996945 30 ctime=1717099345.944996945 elk-9.6.8/examples/non-linear-optics/GaAs/elk.in0000644002504400250440000000206414626155521023217 0ustar00dewhurstdewhurst00000000000000 ! Calculation of the non-linear reponse function χ(-2ω;ω,ω) for GaAs. Note ! that many k-points and empty states are required for good convergence. ! Various contributions to the susceptibility are also written to file. ! See Phys. Rev. B 48, 11705 (1993) and Phys. Rev. B 53, 10751 (1996). tasks 0 120 125 ! large number of empty states required nempty 20 ! scissor correction of Δ=1.243 eV (see Phys. Rev. B 80, 155205 (2009)) scissor 0.0457 ! inverse lifetime is determined by swidth swidth 0.003 ! components of the optical tensor (x,y,z) optcomp 1 2 3 ! dense k-point set required for non-linear optics ngridk 32 32 32 wplot 400 100 0 : nwplot, ngrkf, nswplot 0.0 0.3 : wplot ! use GGA 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 elk-9.6.8/examples/PaxHeaders/tensor-moments0000644000000000000000000000013214626155521016131 xustar0030 mtime=1717099345.955997004 30 atime=1717099345.946996956 30 ctime=1717099345.955997004 elk-9.6.8/examples/tensor-moments/0000755002504400250440000000000014626155521020730 5ustar00dewhurstdewhurst00000000000000elk-9.6.8/examples/tensor-moments/PaxHeaders/NiO-LDA+U-FLL0000644000000000000000000000013214626155521020027 xustar0030 mtime=1717099345.949996972 30 atime=1717099345.947996961 30 ctime=1717099345.949996972 elk-9.6.8/examples/tensor-moments/NiO-LDA+U-FLL/0000755002504400250440000000000014626155521022626 5ustar00dewhurstdewhurst00000000000000elk-9.6.8/examples/tensor-moments/NiO-LDA+U-FLL/PaxHeaders/elk.in0000644000000000000000000000013214626155521021207 xustar0030 mtime=1717099345.950996977 30 atime=1717099345.949996972 30 ctime=1717099345.950996977 elk-9.6.8/examples/tensor-moments/NiO-LDA+U-FLL/elk.in0000644002504400250440000000253414626155521023735 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 TENSMOM.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). ! 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 spinorb .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-9.6.8/examples/tensor-moments/PaxHeaders/US-LDA+SOC+U0000644000000000000000000000013214626155521017676 xustar0030 mtime=1717099345.953996994 30 atime=1717099345.951996983 30 ctime=1717099345.953996994 elk-9.6.8/examples/tensor-moments/US-LDA+SOC+U/0000755002504400250440000000000014626155521022475 5ustar00dewhurstdewhurst00000000000000elk-9.6.8/examples/tensor-moments/US-LDA+SOC+U/PaxHeaders/elk.in0000644000000000000000000000013214626155521021056 xustar0030 mtime=1717099345.954996999 30 atime=1717099345.953996994 30 ctime=1717099345.954996999 elk-9.6.8/examples/tensor-moments/US-LDA+SOC+U/elk.in0000644002504400250440000000347514626155521023611 0ustar00dewhurstdewhurst00000000000000 ! US in FM structure with magnetic moment along easy-axis [111] with LDA+SOC+U ! around mean field (AFM) (dftu=2). 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 in TENSMOM.OUT ! (see PRB 80, 035121 (2009)). Observe the large 011 (spin-polarization), ! 110 (SOC-like term) and 615 (large multipole of magnetization density). ! Example by Francesco Cricchio. tasks 0 ! DFT+U block ! around mean field (AFM) is used (dftu=2) ! inpdftu=5 corresponds to determine the Yukawa screening length that produces ! U=1 eV (0.036749 Ha) through a secant algorithm dft+u 2 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. 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/' ! this grid is too small for accurate magnetic moment ngridk 4 4 4 elk-9.6.8/examples/tensor-moments/PaxHeaders/FeGd-fixed-tensor-moment0000644000000000000000000000013214626155521022640 xustar0030 mtime=1717099345.957997015 30 atime=1717099345.955997004 30 ctime=1717099345.957997015 elk-9.6.8/examples/tensor-moments/FeGd-fixed-tensor-moment/0000755002504400250440000000000014626155521025437 5ustar00dewhurstdewhurst00000000000000elk-9.6.8/examples/tensor-moments/FeGd-fixed-tensor-moment/PaxHeaders/elk.in0000644000000000000000000000013214626155521024020 xustar0030 mtime=1717099345.957997015 30 atime=1717099345.957997015 30 ctime=1717099345.957997015 elk-9.6.8/examples/tensor-moments/FeGd-fixed-tensor-moment/elk.in0000644002504400250440000000204114626155521026537 0ustar00dewhurstdewhurst00000000000000 ! Example of a fixed tensor moment (FTM) calculation for FeGd. ! See the documentation of the routine tm3todm, and references therein, for the ! theory of tensor moments. tasks 0 ! write out the tensor moments after each iteration tmwrite .true. ! fix the tensor moments ftmtype 1 ! select 3-index tensor moment to fix tm3fix 1 : number of fixed tensor moments 2 1 3 : species, atom and angular momentum (l) 4 1 5 2 : k, p, r, t 0.1 : wkpr(t) spinorb .true. reducebf 0.85 nxoapwlo 1 rgkmax 8.5 dft+u 1 5 : dftu,inpdftu 2 3 0.8 : is, l, U ngridk 8 8 8 nempty 10 avec 3.645171 -3.643374 0.000000 3.644982 3.643193 0.000000 0.000000 0.000000 7.111690 sppath '../../../species/' atoms 2 : nspecies 'Fe.in' : spfname 1 : natoms 0.0 0.0 0.0 0.0 0.0 0.01 : atposl, bfcmt 'Gd.in' 1 0.5 0.5 0.5 0.0 0.0 -0.01 elk-9.6.8/examples/PaxHeaders/DFT+U0000644000000000000000000000013214626155521013754 xustar0030 mtime=1717099345.974997107 30 atime=1717099345.959997026 30 ctime=1717099345.974997107 elk-9.6.8/examples/DFT+U/0000755002504400250440000000000014626155521016553 5ustar00dewhurstdewhurst00000000000000elk-9.6.8/examples/DFT+U/PaxHeaders/FeAl-LDA0000644000000000000000000000013214626155521015161 xustar0030 mtime=1717099345.962997042 30 atime=1717099345.960997031 30 ctime=1717099345.962997042 elk-9.6.8/examples/DFT+U/FeAl-LDA/0000755002504400250440000000000014626155521017760 5ustar00dewhurstdewhurst00000000000000elk-9.6.8/examples/DFT+U/FeAl-LDA/PaxHeaders/elk.in0000644000000000000000000000013214626155521016341 xustar0030 mtime=1717099345.962997042 30 atime=1717099345.962997042 30 ctime=1717099345.962997042 elk-9.6.8/examples/DFT+U/FeAl-LDA/elk.in0000644002504400250440000000124514626155521021065 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-9.6.8/examples/DFT+U/PaxHeaders/NiO-LDA0000644000000000000000000000013214626155521015037 xustar0030 mtime=1717099345.965997058 30 atime=1717099345.963997047 30 ctime=1717099345.965997058 elk-9.6.8/examples/DFT+U/NiO-LDA/0000755002504400250440000000000014626155521017636 5ustar00dewhurstdewhurst00000000000000elk-9.6.8/examples/DFT+U/NiO-LDA/PaxHeaders/elk.in0000644000000000000000000000013214626155521016217 xustar0030 mtime=1717099345.966997064 30 atime=1717099345.965997058 30 ctime=1717099345.966997064 elk-9.6.8/examples/DFT+U/NiO-LDA/elk.in0000644002504400250440000000147314626155521020746 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-9.6.8/examples/DFT+U/PaxHeaders/NiO-LDA+U-FLL-Ykwa0000644000000000000000000000013214626155521016563 xustar0030 mtime=1717099345.968997074 30 atime=1717099345.967997069 30 ctime=1717099345.968997074 elk-9.6.8/examples/DFT+U/NiO-LDA+U-FLL-Ykwa/0000755002504400250440000000000014626155521021362 5ustar00dewhurstdewhurst00000000000000elk-9.6.8/examples/DFT+U/NiO-LDA+U-FLL-Ykwa/PaxHeaders/elk.in0000644000000000000000000000012714626155521017747 xustar0029 mtime=1717099345.96999708 29 atime=1717099345.96999708 29 ctime=1717099345.96999708 elk-9.6.8/examples/DFT+U/NiO-LDA+U-FLL-Ykwa/elk.in0000644002504400250440000000337214626155521022472 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-9.6.8/examples/DFT+U/PaxHeaders/FeAl-LDA+U-AMF0000644000000000000000000000013214626155521015762 xustar0030 mtime=1717099345.972997096 30 atime=1717099345.970997085 30 ctime=1717099345.972997096 elk-9.6.8/examples/DFT+U/FeAl-LDA+U-AMF/0000755002504400250440000000000014626155521020561 5ustar00dewhurstdewhurst00000000000000elk-9.6.8/examples/DFT+U/FeAl-LDA+U-AMF/PaxHeaders/elk.in0000644000000000000000000000013214626155521017142 xustar0030 mtime=1717099345.973997101 30 atime=1717099345.973997101 30 ctime=1717099345.973997101 elk-9.6.8/examples/DFT+U/FeAl-LDA+U-AMF/elk.in0000644002504400250440000000251014626155521021662 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-9.6.8/examples/DFT+U/PaxHeaders/NiO-LDA+U-FLL0000644000000000000000000000013214626155521015652 xustar0030 mtime=1717099345.976997117 30 atime=1717099345.974997107 30 ctime=1717099345.976997117 elk-9.6.8/examples/DFT+U/NiO-LDA+U-FLL/0000755002504400250440000000000014626155521020451 5ustar00dewhurstdewhurst00000000000000elk-9.6.8/examples/DFT+U/NiO-LDA+U-FLL/PaxHeaders/elk.in0000644000000000000000000000013214626155521017032 xustar0030 mtime=1717099345.976997117 30 atime=1717099345.976997117 30 ctime=1717099345.976997117 elk-9.6.8/examples/DFT+U/NiO-LDA+U-FLL/elk.in0000644002504400250440000000304414626155521021555 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-9.6.8/examples/PaxHeaders/Fermi-surface0000644000000000000000000000013214626155522015630 xustar0030 mtime=1717099346.001997252 30 atime=1717099345.978997128 30 ctime=1717099346.001997252 elk-9.6.8/examples/Fermi-surface/0000755002504400250440000000000014626155522020427 5ustar00dewhurstdewhurst00000000000000elk-9.6.8/examples/Fermi-surface/PaxHeaders/Ni0000644000000000000000000000013214626155521016175 xustar0030 mtime=1717099345.987997177 30 atime=1717099345.979997134 30 ctime=1717099345.987997177 elk-9.6.8/examples/Fermi-surface/Ni/0000755002504400250440000000000014626155521020774 5ustar00dewhurstdewhurst00000000000000elk-9.6.8/examples/Fermi-surface/Ni/PaxHeaders/elk.in0000644000000000000000000000013214626155521017355 xustar0030 mtime=1717099345.981997145 30 atime=1717099345.981997145 30 ctime=1717099345.981997145 elk-9.6.8/examples/Fermi-surface/Ni/elk.in0000644002504400250440000000142714626155521022103 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-9.6.8/examples/Fermi-surface/Ni/PaxHeaders/fermi.net0000644000000000000000000000013214626155521020064 xustar0030 mtime=1717099345.983997155 30 atime=1717099345.983997155 30 ctime=1717099345.983997155 elk-9.6.8/examples/Fermi-surface/Ni/fermi.net0000644002504400250440000003707514626155521022622 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-9.6.8/examples/Fermi-surface/Ni/PaxHeaders/fermi_dn.general0000644000000000000000000000013214626155521021374 xustar0030 mtime=1717099345.986997171 30 atime=1717099345.986997171 30 ctime=1717099345.986997171 elk-9.6.8/examples/Fermi-surface/Ni/fermi_dn.general0000644002504400250440000000030514626155521024114 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-9.6.8/examples/Fermi-surface/Ni/PaxHeaders/fermi_up.general0000644000000000000000000000013214626155521021417 xustar0030 mtime=1717099345.988997182 30 atime=1717099345.988997182 30 ctime=1717099345.988997182 elk-9.6.8/examples/Fermi-surface/Ni/fermi_up.general0000644002504400250440000000030514626155521024137 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-9.6.8/examples/Fermi-surface/PaxHeaders/Al0000644000000000000000000000013214626155521016163 xustar0030 mtime=1717099345.996997225 30 atime=1717099345.990997193 30 ctime=1717099345.996997225 elk-9.6.8/examples/Fermi-surface/Al/0000755002504400250440000000000014626155521020762 5ustar00dewhurstdewhurst00000000000000elk-9.6.8/examples/Fermi-surface/Al/PaxHeaders/elk.in0000644000000000000000000000013214626155521017343 xustar0030 mtime=1717099345.992997204 30 atime=1717099345.992997204 30 ctime=1717099345.992997204 elk-9.6.8/examples/Fermi-surface/Al/elk.in0000644002504400250440000000062014626155521022063 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-9.6.8/examples/Fermi-surface/Al/PaxHeaders/fermi.general0000644000000000000000000000013214626155521020701 xustar0030 mtime=1717099345.994997214 30 atime=1717099345.994997214 30 ctime=1717099345.994997214 elk-9.6.8/examples/Fermi-surface/Al/fermi.general0000644002504400250440000000030214626155521023416 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-9.6.8/examples/Fermi-surface/Al/PaxHeaders/fermi.net0000644000000000000000000000013214626155521020052 xustar0030 mtime=1717099345.996997225 30 atime=1717099345.996997225 30 ctime=1717099345.996997225 elk-9.6.8/examples/Fermi-surface/Al/fermi.net0000644002504400250440000002203614626155521022577 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-9.6.8/examples/Fermi-surface/PaxHeaders/Fe0000644000000000000000000000013214626155521016161 xustar0030 mtime=1717099345.999997241 30 atime=1717099345.998997236 30 ctime=1717099345.999997241 elk-9.6.8/examples/Fermi-surface/Fe/0000755002504400250440000000000014626155521020760 5ustar00dewhurstdewhurst00000000000000elk-9.6.8/examples/Fermi-surface/Fe/PaxHeaders/elk.in0000644000000000000000000000013214626155522017342 xustar0030 mtime=1717099346.000997247 30 atime=1717099346.000997247 30 ctime=1717099346.000997247 elk-9.6.8/examples/Fermi-surface/Fe/elk.in0000644002504400250440000000146114626155522022066 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-9.6.8/examples/Fermi-surface/PaxHeaders/MgB20000644000000000000000000000013214626155522016357 xustar0030 mtime=1717099346.007997285 30 atime=1717099346.001997252 30 ctime=1717099346.007997285 elk-9.6.8/examples/Fermi-surface/MgB2/0000755002504400250440000000000014626155522021156 5ustar00dewhurstdewhurst00000000000000elk-9.6.8/examples/Fermi-surface/MgB2/PaxHeaders/elk.in0000644000000000000000000000013214626155522017537 xustar0030 mtime=1717099346.003997263 30 atime=1717099346.003997263 30 ctime=1717099346.003997263 elk-9.6.8/examples/Fermi-surface/MgB2/elk.in0000644002504400250440000000144414626155522022264 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-9.6.8/examples/Fermi-surface/MgB2/PaxHeaders/fermi.general0000644000000000000000000000013214626155522021075 xustar0030 mtime=1717099346.005997274 30 atime=1717099346.005997274 30 ctime=1717099346.005997274 elk-9.6.8/examples/Fermi-surface/MgB2/fermi.general0000644002504400250440000000035614626155522023623 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-9.6.8/examples/Fermi-surface/MgB2/PaxHeaders/fermi.net0000644000000000000000000000013214626155522020246 xustar0030 mtime=1717099346.007997285 30 atime=1717099346.007997285 30 ctime=1717099346.007997285 elk-9.6.8/examples/Fermi-surface/MgB2/fermi.net0000644002504400250440000001624214626155522022775 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-9.6.8/examples/PaxHeaders/OEP0000644000000000000000000000013214626155522013563 xustar0030 mtime=1717099346.014997322 30 atime=1717099346.009997295 30 ctime=1717099346.014997322 elk-9.6.8/examples/OEP/0000755002504400250440000000000014626155522016362 5ustar00dewhurstdewhurst00000000000000elk-9.6.8/examples/OEP/PaxHeaders/HEG0000644000000000000000000000013214626155522014166 xustar0030 mtime=1717099346.012997312 30 atime=1717099346.010997301 30 ctime=1717099346.012997312 elk-9.6.8/examples/OEP/HEG/0000755002504400250440000000000014626155522016765 5ustar00dewhurstdewhurst00000000000000elk-9.6.8/examples/OEP/HEG/PaxHeaders/elk.in0000644000000000000000000000013214626155522015346 xustar0030 mtime=1717099346.013997317 30 atime=1717099346.012997312 30 ctime=1717099346.013997317 elk-9.6.8/examples/OEP/HEG/elk.in0000644002504400250440000000070214626155522020067 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-9.6.8/examples/OEP/PaxHeaders/Si0000644000000000000000000000013214626155522014136 xustar0030 mtime=1717099346.016997333 30 atime=1717099346.014997322 30 ctime=1717099346.016997333 elk-9.6.8/examples/OEP/Si/0000755002504400250440000000000014626155522016735 5ustar00dewhurstdewhurst00000000000000elk-9.6.8/examples/OEP/Si/PaxHeaders/elk.in0000644000000000000000000000013214626155522015316 xustar0030 mtime=1717099346.016997333 30 atime=1717099346.016997333 30 ctime=1717099346.016997333 elk-9.6.8/examples/OEP/Si/elk.in0000644002504400250440000000250114626155522020036 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 300 ! use adaptive linear mixing mixtype 1 ! set the maximum number of self-consistent loops maxscl 40 ! large number of empty states required nempty 30 ! enable conduction band local-orbitals in order to converge unoccupied states lorbcnd .true. 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 ! 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-9.6.8/examples/PaxHeaders/TDDFT-time-evolution0000644000000000000000000000013214626155522016763 xustar0030 mtime=1717099346.042997473 30 atime=1717099346.017997338 30 ctime=1717099346.042997473 elk-9.6.8/examples/TDDFT-time-evolution/0000755002504400250440000000000014626155522021562 5ustar00dewhurstdewhurst00000000000000elk-9.6.8/examples/TDDFT-time-evolution/PaxHeaders/Si-ramp0000644000000000000000000000013214626155522020273 xustar0030 mtime=1717099346.024997376 30 atime=1717099346.019997349 30 ctime=1717099346.024997376 elk-9.6.8/examples/TDDFT-time-evolution/Si-ramp/0000755002504400250440000000000014626155522023072 5ustar00dewhurstdewhurst00000000000000elk-9.6.8/examples/TDDFT-time-evolution/Si-ramp/PaxHeaders/JTOT_TD.OUT0000644000000000000000000000013114626155522022107 xustar0030 mtime=1717099346.022997365 29 atime=1717099346.02199736 30 ctime=1717099346.022997365 elk-9.6.8/examples/TDDFT-time-evolution/Si-ramp/JTOT_TD.OUT0000644002504400250440000021645014626155522024642 0ustar00dewhurstdewhurst00000000000000 0.000000000 0.1967169445E-04 0.000000000 0.000000000 0.5000000000 0.5488511668E-04 0.3469446952E-17 0.000000000 1.000000000 0.4896786069E-04 0.000000000 0.000000000 1.500000000 -0.5199633430E-05 0.3469446952E-17 0.000000000 2.000000000 -0.1012963905E-03 0.000000000 0.000000000 2.500000000 -0.2218195602E-03 0.3469446952E-17 0.000000000 3.000000000 -0.3515228011E-03 0.3469446952E-17 0.000000000 3.500000000 -0.4853140292E-03 -0.3469446952E-17 0.000000000 4.000000000 -0.6224709314E-03 -0.3469446952E-17 0.000000000 4.500000000 -0.7610246421E-03 0.3469446952E-17 0.000000000 5.000000000 -0.9021721268E-03 0.000000000 0.000000000 5.500000000 -0.1052315175E-02 0.6938893904E-17 -0.6938893904E-17 6.000000000 -0.1213257436E-02 0.000000000 0.000000000 6.500000000 -0.1375171054E-02 -0.3469446952E-17 0.6938893904E-17 7.000000000 -0.1526384296E-02 0.3469446952E-17 0.000000000 7.500000000 -0.1666577424E-02 -0.3469446952E-17 0.000000000 8.000000000 -0.1803112510E-02 -0.3469446952E-17 0.000000000 8.500000000 -0.1937144043E-02 0.3469446952E-17 0.000000000 9.000000000 -0.2061297222E-02 -0.3469446952E-17 0.000000000 9.500000000 -0.2170859016E-02 0.3469446952E-17 -0.6938893904E-17 10.00000000 -0.2269775435E-02 0.3469446952E-17 -0.6938893904E-17 10.50000000 -0.2363375174E-02 0.000000000 0.000000000 11.00000000 -0.2450682346E-02 -0.3469446952E-17 0.000000000 11.50000000 -0.2527208244E-02 0.3469446952E-17 0.000000000 12.00000000 -0.2591930551E-02 0.3469446952E-17 0.000000000 12.50000000 -0.2647980259E-02 0.3469446952E-17 0.000000000 13.00000000 -0.2697481680E-02 0.3469446952E-17 0.000000000 13.50000000 -0.2738344846E-02 -0.3469446952E-17 0.000000000 14.00000000 -0.2766041413E-02 0.3469446952E-17 0.000000000 14.50000000 -0.2777271172E-02 0.000000000 0.000000000 15.00000000 -0.2771819802E-02 0.3469446952E-17 0.000000000 15.50000000 -0.2751492004E-02 0.000000000 0.000000000 16.00000000 -0.2717001803E-02 -0.3469446952E-17 0.000000000 16.50000000 -0.2665700832E-02 -0.3469446952E-17 0.000000000 17.00000000 -0.2593037543E-02 0.3469446952E-17 0.000000000 17.50000000 -0.2496909413E-02 -0.3469446952E-17 0.000000000 18.00000000 -0.2379896272E-02 0.3469446952E-17 -0.6938893904E-17 18.50000000 -0.2246465398E-02 -0.3469446952E-17 0.000000000 19.00000000 -0.2098337246E-02 0.3469446952E-17 -0.6938893904E-17 19.50000000 -0.1933527183E-02 0.000000000 0.000000000 20.00000000 -0.1749490249E-02 0.3469446952E-17 0.000000000 20.50000000 -0.1545678184E-02 0.3469446952E-17 -0.6938893904E-17 21.00000000 -0.1322723692E-02 -0.3469446952E-17 0.6938893904E-17 21.50000000 -0.1080729424E-02 0.3469446952E-17 0.000000000 22.00000000 -0.8196855129E-03 0.3469446952E-17 0.000000000 22.50000000 -0.5413002691E-03 -0.3469446952E-17 0.000000000 23.00000000 -0.2489356678E-03 -0.3469446952E-17 0.000000000 23.50000000 0.5492035276E-04 -0.3469446952E-17 0.000000000 24.00000000 0.3708210474E-03 0.3469446952E-17 0.000000000 24.50000000 0.7015199043E-03 0.3469446952E-17 0.000000000 25.00000000 0.1048755022E-02 0.6938893904E-17 -0.6938893904E-17 25.50000000 0.1411242872E-02 0.6938893904E-17 -0.6938893904E-17 26.00000000 0.1785978221E-02 -0.3469446952E-17 0.6938893904E-17 26.50000000 0.2171062908E-02 0.000000000 0.000000000 27.00000000 0.2566687095E-02 -0.3469446952E-17 0.000000000 27.50000000 0.2973490066E-02 -0.3469446952E-17 0.000000000 28.00000000 0.3391222298E-02 0.6938893904E-17 -0.6938893904E-17 28.50000000 0.3819416825E-02 0.3469446952E-17 -0.6938893904E-17 29.00000000 0.4258291715E-02 0.000000000 0.000000000 29.50000000 0.4707854432E-02 0.6938893904E-17 -0.6938893904E-17 30.00000000 0.5166954274E-02 -0.3469446952E-17 0.000000000 30.50000000 0.5634103585E-02 0.3469446952E-17 -0.6938893904E-17 31.00000000 0.6108805781E-02 0.6938893904E-17 0.1387778781E-16 31.50000000 0.6591105818E-02 0.000000000 0.000000000 32.00000000 0.7080465451E-02 0.3469446952E-17 0.000000000 32.50000000 0.7575870871E-02 -0.3469446952E-17 0.6938893904E-17 33.00000000 0.8076600564E-02 0.6938893904E-17 0.1387778781E-16 33.50000000 0.8581783483E-02 0.000000000 0.000000000 34.00000000 0.9089730484E-02 0.000000000 0.000000000 34.50000000 0.9598967494E-02 0.000000000 0.000000000 35.00000000 0.1010975393E-01 0.3469446952E-17 0.000000000 35.50000000 0.1062325238E-01 0.6938893904E-17 0.1387778781E-16 36.00000000 0.1113913126E-01 0.000000000 0.000000000 36.50000000 0.1165536367E-01 0.1387778781E-16 0.6938893904E-17 37.00000000 0.1217042192E-01 0.6938893904E-17 0.6938893904E-17 37.50000000 0.1268459759E-01 0.000000000 0.000000000 38.00000000 0.1319865620E-01 0.6938893904E-17 0.1387778781E-16 38.50000000 0.1371220771E-01 0.000000000 0.000000000 39.00000000 0.1422432140E-01 0.000000000 0.000000000 39.50000000 0.1473499842E-01 0.000000000 0.000000000 40.00000000 0.1524493772E-01 0.6938893904E-17 0.6938893904E-17 40.50000000 0.1575411649E-01 0.3469446952E-17 0.000000000 41.00000000 0.1626143047E-01 0.6938893904E-17 0.1387778781E-16 41.50000000 0.1676569114E-01 0.3469446952E-17 0.000000000 42.00000000 0.1726635148E-01 0.000000000 0.000000000 42.50000000 0.1776355785E-01 0.6938893904E-17 0.1387778781E-16 43.00000000 0.1825836730E-01 0.000000000 0.000000000 43.50000000 0.1875263901E-01 0.000000000 0.000000000 44.00000000 0.1924736726E-01 0.1040834086E-16 0.6938893904E-17 44.50000000 0.1974099580E-01 0.000000000 0.000000000 45.00000000 0.2023085299E-01 0.000000000 0.000000000 45.50000000 0.2071645267E-01 -0.3469446952E-17 0.6938893904E-17 46.00000000 0.2120002711E-01 0.000000000 0.000000000 46.50000000 0.2168326516E-01 0.6938893904E-17 0.1387778781E-16 47.00000000 0.2216523797E-01 0.1040834086E-16 0.6938893904E-17 47.50000000 0.2264450127E-01 0.1040834086E-16 0.6938893904E-17 48.00000000 0.2312164076E-01 0.000000000 0.000000000 48.50000000 0.2359828977E-01 0.1387778781E-16 0.6938893904E-17 49.00000000 0.2407489833E-01 0.6938893904E-17 0.6938893904E-17 49.50000000 0.2455108643E-01 0.1387778781E-16 0.6938893904E-17 50.00000000 0.2502746481E-01 0.1387778781E-16 0.6938893904E-17 50.50000000 0.2550526101E-01 0.6938893904E-17 0.1387778781E-16 51.00000000 0.2598465494E-01 -0.3469446952E-17 0.6938893904E-17 51.50000000 0.2646501418E-01 0.000000000 0.000000000 52.00000000 0.2694669373E-01 0.3469446952E-17 0.000000000 52.50000000 0.2743119843E-01 0.000000000 0.000000000 53.00000000 0.2791957864E-01 0.6938893904E-17 0.6938893904E-17 53.50000000 0.2841182255E-01 0.6938893904E-17 0.6938893904E-17 54.00000000 0.2890775507E-01 0.6938893904E-17 0.6938893904E-17 54.50000000 0.2940780521E-01 0.6938893904E-17 0.1387778781E-16 55.00000000 0.2991260025E-01 0.6938893904E-17 0.6938893904E-17 55.50000000 0.3042238548E-01 0.000000000 0.000000000 56.00000000 0.3093700475E-01 0.3469446952E-17 0.000000000 56.50000000 0.3145624074E-01 0.6938893904E-17 0.1387778781E-16 57.00000000 0.3198043756E-01 0.000000000 0.000000000 57.50000000 0.3251098006E-01 0.6938893904E-17 0.1387778781E-16 58.00000000 0.3304954354E-01 0.3469446952E-17 0.000000000 58.50000000 0.3359634034E-01 0.3469446952E-17 0.000000000 59.00000000 0.3414991518E-01 0.6938893904E-17 0.1387778781E-16 59.50000000 0.3470921913E-01 0.6938893904E-17 0.1387778781E-16 60.00000000 0.3527522746E-01 0.6938893904E-17 0.1387778781E-16 60.50000000 0.3584983234E-01 -0.3469446952E-17 0.6938893904E-17 61.00000000 0.3643382950E-01 0.3469446952E-17 0.000000000 61.50000000 0.3702684386E-01 0.1040834086E-16 0.6938893904E-17 62.00000000 0.3762872583E-01 0.1387778781E-16 0.6938893904E-17 62.50000000 0.3823975601E-01 0.1040834086E-16 0.6938893904E-17 63.00000000 0.3885972196E-01 0.1387778781E-16 0.6938893904E-17 63.50000000 0.3948779882E-01 0.000000000 0.000000000 64.00000000 0.4012358389E-01 0.6938893904E-17 0.1387778781E-16 64.50000000 0.4076761906E-01 0.000000000 0.000000000 65.00000000 0.4142072378E-01 0.3469446952E-17 0.1387778781E-16 65.50000000 0.4208314739E-01 0.6938893904E-17 0.1387778781E-16 66.00000000 0.4275456862E-01 0.3469446952E-17 0.1387778781E-16 66.50000000 0.4343461377E-01 0.000000000 0.000000000 67.00000000 0.4412311350E-01 0.1040834086E-16 0.6938893904E-17 67.50000000 0.4482005035E-01 0.000000000 0.000000000 68.00000000 0.4552537867E-01 0.6938893904E-17 0.6938893904E-17 68.50000000 0.4623896971E-01 0.000000000 0.000000000 69.00000000 0.4696070325E-01 0.000000000 0.000000000 69.50000000 0.4769074276E-01 -0.6938893904E-17 0.6938893904E-17 70.00000000 0.4842960220E-01 -0.6938893904E-17 0.6938893904E-17 70.50000000 0.4917757638E-01 -0.6938893904E-17 0.6938893904E-17 71.00000000 0.4993392237E-01 0.000000000 0.000000000 71.50000000 0.5069711087E-01 0.000000000 0.000000000 72.00000000 0.5146620022E-01 0.000000000 0.000000000 72.50000000 0.5224170029E-01 0.000000000 0.000000000 73.00000000 0.5302444820E-01 0.000000000 0.000000000 73.50000000 0.5381432140E-01 0.000000000 0.000000000 74.00000000 0.5461074947E-01 0.000000000 0.000000000 74.50000000 0.5541400924E-01 0.000000000 0.000000000 75.00000000 0.5622452949E-01 0.000000000 0.000000000 75.50000000 0.5704153438E-01 0.000000000 0.000000000 76.00000000 0.5786348444E-01 0.000000000 0.000000000 76.50000000 0.5869021473E-01 0.000000000 0.000000000 77.00000000 0.5952324942E-01 0.000000000 0.000000000 77.50000000 0.6036351827E-01 0.000000000 0.000000000 78.00000000 0.6121007707E-01 -0.6938893904E-17 0.6938893904E-17 78.50000000 0.6206157102E-01 0.000000000 0.000000000 79.00000000 0.6291802274E-01 0.000000000 0.000000000 79.50000000 0.6378054737E-01 0.000000000 0.000000000 80.00000000 0.6464969874E-01 -0.6938893904E-17 0.6938893904E-17 80.50000000 0.6552513998E-01 0.6938893904E-17 -0.6938893904E-17 81.00000000 0.6640626947E-01 0.000000000 0.000000000 81.50000000 0.6729288598E-01 0.000000000 0.000000000 82.00000000 0.6818518646E-01 -0.6938893904E-17 0.6938893904E-17 82.50000000 0.6908323199E-01 0.000000000 0.000000000 83.00000000 0.6998657401E-01 0.000000000 0.000000000 83.50000000 0.7089452556E-01 0.6938893904E-17 -0.6938893904E-17 84.00000000 0.7180733968E-01 0.000000000 0.000000000 84.50000000 0.7272672139E-01 0.000000000 0.000000000 85.00000000 0.7365429760E-01 0.000000000 0.000000000 85.50000000 0.7458955385E-01 0.000000000 0.000000000 86.00000000 0.7553011111E-01 0.000000000 0.000000000 86.50000000 0.7647425622E-01 -0.6938893904E-17 0.6938893904E-17 87.00000000 0.7742258447E-01 0.000000000 0.000000000 87.50000000 0.7837680307E-01 -0.6938893904E-17 0.6938893904E-17 88.00000000 0.7933740450E-01 -0.6938893904E-17 0.6938893904E-17 88.50000000 0.8030343067E-01 -0.6938893904E-17 0.6938893904E-17 89.00000000 0.8127413863E-01 0.000000000 0.000000000 89.50000000 0.8224996211E-01 -0.6938893904E-17 0.6938893904E-17 90.00000000 0.8323168073E-01 0.000000000 0.000000000 90.50000000 0.8421917665E-01 0.000000000 0.000000000 91.00000000 0.8521145333E-01 0.000000000 0.000000000 91.50000000 0.8620754311E-01 0.000000000 0.000000000 92.00000000 0.8720712801E-01 0.000000000 0.000000000 92.50000000 0.8821059568E-01 0.6938893904E-17 -0.6938893904E-17 93.00000000 0.8921869680E-01 -0.6938893904E-17 0.6938893904E-17 93.50000000 0.9023172812E-01 0.000000000 0.000000000 94.00000000 0.9124882169E-01 0.6938893904E-17 -0.6938893904E-17 94.50000000 0.9226861937E-01 0.000000000 0.000000000 95.00000000 0.9329089521E-01 -0.6938893904E-17 0.6938893904E-17 95.50000000 0.9431661721E-01 0.6938893904E-17 -0.6938893904E-17 96.00000000 0.9534647992E-01 0.000000000 0.000000000 96.50000000 0.9637992686E-01 0.6938893904E-17 -0.6938893904E-17 97.00000000 0.9741634524E-01 -0.6938893904E-17 0.6938893904E-17 97.50000000 0.9845601757E-01 0.000000000 0.000000000 98.00000000 0.9949948557E-01 0.000000000 0.000000000 98.50000000 0.1005466518 0.6938893904E-17 -0.6938893904E-17 99.00000000 0.1015973046 0.6938893904E-17 -0.6938893904E-17 99.50000000 0.1026518012 0.000000000 0.000000000 100.0000000 0.1037108102 0.000000000 0.000000000 100.5000000 0.1047746570 -0.6938893904E-17 0.6938893904E-17 101.0000000 0.1058434283 0.000000000 0.000000000 101.5000000 0.1069172156 0.6938893904E-17 -0.6938893904E-17 102.0000000 0.1079960680 0.000000000 0.000000000 102.5000000 0.1090802337 0.000000000 0.000000000 103.0000000 0.1101701997 0.000000000 0.000000000 103.5000000 0.1112664481 0.000000000 0.000000000 104.0000000 0.1123691158 0.000000000 0.000000000 104.5000000 0.1134784528 0.000000000 0.000000000 105.0000000 0.1145952308 0.000000000 0.000000000 105.5000000 0.1157202492 0.000000000 0.000000000 106.0000000 0.1168534694 0.000000000 0.000000000 106.5000000 0.1179942691 0.000000000 0.000000000 107.0000000 0.1191424392 0.000000000 0.000000000 107.5000000 0.1202983743 0.000000000 0.000000000 108.0000000 0.1214625838 0.000000000 0.000000000 108.5000000 0.1226353491 0.000000000 0.000000000 109.0000000 0.1238168666 0.000000000 0.000000000 109.5000000 0.1250073261 0.000000000 0.000000000 110.0000000 0.1262068488 0.000000000 0.000000000 110.5000000 0.1274156642 0.000000000 0.000000000 111.0000000 0.1286343229 0.6938893904E-17 -0.6938893904E-17 111.5000000 0.1298635284 0.6938893904E-17 -0.6938893904E-17 112.0000000 0.1311036612 0.000000000 0.000000000 112.5000000 0.1323546461 -0.6938893904E-17 0.6938893904E-17 113.0000000 0.1336163192 0.000000000 0.000000000 113.5000000 0.1348889559 0.000000000 0.000000000 114.0000000 0.1361732373 0.000000000 0.000000000 114.5000000 0.1374695460 0.6938893904E-17 -0.6938893904E-17 115.0000000 0.1387776807 0.000000000 0.000000000 115.5000000 0.1400973572 -0.6938893904E-17 0.6938893904E-17 116.0000000 0.1414290253 -0.6938893904E-17 0.6938893904E-17 116.5000000 0.1427734216 -0.6938893904E-17 0.6938893904E-17 117.0000000 0.1441306467 -0.6938893904E-17 0.6938893904E-17 117.5000000 0.1455001669 0.000000000 0.000000000 118.0000000 0.1468817903 0.000000000 0.000000000 118.5000000 0.1482758963 0.000000000 0.000000000 119.0000000 0.1496825197 0.000000000 0.000000000 119.5000000 0.1511010214 0.000000000 0.000000000 120.0000000 0.1525310191 0.000000000 0.000000000 120.5000000 0.1539728277 0.6938893904E-17 -0.6938893904E-17 121.0000000 0.1554267571 0.6938893904E-17 -0.6938893904E-17 121.5000000 0.1568923099 0.000000000 0.000000000 122.0000000 0.1583685047 0.6938893904E-17 -0.6938893904E-17 122.5000000 0.1598546098 0.6938893904E-17 -0.6938893904E-17 123.0000000 0.1613504013 0.000000000 0.000000000 123.5000000 0.1628559715 0.000000000 0.000000000 124.0000000 0.1643714113 0.000000000 0.000000000 124.5000000 0.1658963620 0.6938893904E-17 -0.6938893904E-17 125.0000000 0.1674300911 0.000000000 0.000000000 125.5000000 0.1689722715 0.000000000 0.000000000 126.0000000 0.1705233436 0.000000000 0.000000000 126.5000000 0.1720833543 0.000000000 0.000000000 127.0000000 0.1736511338 0.6938893904E-17 -0.6938893904E-17 127.5000000 0.1752253172 0.6938893904E-17 -0.6938893904E-17 128.0000000 0.1768060917 -0.6938893904E-17 0.3469446952E-17 128.5000000 0.1783946781 0.000000000 0.3469446952E-17 129.0000000 0.1799911487 0.000000000 -0.3469446952E-17 129.5000000 0.1815940602 0.000000000 0.000000000 130.0000000 0.1832024333 0.000000000 0.000000000 130.5000000 0.1848169844 0.000000000 0.000000000 131.0000000 0.1864385886 0.6938893904E-17 -0.6938893904E-17 131.5000000 0.1880667735 0.000000000 0.000000000 132.0000000 0.1897003791 0.000000000 0.000000000 132.5000000 0.1913392393 -0.6938893904E-17 0.6938893904E-17 133.0000000 0.1929842419 0.000000000 -0.3469446952E-17 133.5000000 0.1946360392 0.000000000 0.3469446952E-17 134.0000000 0.1962945825 0.6938893904E-17 -0.6938893904E-17 134.5000000 0.1979596022 0.000000000 -0.3469446952E-17 135.0000000 0.1996310488 0.000000000 0.000000000 135.5000000 0.2013092176 0.000000000 0.000000000 136.0000000 0.2029945196 0.000000000 0.000000000 136.5000000 0.2046872458 -0.6938893904E-17 0.6938893904E-17 137.0000000 0.2063872789 0.000000000 0.000000000 137.5000000 0.2080945325 0.6938893904E-17 -0.6938893904E-17 138.0000000 0.2098094628 0.6938893904E-17 -0.3469446952E-17 138.5000000 0.2115331447 -0.6938893904E-17 0.3469446952E-17 139.0000000 0.2132664298 0.000000000 0.3469446952E-17 139.5000000 0.2150094487 -0.6938893904E-17 0.6938893904E-17 140.0000000 0.2167620041 0.000000000 0.3469446952E-17 140.5000000 0.2185244986 0.6938893904E-17 -0.3469446952E-17 141.0000000 0.2202977122 0.000000000 0.000000000 141.5000000 0.2220818665 0.000000000 0.3469446952E-17 142.0000000 0.2238763219 0.000000000 0.3469446952E-17 142.5000000 0.2256807402 0.000000000 0.000000000 143.0000000 0.2274961028 0.000000000 0.000000000 143.5000000 0.2293236720 0.000000000 -0.3469446952E-17 144.0000000 0.2311636422 0.000000000 -0.3469446952E-17 144.5000000 0.2330154573 0.6938893904E-17 -0.3469446952E-17 145.0000000 0.2348791336 0.000000000 -0.3469446952E-17 145.5000000 0.2367551100 -0.6938893904E-17 0.3469446952E-17 146.0000000 0.2386432328 0.000000000 0.3469446952E-17 146.5000000 0.2405429133 0.6938893904E-17 -0.3469446952E-17 147.0000000 0.2424543800 -0.6938893904E-17 0.6938893904E-17 147.5000000 0.2443784188 0.000000000 0.3469446952E-17 148.0000000 0.2463151397 0.000000000 0.3469446952E-17 148.5000000 0.2482639135 0.000000000 -0.3469446952E-17 149.0000000 0.2502246858 0.000000000 -0.3469446952E-17 149.5000000 0.2521981205 0.000000000 0.3469446952E-17 150.0000000 0.2541843724 0.6938893904E-17 -0.6938893904E-17 150.5000000 0.2561826632 -0.6938893904E-17 0.3469446952E-17 151.0000000 0.2581923037 0.000000000 -0.3469446952E-17 151.5000000 0.2602133073 0.6938893904E-17 -0.3469446952E-17 152.0000000 0.2622457406 0.000000000 -0.3469446952E-17 152.5000000 0.2642893419 0.000000000 0.3469446952E-17 153.0000000 0.2663436402 0.000000000 0.3469446952E-17 153.5000000 0.2684079881 -0.6938893904E-17 0.3469446952E-17 154.0000000 0.2704820478 0.000000000 0.000000000 154.5000000 0.2725665294 0.000000000 0.3469446952E-17 155.0000000 0.2746627490 0.000000000 -0.3469446952E-17 155.5000000 0.2767707109 0.6938893904E-17 -0.3469446952E-17 156.0000000 0.2788885665 0.000000000 -0.3469446952E-17 156.5000000 0.2810145836 0.000000000 0.3469446952E-17 157.0000000 0.2831490778 0.000000000 -0.3469446952E-17 157.5000000 0.2852936995 0.000000000 0.3469446952E-17 158.0000000 0.2874495114 0.000000000 -0.3469446952E-17 158.5000000 0.2896164018 0.000000000 0.3469446952E-17 159.0000000 0.2917938667 0.000000000 -0.3469446952E-17 159.5000000 0.2939819472 -0.6938893904E-17 0.3469446952E-17 160.0000000 0.2961814341 0.000000000 -0.3469446952E-17 160.5000000 0.2983932391 0.6938893904E-17 -0.6938893904E-17 161.0000000 0.3006174945 0.000000000 0.3469446952E-17 161.5000000 0.3028537787 0.000000000 0.3469446952E-17 162.0000000 0.3051022624 -0.6938893904E-17 0.3469446952E-17 162.5000000 0.3073643239 0.000000000 -0.3469446952E-17 163.0000000 0.3096411918 0.6938893904E-17 -0.3469446952E-17 163.5000000 0.3119328083 0.000000000 0.3469446952E-17 164.0000000 0.3142385646 0.000000000 -0.3469446952E-17 164.5000000 0.3165588416 0.000000000 -0.3469446952E-17 165.0000000 0.3188952387 0.000000000 -0.3469446952E-17 165.5000000 0.3212492858 0.000000000 -0.3469446952E-17 166.0000000 0.3236213246 0.000000000 -0.3469446952E-17 166.5000000 0.3260109669 0.000000000 -0.3469446952E-17 167.0000000 0.3284182940 0.000000000 -0.3469446952E-17 167.5000000 0.3308440703 0.000000000 0.000000000 168.0000000 0.3332888333 0.1387778781E-16 0.3469446952E-17 168.5000000 0.3357526462 0.1387778781E-16 0.6938893904E-17 169.0000000 0.3382360444 0.000000000 0.3469446952E-17 169.5000000 0.3407401206 0.000000000 -0.3469446952E-17 170.0000000 0.3432651519 0.1387778781E-16 0.6938893904E-17 170.5000000 0.3458101623 0.1387778781E-16 0.6938893904E-17 171.0000000 0.3483745552 0.1387778781E-16 0.5204170428E-17 171.5000000 0.3509592346 0.000000000 -0.3469446952E-17 172.0000000 0.3535653732 0.1387778781E-16 0.3469446952E-17 172.5000000 0.3561931067 0.000000000 0.1734723476E-17 173.0000000 0.3588421382 0.000000000 0.000000000 173.5000000 0.3615127709 0.1387778781E-16 0.6938893904E-17 174.0000000 0.3642055043 0.1387778781E-16 0.6938893904E-17 174.5000000 0.3669203535 0.1387778781E-16 0.1040834086E-16 175.0000000 0.3696571143 0.000000000 0.3469446952E-17 175.5000000 0.3724161206 0.1387778781E-16 0.3469446952E-17 176.0000000 0.3751982586 0.000000000 0.000000000 176.5000000 0.3780042805 0.1387778781E-16 0.8673617380E-17 177.0000000 0.3808341770 0.1387778781E-16 0.3469446952E-17 177.5000000 0.3836871302 0.000000000 0.3469446952E-17 178.0000000 0.3865626156 0.000000000 0.000000000 178.5000000 0.3894613399 0.000000000 0.3469446952E-17 179.0000000 0.3923842662 0.1387778781E-16 0.3469446952E-17 179.5000000 0.3953310179 0.000000000 0.3469446952E-17 180.0000000 0.3983003731 0.1387778781E-16 0.5204170428E-17 180.5000000 0.4012921445 0.000000000 -0.3469446952E-17 181.0000000 0.4043068972 0.000000000 -0.1734723476E-17 181.5000000 0.4073441475 0.000000000 0.1040834086E-16 182.0000000 0.4104024151 0.000000000 0.000000000 182.5000000 0.4134812422 0.1387778781E-16 0.1040834086E-16 183.0000000 0.4165814151 0.1387778781E-16 0.5204170428E-17 183.5000000 0.4197033918 0.000000000 -0.1734723476E-17 184.0000000 0.4228467246 0.000000000 0.000000000 184.5000000 0.4260107142 0.000000000 -0.1734723476E-17 185.0000000 0.4291944763 0.000000000 -0.1734723476E-17 185.5000000 0.4323968784 0.1387778781E-16 0.6938893904E-17 186.0000000 0.4356172669 0.000000000 0.1040834086E-16 186.5000000 0.4388558891 0.000000000 0.000000000 187.0000000 0.4421127769 0.000000000 -0.1734723476E-17 187.5000000 0.4453866497 0.1387778781E-16 0.5204170428E-17 188.0000000 0.4486761144 0.1387778781E-16 -0.3469446952E-17 188.5000000 0.4519809663 0.000000000 -0.1734723476E-17 189.0000000 0.4553018587 0.1387778781E-16 0.4336808690E-17 189.5000000 0.4586385844 0.1387778781E-16 0.7806255642E-17 190.0000000 0.4619899403 0.000000000 -0.2602085214E-17 190.5000000 0.4653551285 0.1387778781E-16 0.7806255642E-17 191.0000000 0.4687344288 0.1387778781E-16 0.7806255642E-17 191.5000000 0.4721280909 0.1387778781E-16 0.6938893904E-17 192.0000000 0.4755353393 0.1387778781E-16 0.9540979118E-17 192.5000000 0.4789549893 0.000000000 -0.8673617380E-18 193.0000000 0.4823868070 0.1387778781E-16 0.4336808690E-17 193.5000000 0.4858316507 0.1387778781E-16 0.6071532166E-17 194.0000000 0.4892901652 0.000000000 0.3469446952E-17 194.5000000 0.4927618023 0.1387778781E-16 0.7806255642E-17 195.0000000 0.4962454721 0.000000000 0.8673617380E-18 195.5000000 0.4997408204 0.000000000 0.000000000 196.0000000 0.5032482451 0.1387778781E-16 0.6071532166E-17 196.5000000 0.5067679958 0.1387778781E-16 0.9540979118E-17 197.0000000 0.5102999032 0.1387778781E-16 0.9540979118E-17 197.5000000 0.5138443333 0.1387778781E-16 0.7806255642E-17 198.0000000 0.5174020523 0.1387778781E-16 0.6071532166E-17 198.5000000 0.5209732662 0.1387778781E-16 0.8673617380E-17 199.0000000 0.5245574253 0.000000000 -0.2602085214E-17 199.5000000 0.5281546206 0.1387778781E-16 0.3469446952E-17 200.0000000 0.5317657571 0.1387778781E-16 0.1127570259E-16 200.5000000 0.5353912652 0.1387778781E-16 0.6938893904E-17 201.0000000 0.5390308086 0.000000000 0.1734723476E-17 201.5000000 0.5426845477 0.1387778781E-16 0.1040834086E-16 202.0000000 0.5463535568 0.000000000 0.2168404345E-17 202.5000000 0.5500383769 0.1387778781E-16 0.8239936511E-17 203.0000000 0.5537384980 0.000000000 0.4336808690E-18 203.5000000 0.5574538095 0.1387778781E-16 0.6505213035E-17 204.0000000 0.5611852142 0.000000000 0.2602085214E-17 204.5000000 0.5649333173 0.1387778781E-16 0.3035766083E-17 205.0000000 0.5686976564 0.1387778781E-16 0.8239936511E-17 205.5000000 0.5724778672 0.000000000 -0.1301042607E-17 206.0000000 0.5762746737 0.1387778781E-16 0.1084202172E-16 206.5000000 0.5800890727 0.1387778781E-16 0.7806255642E-17 207.0000000 0.5839214406 0.1387778781E-16 0.8673617380E-17 207.5000000 0.5877716420 0.1387778781E-16 0.6505213035E-17 208.0000000 0.5916397217 0.1387778781E-16 0.6938893904E-17 208.5000000 0.5955262011 0.1387778781E-16 0.6071532166E-17 209.0000000 0.5994319270 0.1387778781E-16 0.1734723476E-17 209.5000000 0.6033577127 0.1387778781E-16 0.1019150042E-16 210.0000000 0.6073040426 0.1387778781E-16 0.1951563910E-17 210.5000000 0.6112710270 0.000000000 -0.4336808690E-18 211.0000000 0.6152587021 0.1387778781E-16 0.2818925648E-17 211.5000000 0.6192676556 0.1387778781E-16 0.5637851297E-17 212.0000000 0.6232992042 0.1387778781E-16 0.9540979118E-17 212.5000000 0.6273544969 0.1387778781E-16 0.9974659987E-17 213.0000000 0.6314337643 0.1387778781E-16 0.1149254303E-16 213.5000000 0.6355369901 0.1387778781E-16 0.6288372600E-17 214.0000000 0.6396650384 0.1387778781E-16 0.7264154556E-17 214.5000000 0.6438187510 0.000000000 0.7589415207E-18 215.0000000 0.6479981865 0.1387778781E-16 0.6830473687E-17 215.5000000 0.6522035576 0.1387778781E-16 0.4336808690E-17 216.0000000 0.6564356750 0.1387778781E-16 0.1051676107E-16 216.5000000 0.6606945623 0.1387778781E-16 0.3523657061E-17 217.0000000 0.6649797767 0.1387778781E-16 0.9703609444E-17 217.5000000 0.6692920830 0.000000000 -0.1111307227E-17 218.0000000 0.6736324510 0.000000000 -0.5421010862E-19 218.5000000 0.6779998443 0.1387778781E-16 0.7897735200E-17 219.0000000 0.6823926316 0.1387778781E-16 0.4743384505E-17 219.5000000 0.6868112135 0.1387778781E-16 0.3903127821E-17 220.0000000 0.6912565552 0.1387778781E-16 0.1116728238E-16 220.5000000 0.6957273247 0.1387778781E-16 0.2385244779E-17 221.0000000 0.7002211955 0.1387778781E-16 0.8998878032E-17 221.5000000 0.7047376387 0.1387778781E-16 0.1116728238E-16 222.0000000 0.7092765551 0.000000000 0.7589415207E-18 222.5000000 0.7138365558 0.1387778781E-16 0.7697835425E-17 223.0000000 0.7184164357 0.1387778781E-16 0.2493664997E-17 223.5000000 0.7230156530 0.1387778781E-16 0.5637851297E-17 224.0000000 0.7276322269 0.1387778781E-16 0.4119968255E-17 224.5000000 0.7322630264 0.1387778781E-16 0.2168404345E-17 225.0000000 0.7369072350 0.1387778781E-16 0.6938893904E-17 225.5000000 0.7415656133 0.1387778781E-16 0.3035766083E-17 226.0000000 0.7462362662 0.1387778781E-16 0.9107298249E-17 226.5000000 0.7509155655 0.1387778781E-16 0.8239936511E-17 227.0000000 0.7556028309 0.1387778781E-16 0.1279358564E-16 227.5000000 0.7602993094 0.1387778781E-16 0.1734723476E-17 228.0000000 0.7650035308 0.1387778781E-16 0.8890457814E-17 228.5000000 0.7697117994 0.1387778781E-16 -0.4336808690E-18 229.0000000 0.7744224097 0.1387778781E-16 0.1192622390E-16 229.5000000 0.7791358369 0.1387778781E-16 0.6722053469E-17 230.0000000 0.7838522354 0.1387778781E-16 0.1322726650E-16 230.5000000 0.7885707869 0.1387778781E-16 0.6505213035E-17 231.0000000 0.7932903928 0.1387778781E-16 0.1301042607E-17 231.5000000 0.7980098821 0.1387778781E-16 0.8456776945E-17 232.0000000 0.8027283243 0.1387778781E-16 0.8890457814E-17 232.5000000 0.8074454849 0.1387778781E-16 0.9324138683E-17 233.0000000 0.8121615103 0.1387778781E-16 0.5421010862E-17 233.5000000 0.8168766312 0.1387778781E-16 0.1170938346E-16 234.0000000 0.8215909719 0.1387778781E-16 0.3903127821E-17 234.5000000 0.8263043012 0.1387778781E-16 0.5204170428E-17 235.0000000 0.8310157544 0.1387778781E-16 0.1344410694E-16 235.5000000 0.8357248475 0.1387778781E-16 0.8673617380E-17 236.0000000 0.8404328251 0.1387778781E-16 0.7806255642E-17 236.5000000 0.8451416857 0.1387778781E-16 0.2255140519E-16 237.0000000 0.8498519572 0.1387778781E-16 0.1734723476E-16 237.5000000 0.8545629939 0.1387778781E-16 0.8673617380E-17 238.0000000 0.8592750100 0.1387778781E-16 0.6071532166E-17 238.5000000 0.8639888295 0.1387778781E-16 0.6505213035E-17 239.0000000 0.8687047025 0.000000000 0.000000000 239.5000000 0.8734229644 0.1387778781E-16 0.6938893904E-17 240.0000000 0.8781444294 0.1387778781E-16 0.8673617380E-17 240.5000000 0.8828697158 0.1387778781E-16 0.1647987302E-16 241.0000000 0.8875991980 0.1387778781E-16 0.3903127821E-17 241.5000000 0.8923333114 0.1387778781E-16 0.1604619215E-16 242.0000000 0.8970723456 0.1387778781E-16 0.1821459650E-16 242.5000000 0.9018171371 0.1387778781E-16 0.2125036258E-16 243.0000000 0.9065688497 0.1387778781E-16 0.2602085214E-16 243.5000000 0.9113274614 0.1387778781E-16 0.1734723476E-16 244.0000000 0.9160926004 0.2775557562E-16 0.2732189475E-16 244.5000000 0.9208657803 0.1387778781E-16 0.2558717127E-16 245.0000000 0.9256494053 0.1387778781E-16 0.1517883041E-16 245.5000000 0.9304439124 0.1387778781E-16 0.1908195824E-16 246.0000000 0.9352485497 0.2775557562E-16 0.2818925648E-16 246.5000000 0.9400642363 0.1387778781E-16 0.2688821388E-16 247.0000000 0.9448933908 0.1387778781E-16 0.2125036258E-16 247.5000000 0.9497370550 0.1387778781E-16 0.1951563910E-16 248.0000000 0.9545948090 0.1387778781E-16 0.1561251128E-16 248.5000000 0.9594676447 0.1387778781E-16 0.2341876693E-16 249.0000000 0.9643578224 0.1387778781E-16 0.1864827737E-16 249.5000000 0.9692657959 0.1387778781E-16 0.2168404345E-16 250.0000000 0.9741908752 0.2775557562E-16 0.2667137344E-16 250.5000000 0.9791336499 0.1387778781E-16 0.2298508606E-16 251.0000000 0.9840939633 0.2775557562E-16 0.2732189475E-16 251.5000000 0.9890697607 0.1387778781E-16 0.1647987302E-16 252.0000000 0.9940609774 0.2775557562E-16 0.2753873518E-16 252.5000000 0.9990698852 0.2775557562E-16 0.2818925648E-16 253.0000000 1.004095930 0.2775557562E-16 0.2862293735E-16 253.5000000 1.009135346 0.2775557562E-16 0.2862293735E-16 254.0000000 1.014185922 0.1387778781E-16 0.2081668171E-16 254.5000000 1.019247475 0.1387778781E-16 0.2276824562E-16 255.0000000 1.024318482 0.1387778781E-16 0.1734723476E-16 255.5000000 1.029396031 0.1387778781E-16 0.1843143693E-16 256.0000000 1.034477987 0.1387778781E-16 0.2081668171E-16 256.5000000 1.039562416 0.1387778781E-16 0.2580401171E-16 257.0000000 1.044646325 0.1387778781E-16 0.2558717127E-16 257.5000000 1.049726670 0.1387778781E-16 0.1821459650E-16 258.0000000 1.054801145 0.2775557562E-16 0.2808083627E-16 258.5000000 1.059867109 0.1387778781E-16 0.1626303259E-16 259.0000000 1.064921047 0.1387778781E-16 0.2569559149E-16 259.5000000 1.069959795 0.1387778781E-16 0.1658829324E-16 260.0000000 1.074981107 0.2775557562E-16 0.2699663409E-16 260.5000000 1.079982805 0.2775557562E-16 0.2667137344E-16 261.0000000 1.084961610 0.1387778781E-16 0.2309350627E-16 261.5000000 1.089914055 0.1387778781E-16 0.1810617628E-16 262.0000000 1.094838664 0.2775557562E-16 0.2970713953E-16 262.5000000 1.099735099 0.1387778781E-16 0.1761828530E-16 263.0000000 1.104601062 0.1387778781E-16 0.1784867826E-16 263.5000000 1.109432863 0.2775557562E-16 0.2923957734E-16 264.0000000 1.114229283 0.1387778781E-16 0.2512638535E-16 264.5000000 1.118991124 0.1387778781E-16 0.2146720302E-16 265.0000000 1.123717958 0.2775557562E-16 0.2683400377E-16 265.5000000 1.128408923 0.1387778781E-16 0.1718460443E-16 266.0000000 1.133064861 0.2775557562E-16 0.2786399583E-16 266.5000000 1.137687170 0.1387778781E-16 0.2287666584E-16 267.0000000 1.142276461 0.1387778781E-16 0.2482822975E-16 267.5000000 1.146833260 0.1387778781E-16 0.1788933585E-16 268.0000000 1.151358969 0.2775557562E-16 0.2797241605E-16 268.5000000 1.155856434 0.1387778781E-16 0.1843143693E-16 269.0000000 1.160328865 0.1387778781E-16 0.1713039433E-16 269.5000000 1.164778180 0.1387778781E-16 0.2125036258E-16 270.0000000 1.169205665 0.2775557562E-16 0.2537033084E-16 270.5000000 1.173613734 0.1387778781E-16 0.1691355389E-16 271.0000000 1.178005926 0.2775557562E-16 0.2797241605E-16 271.5000000 1.182385508 0.2775557562E-16 0.2623769257E-16 272.0000000 1.186754409 0.2775557562E-16 0.2732189475E-16 272.5000000 1.191114016 0.1387778781E-16 0.2081668171E-16 273.0000000 1.195466625 0.1387778781E-16 0.1908195824E-16 273.5000000 1.199814789 0.1387778781E-16 0.1864827737E-16 274.0000000 1.204160484 0.1387778781E-16 0.1908195824E-16 274.5000000 1.208505789 0.1387778781E-16 0.2385244779E-16 275.0000000 1.212853358 0.2775557562E-16 0.2992397996E-16 275.5000000 1.217205712 0.1387778781E-16 0.1778091563E-16 276.0000000 1.221564603 0.2775557562E-16 0.2992397996E-16 276.5000000 1.225930625 0.2775557562E-16 0.2818925648E-16 277.0000000 1.230304753 0.2775557562E-16 0.3079134170E-16 277.5000000 1.234689790 0.2775557562E-16 0.2645453301E-16 278.0000000 1.239087448 0.2775557562E-16 0.2905661822E-16 278.5000000 1.243497382 0.5551115123E-16 0.3989863995E-16 279.0000000 1.247920722 0.4857225733E-16 0.4597017211E-16 279.5000000 1.252359969 0.5551115123E-16 0.3903127821E-16 280.0000000 1.256815375 0.4857225733E-16 0.4857225733E-16 280.5000000 1.261286087 0.4163336342E-16 0.4943961907E-16 281.0000000 1.265773007 0.4857225733E-16 0.4683753385E-16 281.5000000 1.270277289 0.4857225733E-16 0.4857225733E-16 282.0000000 1.274798304 0.4163336342E-16 0.3816391647E-16 282.5000000 1.279334835 0.4857225733E-16 0.4510281038E-16 283.0000000 1.283886913 0.4857225733E-16 0.4336808690E-16 283.5000000 1.288454978 0.4857225733E-16 0.4683753385E-16 284.0000000 1.293037829 0.4163336342E-16 0.5030698080E-16 284.5000000 1.297632930 0.5551115123E-16 0.5551115123E-16 285.0000000 1.302238614 0.5551115123E-16 0.5377642776E-16 285.5000000 1.306853804 0.5551115123E-16 0.5551115123E-16 286.0000000 1.311475502 0.4857225733E-16 0.4423544864E-16 286.5000000 1.316099461 0.4857225733E-16 0.4683753385E-16 287.0000000 1.320722998 0.4857225733E-16 0.4683753385E-16 287.5000000 1.325343800 0.4163336342E-16 0.5204170428E-16 288.0000000 1.329957684 0.4163336342E-16 0.5117434254E-16 288.5000000 1.334559989 0.5551115123E-16 0.5204170428E-16 289.0000000 1.339146112 0.4857225733E-16 0.4510281038E-16 289.5000000 1.343711472 0.4857225733E-16 0.4683753385E-16 290.0000000 1.348252613 0.4857225733E-16 0.4163336342E-16 290.5000000 1.352765978 0.4857225733E-16 0.4683753385E-16 291.0000000 1.357246711 0.4163336342E-16 0.3816391647E-16 291.5000000 1.361690700 0.5551115123E-16 0.5551115123E-16 292.0000000 1.366094478 0.4857225733E-16 0.4857225733E-16 292.5000000 1.370453735 0.4857225733E-16 0.5204170428E-16 293.0000000 1.374764554 0.4857225733E-16 0.4163336342E-16 293.5000000 1.379023920 0.4857225733E-16 0.4510281038E-16 294.0000000 1.383229412 0.4857225733E-16 0.4510281038E-16 294.5000000 1.387379297 0.4857225733E-16 0.4336808690E-16 295.0000000 1.391471584 0.5551115123E-16 0.5551115123E-16 295.5000000 1.395504101 0.4857225733E-16 0.4857225733E-16 296.0000000 1.399476826 0.4857225733E-16 0.4683753385E-16 296.5000000 1.403391556 0.4857225733E-16 0.5204170428E-16 297.0000000 1.407249570 0.5551115123E-16 0.5551115123E-16 297.5000000 1.411050984 0.4857225733E-16 0.4163336342E-16 298.0000000 1.414797183 0.4857225733E-16 0.5377642776E-16 298.5000000 1.418491933 0.4857225733E-16 0.4857225733E-16 299.0000000 1.422138306 0.4857225733E-16 0.4510281038E-16 299.5000000 1.425737652 0.4857225733E-16 0.4336808690E-16 300.0000000 1.429292420 0.4857225733E-16 0.5204170428E-16 300.5000000 1.432805943 0.4857225733E-16 0.4510281038E-16 301.0000000 1.436281005 0.4857225733E-16 0.5204170428E-16 301.5000000 1.439721196 0.4857225733E-16 0.4163336342E-16 302.0000000 1.443131165 0.4857225733E-16 0.4163336342E-16 302.5000000 1.446514121 0.4857225733E-16 0.5204170428E-16 303.0000000 1.449871515 0.4857225733E-16 0.4857225733E-16 303.5000000 1.453205749 0.4857225733E-16 0.4163336342E-16 304.0000000 1.456520689 0.4857225733E-16 0.4510281038E-16 304.5000000 1.459818647 0.4857225733E-16 0.4163336342E-16 305.0000000 1.463100845 0.4857225733E-16 0.4510281038E-16 305.5000000 1.466369423 0.5551115123E-16 0.5551115123E-16 306.0000000 1.469625544 0.5551115123E-16 0.5551115123E-16 306.5000000 1.472869438 0.5551115123E-16 0.5551115123E-16 307.0000000 1.476103074 0.5551115123E-16 0.5551115123E-16 307.5000000 1.479327642 0.5551115123E-16 0.5551115123E-16 308.0000000 1.482542145 0.5551115123E-16 0.5551115123E-16 308.5000000 1.485747189 0.5551115123E-16 0.5551115123E-16 309.0000000 1.488944134 0.5551115123E-16 0.5551115123E-16 309.5000000 1.492132596 0.4857225733E-16 0.5898059818E-16 310.0000000 1.495312643 0.5551115123E-16 0.5551115123E-16 310.5000000 1.498483769 0.5551115123E-16 0.5551115123E-16 311.0000000 1.501644262 0.5551115123E-16 0.5551115123E-16 311.5000000 1.504794140 0.5551115123E-16 0.5551115123E-16 312.0000000 1.507932057 0.4857225733E-16 0.5898059818E-16 312.5000000 1.511054754 0.5551115123E-16 0.5551115123E-16 313.0000000 1.514161157 0.5551115123E-16 0.5551115123E-16 313.5000000 1.517248596 0.4857225733E-16 0.5898059818E-16 314.0000000 1.520313667 0.5551115123E-16 0.5551115123E-16 314.5000000 1.523355819 0.5551115123E-16 0.5551115123E-16 315.0000000 1.526371535 0.5551115123E-16 0.5551115123E-16 315.5000000 1.529356824 0.5551115123E-16 0.5551115123E-16 316.0000000 1.532311777 0.4857225733E-16 0.5898059818E-16 316.5000000 1.535234340 0.5551115123E-16 0.5551115123E-16 317.0000000 1.538120278 0.5551115123E-16 0.5551115123E-16 317.5000000 1.540966443 0.4857225733E-16 0.5898059818E-16 318.0000000 1.543770870 0.4857225733E-16 0.5898059818E-16 318.5000000 1.546532244 0.5551115123E-16 0.5551115123E-16 319.0000000 1.549246562 0.5551115123E-16 0.5551115123E-16 319.5000000 1.551911207 0.5551115123E-16 0.5551115123E-16 320.0000000 1.554527815 0.5551115123E-16 0.5551115123E-16 320.5000000 1.557095695 0.5551115123E-16 0.5551115123E-16 321.0000000 1.559614676 0.5551115123E-16 0.5551115123E-16 321.5000000 1.562086242 0.5551115123E-16 0.5204170428E-16 322.0000000 1.564508507 0.5551115123E-16 0.5551115123E-16 322.5000000 1.566881820 0.5551115123E-16 0.5551115123E-16 323.0000000 1.569210601 0.5551115123E-16 0.5551115123E-16 323.5000000 1.571497018 0.5551115123E-16 0.5551115123E-16 324.0000000 1.573741833 0.5551115123E-16 0.5551115123E-16 324.5000000 1.575948284 0.5551115123E-16 0.5898059818E-16 325.0000000 1.578120536 0.5551115123E-16 0.5551115123E-16 325.5000000 1.580259362 0.5551115123E-16 0.5551115123E-16 326.0000000 1.582365312 0.5551115123E-16 0.5551115123E-16 326.5000000 1.584443558 0.5551115123E-16 0.5551115123E-16 327.0000000 1.586497238 0.5551115123E-16 0.5551115123E-16 327.5000000 1.588525484 0.5551115123E-16 0.5551115123E-16 328.0000000 1.590529569 0.5551115123E-16 0.5551115123E-16 328.5000000 1.592512374 0.5898059818E-16 0.5204170428E-16 329.0000000 1.594474018 0.5551115123E-16 0.5551115123E-16 329.5000000 1.596412243 0.5204170428E-16 0.5898059818E-16 330.0000000 1.598326445 0.5204170428E-16 0.5898059818E-16 330.5000000 1.600217105 0.5204170428E-16 0.5898059818E-16 331.0000000 1.602082681 0.5551115123E-16 0.5551115123E-16 331.5000000 1.603921456 0.5204170428E-16 0.5898059818E-16 332.0000000 1.605732025 0.5551115123E-16 0.5551115123E-16 332.5000000 1.607512330 0.5551115123E-16 0.5551115123E-16 333.0000000 1.609260746 0.5898059818E-16 0.5204170428E-16 333.5000000 1.610975302 0.5551115123E-16 0.5551115123E-16 334.0000000 1.612653445 0.5898059818E-16 0.5204170428E-16 334.5000000 1.614293745 0.5898059818E-16 0.5204170428E-16 335.0000000 1.615896224 0.5551115123E-16 0.5551115123E-16 335.5000000 1.617460048 0.5551115123E-16 0.5551115123E-16 336.0000000 1.618984105 0.5551115123E-16 0.5551115123E-16 336.5000000 1.620469317 0.5551115123E-16 0.5551115123E-16 337.0000000 1.621916001 0.5551115123E-16 0.5551115123E-16 337.5000000 1.623322319 0.5551115123E-16 0.5551115123E-16 338.0000000 1.624687006 0.5551115123E-16 0.5551115123E-16 338.5000000 1.626010216 0.5898059818E-16 0.5204170428E-16 339.0000000 1.627292258 0.5551115123E-16 0.5551115123E-16 339.5000000 1.628532243 0.5551115123E-16 0.5551115123E-16 340.0000000 1.629729536 0.5551115123E-16 0.5551115123E-16 340.5000000 1.630883937 0.5551115123E-16 0.5551115123E-16 341.0000000 1.631993304 0.5551115123E-16 0.5551115123E-16 341.5000000 1.633055442 0.5898059818E-16 0.5204170428E-16 342.0000000 1.634069980 0.5551115123E-16 0.5551115123E-16 342.5000000 1.635036015 0.5551115123E-16 0.5551115123E-16 343.0000000 1.635952185 0.5551115123E-16 0.5551115123E-16 343.5000000 1.636819559 0.5551115123E-16 0.5551115123E-16 344.0000000 1.637638735 0.5551115123E-16 0.5551115123E-16 344.5000000 1.638406629 0.5898059818E-16 0.5204170428E-16 345.0000000 1.639122985 0.5898059818E-16 0.5204170428E-16 345.5000000 1.639792688 0.5551115123E-16 0.5551115123E-16 346.0000000 1.640418892 0.5898059818E-16 0.5204170428E-16 346.5000000 1.641003306 0.5204170428E-16 0.5898059818E-16 347.0000000 1.641551226 0.5551115123E-16 0.5551115123E-16 347.5000000 1.642068150 0.5551115123E-16 0.5551115123E-16 348.0000000 1.642556173 0.5551115123E-16 0.5551115123E-16 348.5000000 1.643018072 0.5551115123E-16 0.5551115123E-16 349.0000000 1.643457609 0.5551115123E-16 0.5551115123E-16 349.5000000 1.643876797 0.5204170428E-16 0.5898059818E-16 350.0000000 1.644277794 0.5898059818E-16 0.5204170428E-16 350.5000000 1.644661305 0.5551115123E-16 0.5551115123E-16 351.0000000 1.645027196 0.5898059818E-16 0.5204170428E-16 351.5000000 1.645375976 0.5551115123E-16 0.5551115123E-16 352.0000000 1.645705698 0.5551115123E-16 0.5551115123E-16 352.5000000 1.646014844 0.5204170428E-16 0.5898059818E-16 353.0000000 1.646300627 0.5551115123E-16 0.5551115123E-16 353.5000000 1.646556957 0.5898059818E-16 0.5204170428E-16 354.0000000 1.646780925 0.5551115123E-16 0.5551115123E-16 354.5000000 1.646968083 0.5204170428E-16 0.5898059818E-16 355.0000000 1.647111815 0.5551115123E-16 0.5551115123E-16 355.5000000 1.647208321 0.5551115123E-16 0.5551115123E-16 356.0000000 1.647251244 0.5204170428E-16 0.5898059818E-16 356.5000000 1.647235003 0.5898059818E-16 0.5204170428E-16 357.0000000 1.647157425 0.5551115123E-16 0.5551115123E-16 357.5000000 1.647015124 0.5551115123E-16 0.5551115123E-16 358.0000000 1.646804524 0.5204170428E-16 0.5898059818E-16 358.5000000 1.646525063 0.5551115123E-16 0.5551115123E-16 359.0000000 1.646177288 0.5898059818E-16 0.5204170428E-16 359.5000000 1.645758703 0.5204170428E-16 0.5898059818E-16 360.0000000 1.645269903 0.5551115123E-16 0.5551115123E-16 360.5000000 1.644713091 0.5898059818E-16 0.5204170428E-16 361.0000000 1.644089665 0.5551115123E-16 0.5551115123E-16 361.5000000 1.643403247 0.5551115123E-16 0.5551115123E-16 362.0000000 1.642656850 0.5898059818E-16 0.5204170428E-16 362.5000000 1.641854103 0.5204170428E-16 0.5898059818E-16 363.0000000 1.640998263 0.5898059818E-16 0.5204170428E-16 363.5000000 1.640092331 0.5898059818E-16 0.5204170428E-16 364.0000000 1.639140875 0.5551115123E-16 0.5551115123E-16 364.5000000 1.638149444 0.5551115123E-16 0.5551115123E-16 365.0000000 1.637120368 0.5898059818E-16 0.5204170428E-16 365.5000000 1.636055072 0.5551115123E-16 0.5551115123E-16 366.0000000 1.634958552 0.5551115123E-16 0.5551115123E-16 366.5000000 1.633833633 0.5204170428E-16 0.5898059818E-16 367.0000000 1.632681995 0.5898059818E-16 0.5204170428E-16 367.5000000 1.631507767 0.5551115123E-16 0.5551115123E-16 368.0000000 1.630312947 0.5551115123E-16 0.5551115123E-16 368.5000000 1.629098751 0.5551115123E-16 0.5551115123E-16 369.0000000 1.627866747 0.5551115123E-16 0.5551115123E-16 369.5000000 1.626616663 0.5551115123E-16 0.5551115123E-16 370.0000000 1.625350196 0.5204170428E-16 0.5898059818E-16 370.5000000 1.624068143 0.5551115123E-16 0.5551115123E-16 371.0000000 1.622771857 0.5898059818E-16 0.5204170428E-16 371.5000000 1.621460776 0.5898059818E-16 0.5204170428E-16 372.0000000 1.620131598 0.5551115123E-16 0.5551115123E-16 372.5000000 1.618786928 0.5551115123E-16 0.5551115123E-16 373.0000000 1.617429036 0.5551115123E-16 0.5551115123E-16 373.5000000 1.616055355 0.5898059818E-16 0.5204170428E-16 374.0000000 1.614663989 0.5551115123E-16 0.5551115123E-16 374.5000000 1.613252327 0.5551115123E-16 0.5551115123E-16 375.0000000 1.611818985 0.5204170428E-16 0.5898059818E-16 375.5000000 1.610362058 0.5551115123E-16 0.5551115123E-16 376.0000000 1.608876055 0.5551115123E-16 0.5551115123E-16 376.5000000 1.607358211 0.5551115123E-16 0.5551115123E-16 377.0000000 1.605804481 0.5898059818E-16 0.5204170428E-16 377.5000000 1.604208500 0.5551115123E-16 0.5551115123E-16 378.0000000 1.602564231 0.5204170428E-16 0.5898059818E-16 378.5000000 1.600867672 0.5551115123E-16 0.5551115123E-16 379.0000000 1.599111162 0.5551115123E-16 0.5551115123E-16 379.5000000 1.597288094 0.5898059818E-16 0.5204170428E-16 380.0000000 1.595393885 0.5204170428E-16 0.5898059818E-16 380.5000000 1.593420778 0.5551115123E-16 0.5551115123E-16 381.0000000 1.591363573 0.5204170428E-16 0.5898059818E-16 381.5000000 1.589216343 0.5551115123E-16 0.5551115123E-16 382.0000000 1.586972079 0.5898059818E-16 0.5204170428E-16 382.5000000 1.584628771 0.5551115123E-16 0.5551115123E-16 383.0000000 1.582183330 0.5204170428E-16 0.5898059818E-16 383.5000000 1.579630327 0.5204170428E-16 0.5898059818E-16 384.0000000 1.576972276 0.5898059818E-16 0.5204170428E-16 384.5000000 1.574208463 0.5204170428E-16 0.5898059818E-16 385.0000000 1.571336961 0.5551115123E-16 0.5551115123E-16 385.5000000 1.568361818 0.5551115123E-16 0.5551115123E-16 386.0000000 1.565284991 0.5898059818E-16 0.5204170428E-16 386.5000000 1.562107087 0.5898059818E-16 0.5204170428E-16 387.0000000 1.558829942 0.5551115123E-16 0.5551115123E-16 387.5000000 1.555453203 0.5204170428E-16 0.5898059818E-16 388.0000000 1.551975367 0.5204170428E-16 0.5898059818E-16 388.5000000 1.548396237 0.5551115123E-16 0.5551115123E-16 389.0000000 1.544713359 0.5898059818E-16 0.5204170428E-16 389.5000000 1.540925012 0.5551115123E-16 0.5551115123E-16 390.0000000 1.537029827 0.5551115123E-16 0.5551115123E-16 390.5000000 1.533026725 0.5898059818E-16 0.5204170428E-16 391.0000000 1.528919370 0.5551115123E-16 0.5551115123E-16 391.5000000 1.524708041 0.5551115123E-16 0.5551115123E-16 392.0000000 1.520395778 0.5551115123E-16 0.5551115123E-16 392.5000000 1.515991651 0.5551115123E-16 0.5551115123E-16 393.0000000 1.511501029 0.5898059818E-16 0.5204170428E-16 393.5000000 1.506932546 0.5898059818E-16 0.5204170428E-16 394.0000000 1.502296656 0.5551115123E-16 0.5551115123E-16 394.5000000 1.497599241 0.5551115123E-16 0.5551115123E-16 395.0000000 1.492848513 0.5898059818E-16 0.5204170428E-16 395.5000000 1.488051518 0.5898059818E-16 0.5204170428E-16 396.0000000 1.483214205 0.5551115123E-16 0.5724587471E-16 396.5000000 1.478339807 0.5204170428E-16 0.5724587471E-16 397.0000000 1.473431483 0.5898059818E-16 0.5204170428E-16 397.5000000 1.468493100 0.4510281038E-16 0.4683753385E-16 398.0000000 1.463526395 0.4857225733E-16 0.4683753385E-16 398.5000000 1.458528891 0.4510281038E-16 0.4683753385E-16 399.0000000 1.453502843 0.4857225733E-16 0.4683753385E-16 399.5000000 1.448449960 0.4857225733E-16 0.5030698080E-16 400.0000000 1.443370507 0.5204170428E-16 0.4857225733E-16 400.5000000 1.438262939 0.4857225733E-16 0.4683753385E-16 401.0000000 1.433126526 0.4857225733E-16 0.4683753385E-16 401.5000000 1.427960142 0.4857225733E-16 0.5204170428E-16 402.0000000 1.422761488 0.4857225733E-16 0.4683753385E-16 402.5000000 1.417528634 0.5204170428E-16 0.5030698080E-16 403.0000000 1.412262155 0.4857225733E-16 0.4683753385E-16 403.5000000 1.406962398 0.4510281038E-16 0.4683753385E-16 404.0000000 1.401630433 0.4857225733E-16 0.4683753385E-16 404.5000000 1.396270604 0.5204170428E-16 0.5030698080E-16 405.0000000 1.390887768 0.4857225733E-16 0.4683753385E-16 405.5000000 1.385486110 0.4857225733E-16 0.4683753385E-16 406.0000000 1.380065448 0.4857225733E-16 0.4683753385E-16 406.5000000 1.374629486 0.4857225733E-16 0.4683753385E-16 407.0000000 1.369178166 0.4857225733E-16 0.4683753385E-16 407.5000000 1.363705232 0.4510281038E-16 0.4857225733E-16 408.0000000 1.358202993 0.4857225733E-16 0.5030698080E-16 408.5000000 1.352661651 0.4857225733E-16 0.4510281038E-16 409.0000000 1.347069763 0.4163336342E-16 0.4163336342E-16 409.5000000 1.341417552 0.4163336342E-16 0.4163336342E-16 410.0000000 1.335691893 0.4163336342E-16 0.4163336342E-16 410.5000000 1.329881996 0.4163336342E-16 0.4336808690E-16 411.0000000 1.323980034 0.4163336342E-16 0.4336808690E-16 411.5000000 1.317976522 0.4510281038E-16 0.3989863995E-16 412.0000000 1.311865094 0.4163336342E-16 0.4163336342E-16 412.5000000 1.305639913 0.4163336342E-16 0.4336808690E-16 413.0000000 1.299297237 0.4510281038E-16 0.3989863995E-16 413.5000000 1.292831557 0.3816391647E-16 0.4336808690E-16 414.0000000 1.286240523 0.4163336342E-16 0.4163336342E-16 414.5000000 1.279520903 0.4163336342E-16 0.4163336342E-16 415.0000000 1.272670623 0.3816391647E-16 0.4336808690E-16 415.5000000 1.265688586 0.4510281038E-16 0.3989863995E-16 416.0000000 1.258573581 0.4510281038E-16 0.3989863995E-16 416.5000000 1.251331285 0.3816391647E-16 0.4336808690E-16 417.0000000 1.243967159 0.4163336342E-16 0.4336808690E-16 417.5000000 1.236489074 0.4163336342E-16 0.4163336342E-16 418.0000000 1.228906923 0.4510281038E-16 0.3989863995E-16 418.5000000 1.221232440 0.4163336342E-16 0.4163336342E-16 419.0000000 1.213477144 0.4163336342E-16 0.4163336342E-16 419.5000000 1.205647168 0.4163336342E-16 0.3989863995E-16 420.0000000 1.197748986 0.4163336342E-16 0.4163336342E-16 420.5000000 1.189787414 0.3469446952E-16 0.3469446952E-16 421.0000000 1.181763817 0.3469446952E-16 0.3642919300E-16 421.5000000 1.173676448 0.3122502257E-16 0.3295974604E-16 422.0000000 1.165520516 0.3469446952E-16 0.3295974604E-16 422.5000000 1.157294115 0.3469446952E-16 0.3469446952E-16 423.0000000 1.148995390 0.3122502257E-16 0.3295974604E-16 423.5000000 1.140626738 0.3122502257E-16 0.3382710778E-16 424.0000000 1.132187109 0.3122502257E-16 0.3295974604E-16 424.5000000 1.123680047 0.2775557562E-16 0.2775557562E-16 425.0000000 1.115108870 0.3122502257E-16 0.3122502257E-16 425.5000000 1.106472941 0.3122502257E-16 0.3209238431E-16 426.0000000 1.097772297 0.3122502257E-16 0.3295974604E-16 426.5000000 1.089003824 0.3122502257E-16 0.3382710778E-16 427.0000000 1.080166286 0.3122502257E-16 0.3295974604E-16 427.5000000 1.071254293 0.3122502257E-16 0.3382710778E-16 428.0000000 1.062256879 0.3122502257E-16 0.3209238431E-16 428.5000000 1.053167671 0.3469446952E-16 0.3122502257E-16 429.0000000 1.043971758 0.3122502257E-16 0.2949029909E-16 429.5000000 1.034660441 0.3122502257E-16 0.3469446952E-16 430.0000000 1.025221280 0.3122502257E-16 0.2949029909E-16 430.5000000 1.015641043 0.3122502257E-16 0.3469446952E-16 431.0000000 1.005914204 0.3122502257E-16 0.3122502257E-16 431.5000000 0.9960292865 0.3122502257E-16 0.3209238431E-16 432.0000000 0.9859825741 0.3122502257E-16 0.3122502257E-16 432.5000000 0.9757736669 0.3122502257E-16 0.3382710778E-16 433.0000000 0.9654085437 0.3122502257E-16 0.3295974604E-16 433.5000000 0.9549000674 0.2775557562E-16 0.2775557562E-16 434.0000000 0.9442650985 0.2775557562E-16 0.2688821388E-16 434.5000000 0.9335249536 0.2775557562E-16 0.2688821388E-16 435.0000000 0.9227016787 0.2775557562E-16 0.2775557562E-16 435.5000000 0.9118198402 0.2775557562E-16 0.2688821388E-16 436.0000000 0.9008992472 0.2602085214E-16 0.2949029909E-16 436.5000000 0.8899555836 0.2775557562E-16 0.2688821388E-16 437.0000000 0.8789986318 0.2775557562E-16 0.2862293735E-16 437.5000000 0.8680337565 0.2775557562E-16 0.2775557562E-16 438.0000000 0.8570607223 0.2775557562E-16 0.2862293735E-16 438.5000000 0.8460778522 0.2775557562E-16 0.2775557562E-16 439.0000000 0.8350823415 0.2949029909E-16 0.2688821388E-16 439.5000000 0.8240674354 0.2775557562E-16 0.2775557562E-16 440.0000000 0.8130271318 0.2602085214E-16 0.2862293735E-16 440.5000000 0.8019529737 0.2775557562E-16 0.2775557562E-16 441.0000000 0.7908351153 0.2775557562E-16 0.2688821388E-16 441.5000000 0.7796636397 0.2775557562E-16 0.2775557562E-16 442.0000000 0.7684263708 0.2775557562E-16 0.2862293735E-16 442.5000000 0.7571108906 0.2949029909E-16 0.2602085214E-16 443.0000000 0.7457081259 0.2949029909E-16 0.2602085214E-16 443.5000000 0.7342126755 0.2428612866E-16 0.2602085214E-16 444.0000000 0.7226216222 0.2428612866E-16 0.2515349040E-16 444.5000000 0.7109337745 0.2428612866E-16 0.2341876693E-16 445.0000000 0.6991530017 0.2428612866E-16 0.2255140519E-16 445.5000000 0.6872827785 0.2428612866E-16 0.2515349040E-16 446.0000000 0.6753244053 0.2428612866E-16 0.2341876693E-16 446.5000000 0.6632773985 0.2081668171E-16 0.1994931997E-16 447.0000000 0.6511336301 0.1908195824E-16 0.2168404345E-16 447.5000000 0.6388853328 0.2255140519E-16 0.1994931997E-16 448.0000000 0.6265245270 0.1908195824E-16 0.2168404345E-16 448.5000000 0.6140420535 0.2081668171E-16 0.2168404345E-16 449.0000000 0.6014370165 0.2081668171E-16 0.2168404345E-16 449.5000000 0.5887062861 0.2081668171E-16 0.1994931997E-16 450.0000000 0.5758535858 0.1561251128E-16 0.1734723476E-16 450.5000000 0.5628870190 0.1734723476E-16 0.1734723476E-16 451.0000000 0.5498068807 0.1734723476E-16 0.1734723476E-16 451.5000000 0.5366155248 0.1561251128E-16 0.1647987302E-16 452.0000000 0.5233059880 0.1387778781E-16 0.1387778781E-16 452.5000000 0.5098726484 0.1387778781E-16 0.1387778781E-16 453.0000000 0.4963079190 0.1561251128E-16 0.1301042607E-16 453.5000000 0.4826022858 0.1387778781E-16 0.1387778781E-16 454.0000000 0.4687535365 0.1387778781E-16 0.1387778781E-16 454.5000000 0.4547634931 0.1561251128E-16 0.1301042607E-16 455.0000000 0.4406369909 0.1387778781E-16 0.1387778781E-16 455.5000000 0.4263887322 0.1214306433E-16 0.1474514955E-16 456.0000000 0.4120367806 0.1387778781E-16 0.1387778781E-16 456.5000000 0.3976027973 0.1387778781E-16 0.1387778781E-16 457.0000000 0.3831126153 0.1387778781E-16 0.1387778781E-16 457.5000000 0.3685924455 0.1387778781E-16 0.1387778781E-16 458.0000000 0.3540696511 0.1387778781E-16 0.1387778781E-16 458.5000000 0.3395664388 0.1387778781E-16 0.1387778781E-16 459.0000000 0.3250973964 0.1387778781E-16 0.1387778781E-16 459.5000000 0.3106688544 0.8673617380E-17 0.9540979118E-17 460.0000000 0.2962732227 0.9540979118E-17 0.8673617380E-17 460.5000000 0.2818838442 0.9540979118E-17 0.8673617380E-17 461.0000000 0.2674658896 0.6071532166E-17 0.7806255642E-17 461.5000000 0.2529795225 0.6938893904E-17 0.6938893904E-17 462.0000000 0.2383818803 0.6938893904E-17 0.6938893904E-17 462.5000000 0.2236374467 0.6938893904E-17 0.6938893904E-17 463.0000000 0.2087224230 0.6938893904E-17 0.6938893904E-17 463.5000000 0.1936324061 0.6938893904E-17 0.6938893904E-17 464.0000000 0.1783794027 0.7806255642E-17 0.6071532166E-17 464.5000000 0.1629883110 0.6938893904E-17 0.6938893904E-17 465.0000000 0.1474900871 0.5204170428E-17 0.6071532166E-17 465.5000000 0.1319180048 0.6071532166E-17 0.5204170428E-17 466.0000000 0.1162991736 0.6071532166E-17 0.5204170428E-17 466.5000000 0.1006525015 0.4336808690E-18 0.1734723476E-17 467.0000000 0.8498907818E-01 0.1734723476E-17 0.8673617380E-18 467.5000000 0.6930881135E-01 0.8673617380E-18 0.1734723476E-17 468.0000000 0.5360126484E-01 0.8673617380E-18 0.1734723476E-17 468.5000000 0.3785523328E-01 0.8673617380E-18 0.1734723476E-17 469.0000000 0.2205205860E-01 0.8673617380E-18 0.1734723476E-17 469.5000000 0.6181582994E-02 0.1301042607E-17 0.8673617380E-18 470.0000000 -0.9775307828E-02 -0.4336808690E-18 0.000000000 470.5000000 -0.2582989316E-01 -0.8673617380E-18 -0.1734723476E-17 471.0000000 -0.4199507547E-01 -0.8673617380E-18 -0.1734723476E-17 471.5000000 -0.5828149701E-01 -0.1301042607E-17 -0.8673617380E-18 472.0000000 -0.7469721012E-01 -0.1301042607E-17 -0.8673617380E-18 472.5000000 -0.9124301681E-01 -0.2385244779E-17 -0.1734723476E-17 473.0000000 -0.1079158330 -0.5421010862E-17 -0.5204170428E-17 473.5000000 -0.1247071007 -0.5854691731E-17 -0.6071532166E-17 474.0000000 -0.1416015496 -0.5312590645E-17 -0.5204170428E-17 474.5000000 -0.1585754131 -0.5421010862E-17 -0.6071532166E-17 475.0000000 -0.1756033706 -0.6342582709E-17 -0.6071532166E-17 475.5000000 -0.1926576098 -0.6884683795E-17 -0.6938893904E-17 476.0000000 -0.2097170946 -0.7372574773E-17 -0.6071532166E-17 476.5000000 -0.2267741384 -0.7016820935E-17 -0.6938893904E-17 477.0000000 -0.2438360339 -0.7521652572E-17 -0.7806255642E-17 477.5000000 -0.2609202318 -0.7589415207E-17 -0.7806255642E-17 478.0000000 -0.2780542673 -0.8619407271E-17 -0.8673617380E-17 478.5000000 -0.2952705092 -0.8510987054E-17 -0.8673617380E-17 479.0000000 -0.3125968778 -0.8998878032E-17 -0.8673617380E-17 479.5000000 -0.3300532115 -0.1230569466E-16 -0.1214306433E-16 480.0000000 -0.3476488065 -0.1257674520E-16 -0.1301042607E-16 480.5000000 -0.3653841645 -0.1257674520E-16 -0.1301042607E-16 481.0000000 -0.3832476782 -0.1355252716E-16 -0.1301042607E-16 481.5000000 -0.4012282311 -0.1387778781E-16 -0.1387778781E-16 482.0000000 -0.4193189273 -0.1344410694E-16 -0.1387778781E-16 482.5000000 -0.4375112312 -0.1387778781E-16 -0.1387778781E-16 483.0000000 -0.4558080004 -0.1474514955E-16 -0.1561251128E-16 483.5000000 -0.4742091932 -0.1409462824E-16 -0.1474514955E-16 484.0000000 -0.4927214523 -0.1431146868E-16 -0.1474514955E-16 484.5000000 -0.5113484534 -0.1431146868E-16 -0.1474514955E-16 485.0000000 -0.5300974000 -0.2081668171E-16 -0.2081668171E-16 485.5000000 -0.5489737198 -0.1951563910E-16 -0.1994931997E-16 486.0000000 -0.5679780168 -0.1908195824E-16 -0.1994931997E-16 486.5000000 -0.5871032516 -0.2038300084E-16 -0.1994931997E-16 487.0000000 -0.6063287997 -0.1951563910E-16 -0.1994931997E-16 487.5000000 -0.6256259027 -0.2081668171E-16 -0.2081668171E-16 488.0000000 -0.6449596246 -0.2081668171E-16 -0.2081668171E-16 488.5000000 -0.6642929649 -0.2081668171E-16 -0.2081668171E-16 489.0000000 -0.6835960143 -0.2255140519E-16 -0.2255140519E-16 489.5000000 -0.7028568665 -0.2255140519E-16 -0.2255140519E-16 490.0000000 -0.7220836658 -0.2255140519E-16 -0.2255140519E-16 490.5000000 -0.7413012966 -0.2688821388E-16 -0.2602085214E-16 491.0000000 -0.7605417736 -0.2688821388E-16 -0.2602085214E-16 491.5000000 -0.7798385270 -0.2515349040E-16 -0.2602085214E-16 492.0000000 -0.7992195883 -0.2775557562E-16 -0.2775557562E-16 492.5000000 -0.8187067390 -0.2775557562E-16 -0.2775557562E-16 493.0000000 -0.8383193131 -0.2775557562E-16 -0.2775557562E-16 493.5000000 -0.8580761939 -0.2775557562E-16 -0.2775557562E-16 494.0000000 -0.8779879343 -0.2775557562E-16 -0.2775557562E-16 494.5000000 -0.8980529145 -0.2949029909E-16 -0.2949029909E-16 495.0000000 -0.9182488474 -0.2949029909E-16 -0.2949029909E-16 495.5000000 -0.9385280283 -0.2949029909E-16 -0.2949029909E-16 496.0000000 -0.9588236807 -0.3122502257E-16 -0.3122502257E-16 496.5000000 -0.9790641933 -0.3122502257E-16 -0.3122502257E-16 497.0000000 -0.9991944214 -0.3469446952E-16 -0.3469446952E-16 497.5000000 -1.019190295 -0.3469446952E-16 -0.3469446952E-16 498.0000000 -1.039075479 -0.3469446952E-16 -0.3469446952E-16 498.5000000 -1.058901795 -0.3469446952E-16 -0.3469446952E-16 499.0000000 -1.078734277 -0.3469446952E-16 -0.3469446952E-16 499.5000000 -1.098615734 -0.3469446952E-16 -0.3469446952E-16 elk-9.6.8/examples/TDDFT-time-evolution/Si-ramp/PaxHeaders/elk.in0000644000000000000000000000013214626155522021453 xustar0030 mtime=1717099346.024997376 30 atime=1717099346.024997376 30 ctime=1717099346.024997376 elk-9.6.8/examples/TDDFT-time-evolution/Si-ramp/elk.in0000644002504400250440000000175114626155522024201 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 40.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 - 8 : quadratic, cubic and quartic coefficients ramp 1 1.0 0.0 0.0 0.0 0.0 0.001 0.0 0.0 ngridk 12 12 12 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-9.6.8/examples/TDDFT-time-evolution/PaxHeaders/GaAs-HHG0000644000000000000000000000013214626155522020202 xustar0030 mtime=1717099346.028997398 30 atime=1717099346.026997387 30 ctime=1717099346.028997398 elk-9.6.8/examples/TDDFT-time-evolution/GaAs-HHG/0000755002504400250440000000000014626155522023001 5ustar00dewhurstdewhurst00000000000000elk-9.6.8/examples/TDDFT-time-evolution/GaAs-HHG/PaxHeaders/elk.in0000644000000000000000000000013214626155522021362 xustar0030 mtime=1717099346.028997398 30 atime=1717099346.028997398 30 ctime=1717099346.028997398 elk-9.6.8/examples/TDDFT-time-evolution/GaAs-HHG/elk.in0000644002504400250440000000222114626155522024101 0ustar00dewhurstdewhurst00000000000000 ! High-harmonic generation in GaAs using real-time TDDFT. ! Plot the Fourier transform of the total current JTOTW.OUT to observe the ! high-harmonic resonant peaks. tasks 0 450 460 480 wrtdsk .false. ! 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 ! 9-12 : spin matrices s0,sx,sy,sz pulse 1 : number of laser pulses 1.0 0.0 0.0 0.02 0.0 0.0 2000.0 2000.0 tstime 4000.0 dtimes 0.1 tshift .false. highq .true. nempty 32 ! scissor correction of Δ=1.243 eV (see Phys. Rev. B 80, 155205 (2009)) scissor 0.0457 swidth 0.001 ngridk 12 12 12 wplot 10000 100 0 : nwplot, ngrkf, nswplot 0.0 0.5 : wplot ! use GGA 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 elk-9.6.8/examples/TDDFT-time-evolution/PaxHeaders/Si-dielectric0000644000000000000000000000013214626155522021443 xustar0030 mtime=1717099346.036997441 30 atime=1717099346.030997408 30 ctime=1717099346.036997441 elk-9.6.8/examples/TDDFT-time-evolution/Si-dielectric/0000755002504400250440000000000014626155522024242 5ustar00dewhurstdewhurst00000000000000elk-9.6.8/examples/TDDFT-time-evolution/Si-dielectric/PaxHeaders/elk.in0000644000000000000000000000013214626155522022623 xustar0030 mtime=1717099346.032997419 30 atime=1717099346.031997414 30 ctime=1717099346.032997419 elk-9.6.8/examples/TDDFT-time-evolution/Si-dielectric/elk.in0000644002504400250440000000414614626155522025352 0ustar00dewhurstdewhurst00000000000000 ! Dielectric function of silicon calculated using real-time evolution. This is ! done with task=481 which assumes that the A-field is constant in time. The ! corresponding electric field is thus proportional to a delta function at t=0 ! and its Fourier transform is a constant in frequency. ! Note that task=480 calculates the same but without assuming that the A-field ! is constant in time. This requires computing J(w)/E(w) which is numerically ! less stable than that obtained with task=481. ! Make a plot of JTOT_TD.OUT to see how the total current in the unit cell ! varies over time. tasks 0 120 121 450 460 481 ! no shifting of the atomic positions for the ground-state run tshift .false. ! enable conduction band local-orbitals lorbcnd .true. ! scissor correction works consistently for time-evolution and linear response scissor 0.0331 nempty 10 ! larger k-point set required for good convergence ngridk 8 8 8 ! the dielectric function should be check for convergence with respect to the ! total simulation time tstime 800 ! likewise convergence should be checked against the time step dtimes 0.2 ! Task 481 requires a constant A-field which should be small enough to remain ! in the linear regime. This can be done by using a laser pulse of zero ! frequency but with a full-width at half-maximum which is much larger than the ! total simulation time (tstime). The phase should be set to 90° to ensure that ! the pulse is of the form cos(ωt). ! 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.1 0.0 0.0 0.0 90.0 0.0 0.0 10000.0 wplot 400 100 0 : nwplot, ngrkf, nswplot 0.0 0.5 : wplot 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-9.6.8/examples/TDDFT-time-evolution/Si-dielectric/PaxHeaders/EPSILON_11.OUT0000644000000000000000000000012714626155522023527 xustar0029 mtime=1717099346.03499743 29 atime=1717099346.03499743 29 ctime=1717099346.03499743 elk-9.6.8/examples/TDDFT-time-evolution/Si-dielectric/EPSILON_11.OUT0000644002504400250440000007164114626155522026256 0ustar00dewhurstdewhurst00000000000000 0.000000000 15.18576042 0.1250000000E-02 15.18711126 0.2500000000E-02 15.19116561 0.3750000000E-02 15.19792904 0.5000000000E-02 15.20741081 0.6250000000E-02 15.21962396 0.7500000000E-02 15.23458532 0.8750000000E-02 15.25231561 0.1000000000E-01 15.27283951 0.1125000000E-01 15.29618574 0.1250000000E-01 15.32238719 0.1375000000E-01 15.35148105 0.1500000000E-01 15.38350898 0.1625000000E-01 15.41851724 0.1750000000E-01 15.45655691 0.1875000000E-01 15.49768412 0.2000000000E-01 15.54196026 0.2125000000E-01 15.58945227 0.2250000000E-01 15.64023295 0.2375000000E-01 15.69438127 0.2500000000E-01 15.75198274 0.2625000000E-01 15.81312986 0.2750000000E-01 15.87792251 0.2875000000E-01 15.94646852 0.3000000000E-01 16.01888417 0.3125000000E-01 16.09529485 0.3250000000E-01 16.17583573 0.3375000000E-01 16.26065253 0.3500000000E-01 16.34990236 0.3625000000E-01 16.44375469 0.3750000000E-01 16.54239239 0.3875000000E-01 16.64601292 0.4000000000E-01 16.75482966 0.4125000000E-01 16.86907342 0.4250000000E-01 16.98899413 0.4375000000E-01 17.11486267 0.4500000000E-01 17.24697307 0.4625000000E-01 17.38564497 0.4750000000E-01 17.53122636 0.4875000000E-01 17.68409674 0.5000000000E-01 17.84467082 0.5125000000E-01 18.01340266 0.5250000000E-01 18.19079046 0.5375000000E-01 18.37738223 0.5500000000E-01 18.57378225 0.5625000000E-01 18.78065873 0.5750000000E-01 18.99875276 0.5875000000E-01 19.22888888 0.6000000000E-01 19.47198767 0.6125000000E-01 19.72908078 0.6250000000E-01 20.00132901 0.6375000000E-01 20.29004419 0.6500000000E-01 20.59671590 0.6625000000E-01 20.92304425 0.6750000000E-01 21.27098065 0.6875000000E-01 21.64277870 0.7000000000E-01 22.04105859 0.7125000000E-01 22.46888937 0.7250000000E-01 22.92989536 0.7375000000E-01 23.42839561 0.7500000000E-01 23.96958933 0.7625000000E-01 24.55980653 0.7750000000E-01 25.20685309 0.7875000000E-01 25.92049557 0.8000000000E-01 26.71315894 0.8125000000E-01 27.60095816 0.8250000000E-01 28.60527304 0.8375000000E-01 29.75524511 0.8500000000E-01 31.09192119 0.8625000000E-01 32.67552412 0.8750000000E-01 34.59911094 0.8875000000E-01 37.01633209 0.9000000000E-01 40.20096115 0.9125000000E-01 44.62781928 0.9250000000E-01 49.34554924 0.9375000000E-01 48.07837564 0.9500000000E-01 59.09148051 0.9625000000E-01 64.72041554 0.9750000000E-01 33.17003495 0.9875000000E-01 22.96364847 0.1000000000 -4.440850441 0.1012500000 -1.998381729 0.1025000000 -5.017659658 0.1037500000 4.507270651 0.1050000000 12.72438601 0.1062500000 19.97702812 0.1075000000 24.86519392 0.1087500000 14.20735500 0.1100000000 18.66615919 0.1112500000 24.94703952 0.1125000000 31.20922261 0.1137500000 38.29129467 0.1150000000 37.70949459 0.1162500000 36.52785224 0.1175000000 43.82749780 0.1187500000 55.41124316 0.1200000000 35.41571243 0.1212500000 32.03704059 0.1225000000 50.23304134 0.1237500000 68.69460831 0.1250000000 68.90098795 0.1262500000 31.02066883 0.1275000000 42.17164350 0.1287500000 -7.840473740 0.1300000000 -6.786010378 0.1312500000 -23.87517355 0.1325000000 10.53236996 0.1337500000 12.89858687 0.1350000000 -44.51509793 0.1362500000 -58.43537486 0.1375000000 -45.03220850 0.1387500000 -57.17215656 0.1400000000 -48.84806104 0.1412500000 -45.60952801 0.1425000000 -36.48094636 0.1437500000 -28.94544224 0.1450000000 -23.64636549 0.1462500000 -21.67498301 0.1475000000 -16.86658790 0.1487500000 -14.92473365 0.1500000000 -18.31587152 0.1512500000 -14.59534169 0.1525000000 -10.83844472 0.1537500000 -7.039709941 0.1550000000 -3.135474050 0.1562500000 -9.818557784 0.1575000000 -11.37716890 0.1587500000 -7.290598739 0.1600000000 -3.474139943 0.1612500000 0.5895082265 0.1625000000 1.495901689 0.1637500000 -0.2044481080E-02 0.1650000000 5.296205903 0.1662500000 -7.357181164 0.1675000000 -10.14923499 0.1687500000 -7.049250408 0.1700000000 -4.053531190 0.1712500000 -5.196761482 0.1725000000 -1.018852251 0.1737500000 3.937526856 0.1750000000 -8.175958840 0.1762500000 -7.804291244 0.1775000000 -2.413576667 0.1787500000 0.4802762657 0.1800000000 -0.3245860490 0.1812500000 -0.8030532982 0.1825000000 -3.040966537 0.1837500000 -1.169100669 0.1850000000 1.040043690 0.1862500000 1.165873945 0.1875000000 4.202183624 0.1887500000 1.060659648 0.1900000000 0.6992377670 0.1912500000 3.246250116 0.1925000000 10.52691344 0.1937500000 3.261501871 0.1950000000 -6.479844477 0.1962500000 -13.08372314 0.1975000000 -14.22054720 0.1987500000 -10.48969122 0.2000000000 -19.45288096 0.2012500000 -23.76310491 0.2025000000 -20.68706924 0.2037500000 -18.44815745 0.2050000000 -13.82573164 0.2062500000 -14.19167416 0.2075000000 -12.30886885 0.2087500000 -12.57200150 0.2100000000 -10.08911164 0.2112500000 -8.919545160 0.2125000000 -13.94147521 0.2137500000 -13.06961909 0.2150000000 -10.18998665 0.2162500000 -7.669798134 0.2175000000 -4.872955353 0.2187500000 -3.637273939 0.2200000000 -7.343556723 0.2212500000 -6.049904328 0.2225000000 -10.52670277 0.2237500000 -11.91284481 0.2250000000 -9.072684934 0.2262500000 -11.13829704 0.2275000000 -12.96969014 0.2287500000 -11.53826852 0.2300000000 -9.383075454 0.2312500000 -7.465628874 0.2325000000 -8.780265485 0.2337500000 -9.154074440 0.2350000000 -9.577401818 0.2362500000 -10.14949493 0.2375000000 -8.710937154 0.2387500000 -7.365447664 0.2400000000 -6.227501695 0.2412500000 -7.860408726 0.2425000000 -8.042399567 0.2437500000 -7.195868870 0.2450000000 -6.153133661 0.2462500000 -5.350184196 0.2475000000 -6.141521187 0.2487500000 -6.134581649 0.2500000000 -5.003974642 0.2512500000 -4.178906736 0.2525000000 -4.214079482 0.2537500000 -5.524809135 0.2550000000 -7.239144904 0.2562500000 -6.099475240 0.2575000000 -5.033489615 0.2587500000 -4.573434513 0.2600000000 -4.210835550 0.2612500000 -5.552100652 0.2625000000 -5.626815335 0.2637500000 -4.610304681 0.2650000000 -4.297633032 0.2662500000 -3.804601737 0.2675000000 -3.093441272 0.2687500000 -3.709513514 0.2700000000 -5.169675532 0.2712500000 -6.176152142 0.2725000000 -5.669482346 0.2737500000 -4.863405797 0.2750000000 -4.329283643 0.2762500000 -3.847561963 0.2775000000 -3.565506428 0.2787500000 -3.034106679 0.2800000000 -2.356611307 0.2812500000 -2.017027671 0.2825000000 -2.868561293 0.2837500000 -3.443589375 0.2850000000 -2.593088974 0.2862500000 -3.766194469 0.2875000000 -3.090849971 0.2887500000 -2.314499226 0.2900000000 -2.747866232 0.2912500000 -2.411648314 0.2925000000 -3.455148271 0.2937500000 -4.326180894 0.2950000000 -3.223855630 0.2962500000 -2.260026181 0.2975000000 -2.815506309 0.2987500000 -2.881075708 0.3000000000 -3.106221159 0.3012500000 -2.393560085 0.3025000000 -3.802059710 0.3037500000 -3.101427531 0.3050000000 -2.030087106 0.3062500000 -4.362557483 0.3075000000 -4.158927270 0.3087500000 -3.184646411 0.3100000000 -3.148035370 0.3112500000 -2.839774649 0.3125000000 -3.269988650 0.3137500000 -3.836520342 0.3150000000 -4.648562844 0.3162500000 -3.902324524 0.3175000000 -3.194375473 0.3187500000 -3.323615098 0.3200000000 -3.008789892 0.3212500000 -3.370649804 0.3225000000 -3.387109938 0.3237500000 -3.024315453 0.3250000000 -3.170466465 0.3262500000 -2.960682159 0.3275000000 -2.852622371 0.3287500000 -2.433147774 0.3300000000 -2.281423940 0.3312500000 -2.359995613 0.3325000000 -2.273910865 0.3337500000 -2.280686390 0.3350000000 -2.147702637 0.3362500000 -2.156954393 0.3375000000 -1.837318007 0.3387500000 -1.173583147 0.3400000000 -0.8480916814 0.3412500000 -1.678775093 0.3425000000 -2.632473910 0.3437500000 -2.792493669 0.3450000000 -2.665330536 0.3462500000 -2.341573789 0.3475000000 -2.554600608 0.3487500000 -2.755490321 0.3500000000 -3.678127283 0.3512500000 -3.091437979 0.3525000000 -2.498695925 0.3537500000 -2.195690785 0.3550000000 -2.850363381 0.3562500000 -2.553490778 0.3575000000 -2.757061446 0.3587500000 -2.517373659 0.3600000000 -2.329821339 0.3612500000 -2.657539924 0.3625000000 -2.852188893 0.3637500000 -2.616196146 0.3650000000 -2.441940498 0.3662500000 -2.169312024 0.3675000000 -2.098871221 0.3687500000 -2.465639898 0.3700000000 -2.271788774 0.3712500000 -2.174632634 0.3725000000 -2.069788269 0.3737500000 -1.934582628 0.3750000000 -1.810213962 0.3762500000 -1.691637281 0.3775000000 -1.573493268 0.3787500000 -1.552881621 0.3800000000 -1.506179075 0.3812500000 -1.342140545 0.3825000000 -1.408618836 0.3837500000 -1.408460279 0.3850000000 -1.265511453 0.3862500000 -1.145803752 0.3875000000 -0.9340689510 0.3887500000 -0.9327664760 0.3900000000 -1.126752001 0.3912500000 -0.8658402988 0.3925000000 -0.6330093907 0.3937500000 -0.7673029987 0.3950000000 -1.205283605 0.3962500000 -0.8734114863 0.3975000000 -1.122659469 0.3987500000 -1.897325703 0.4000000000 -1.894970526 0.4012500000 -1.493951988 0.4025000000 -1.302033079 0.4037500000 -1.432012539 0.4050000000 -1.389376558 0.4062500000 -1.331466295 0.4075000000 -1.185416384 0.4087500000 -1.141283045 0.4100000000 -1.294300673 0.4112500000 -1.385390641 0.4125000000 -1.418795350 0.4137500000 -1.340908055 0.4150000000 -1.777271450 0.4162500000 -1.878461728 0.4175000000 -1.575163317 0.4187500000 -1.357088557 0.4200000000 -1.326594843 0.4212500000 -1.336457603 0.4225000000 -1.149328952 0.4237500000 -1.542200308 0.4250000000 -1.450968836 0.4262500000 -1.204393423 0.4275000000 -1.052134173 0.4287500000 -1.268813816 0.4300000000 -1.200622741 0.4312500000 -1.102241525 0.4325000000 -1.055090983 0.4337500000 -1.235867459 0.4350000000 -1.432734985 0.4362500000 -1.247673675 0.4375000000 -1.136016185 0.4387500000 -1.042455215 0.4400000000 -1.135562138 0.4412500000 -1.060056561 0.4425000000 -0.9792761396 0.4437500000 -1.011978951 0.4450000000 -1.041594453 0.4462500000 -0.9661916560 0.4475000000 -1.221619581 0.4487500000 -1.129387982 0.4500000000 -1.002863024 0.4512500000 -0.8897691658 0.4525000000 -0.8196640349 0.4537500000 -0.7526107701 0.4550000000 -0.8155594823 0.4562500000 -0.7089467717 0.4575000000 -0.6011528607 0.4587500000 -0.7583871459 0.4600000000 -0.8238299088 0.4612500000 -0.7737149966 0.4625000000 -1.110372784 0.4637500000 -1.049946082 0.4650000000 -1.033075715 0.4662500000 -0.9320933957 0.4675000000 -0.8357293045 0.4687500000 -0.8000361050 0.4700000000 -0.7348420410 0.4712500000 -0.7290937702 0.4725000000 -0.6929106795 0.4737500000 -0.6407560097 0.4750000000 -0.5662304149 0.4762500000 -0.4935182051 0.4775000000 -0.5210681488 0.4787500000 -0.6965120474 0.4800000000 -0.6772883561 0.4812500000 -0.7505072902 0.4825000000 -0.7980680040 0.4837500000 -0.6845523349 0.4850000000 -0.5947213449 0.4862500000 -0.5173216711 0.4875000000 -0.5385854491 0.4887500000 -0.4565431139 0.4900000000 -0.4521858599 0.4912500000 -0.5242684861 0.4925000000 -0.5297111888 0.4937500000 -0.5802628434 0.4950000000 -0.6164687393 0.4962500000 -0.5075107771 0.4975000000 -0.3949993165 0.4987500000 -0.2727473053 0.000000000 0.000000000 0.1250000000E-02 0.2162216301E-02 0.2500000000E-02 0.4327391851E-02 0.3750000000E-02 0.6498497274E-02 0.5000000000E-02 0.8678526031E-02 0.6250000000E-02 0.1087050606E-01 0.7500000000E-02 0.1307751170E-01 0.8750000000E-02 0.1530267594E-01 0.1000000000E-01 0.1754920321E-01 0.1125000000E-01 0.1982038266E-01 0.1250000000E-01 0.2211960218E-01 0.1375000000E-01 0.2445036323E-01 0.1500000000E-01 0.2681629662E-01 0.1625000000E-01 0.2922117937E-01 0.1750000000E-01 0.3166895285E-01 0.1875000000E-01 0.3416374239E-01 0.2000000000E-01 0.3670987850E-01 0.2125000000E-01 0.3931192007E-01 0.2250000000E-01 0.4197467964E-01 0.2375000000E-01 0.4470325116E-01 0.2500000000E-01 0.4750304063E-01 0.2625000000E-01 0.5037979982E-01 0.2750000000E-01 0.5333966372E-01 0.2875000000E-01 0.5638919216E-01 0.3000000000E-01 0.5953541620E-01 0.3125000000E-01 0.6278589000E-01 0.3250000000E-01 0.6614874903E-01 0.3375000000E-01 0.6963277548E-01 0.3500000000E-01 0.7324747214E-01 0.3625000000E-01 0.7700314603E-01 0.3750000000E-01 0.8091100368E-01 0.3875000000E-01 0.8498326193E-01 0.4000000000E-01 0.8923327015E-01 0.4125000000E-01 0.9367558606E-01 0.4250000000E-01 0.9832631005E-01 0.4375000000E-01 0.1032031040 0.4500000000E-01 0.1083254670 0.4625000000E-01 0.1137149911 0.4750000000E-01 0.1193956540 0.4875000000E-01 0.1253941620 0.5000000000E-01 0.1317403024 0.5125000000E-01 0.1384675558 0.5250000000E-01 0.1456135333 0.5375000000E-01 0.1532206977 0.5500000000E-01 0.1613371789 0.5625000000E-01 0.1700177503 0.5750000000E-01 0.1793250168 0.5875000000E-01 0.1893308640 0.6000000000E-01 0.2001182414 0.6125000000E-01 0.2117833681 0.6250000000E-01 0.2244384850 0.6375000000E-01 0.2382153156 0.6500000000E-01 0.2532694557 0.6625000000E-01 0.2697859960 0.6750000000E-01 0.2879867953 0.6875000000E-01 0.3081399968 0.7000000000E-01 0.3305726269 0.7125000000E-01 0.3556875011 0.7250000000E-01 0.3839862372 0.7375000000E-01 0.4161010930 0.7500000000E-01 0.4528398064 0.7625000000E-01 0.4952500280 0.7750000000E-01 0.5447140347 0.7875000000E-01 0.6030916172 0.8000000000E-01 0.6729422162 0.8125000000E-01 0.7578826610 0.8250000000E-01 0.8631880772 0.8375000000E-01 0.9968544962 0.8500000000E-01 1.171602755 0.8625000000E-01 1.408984477 0.8750000000E-01 1.748782008 0.8875000000E-01 2.274112860 0.9000000000E-01 3.195073816 0.9125000000E-01 5.227640111 0.9250000000E-01 11.32788058 0.9375000000E-01 14.12216418 0.9500000000E-01 18.65120500 0.9625000000E-01 46.39634360 0.9750000000E-01 58.42127538 0.9875000000E-01 62.13988285 0.1000000000 50.00518011 0.1012500000 31.33343190 0.1025000000 18.41485959 0.1037500000 8.986437651 0.1050000000 6.625821604 0.1062500000 7.464223892 0.1075000000 14.98383087 0.1087500000 14.85513494 0.1100000000 6.896206860 0.1112500000 5.326199803 0.1125000000 5.961245140 0.1137500000 9.800918874 0.1150000000 20.20634693 0.1162500000 15.14669420 0.1175000000 16.29886583 0.1187500000 28.04707634 0.1200000000 47.27737355 0.1212500000 24.89811581 0.1225000000 24.19169707 0.1237500000 37.29185238 0.1250000000 83.01053469 0.1262500000 73.61367889 0.1275000000 97.87786642 0.1287500000 88.08035011 0.1300000000 89.53607946 0.1312500000 53.32094992 0.1325000000 48.49271738 0.1337500000 101.0199003 0.1350000000 94.83161627 0.1362500000 60.78507357 0.1375000000 43.88114491 0.1387500000 40.37456737 0.1400000000 23.41319787 0.1412500000 14.53605869 0.1425000000 7.917342706 0.1437500000 6.040713477 0.1450000000 6.890339212 0.1462500000 5.892730566 0.1475000000 5.621530054 0.1487500000 9.836315956 0.1500000000 6.742943026 0.1512500000 3.711996147 0.1525000000 3.187582967 0.1537500000 3.911917558 0.1550000000 7.798274287 0.1562500000 14.00937011 0.1575000000 5.951640593 0.1587500000 3.585524977 0.1600000000 3.473165712 0.1612500000 5.216608871 0.1625000000 11.04394558 0.1637500000 9.251441094 0.1650000000 14.52819263 0.1662500000 23.77385533 0.1675000000 11.26927350 0.1687500000 9.646212018 0.1700000000 8.658264056 0.1712500000 9.169161867 0.1725000000 6.931054322 0.1737500000 12.98149564 0.1750000000 18.52124906 0.1762500000 7.958402894 0.1775000000 6.841874776 0.1787500000 8.957543800 0.1800000000 12.96670142 0.1812500000 11.14647433 0.1825000000 12.41754415 0.1837500000 9.084947551 0.1850000000 11.35118275 0.1862500000 11.54675740 0.1875000000 13.11162554 0.1887500000 15.12023909 0.1900000000 16.82817636 0.1912500000 12.44386613 0.1925000000 20.39124433 0.1937500000 30.44573123 0.1950000000 30.44756660 0.1962500000 30.59365405 0.1975000000 19.39023293 0.1987500000 22.53739682 0.2000000000 28.83485467 0.2012500000 14.26685806 0.2025000000 12.09366414 0.2037500000 6.747749792 0.2050000000 6.833629388 0.2062500000 7.119877269 0.2075000000 7.378768882 0.2087500000 5.644766234 0.2100000000 6.081847234 0.2112500000 8.554815368 0.2125000000 8.525462227 0.2137500000 3.800011601 0.2150000000 2.480586305 0.2162500000 2.493733434 0.2175000000 3.619316253 0.2187500000 7.899518352 0.2200000000 9.228090810 0.2212500000 8.817572987 0.2225000000 12.36299458 0.2237500000 6.693505780 0.2250000000 6.168701872 0.2262500000 9.187464272 0.2275000000 5.289709812 0.2287500000 2.991116414 0.2300000000 2.281518627 0.2312500000 3.490793411 0.2325000000 5.156426981 0.2337500000 3.764195996 0.2350000000 4.509327132 0.2362500000 2.351616449 0.2375000000 1.355273789 0.2387500000 1.329089594 0.2400000000 2.401270665 0.2412500000 3.429669156 0.2425000000 1.886758940 0.2437500000 1.122547888 0.2450000000 1.065924888 0.2462500000 1.723061672 0.2475000000 2.692693727 0.2487500000 1.377163482 0.2500000000 1.233997292 0.2512500000 2.207462883 0.2525000000 2.874892164 0.2537500000 4.654277486 0.2550000000 2.452235621 0.2562500000 1.237326632 0.2575000000 1.234659732 0.2587500000 1.664799213 0.2600000000 2.261761268 0.2612500000 3.129799362 0.2625000000 1.415060134 0.2637500000 1.143131293 0.2650000000 1.590565751 0.2662500000 1.358778923 0.2675000000 2.423669864 0.2687500000 3.069664431 0.2700000000 3.675187344 0.2712500000 2.490712201 0.2725000000 1.064093964 0.2737500000 0.6756297140 0.2750000000 0.6310952214 0.2762500000 0.6158350064 0.2775000000 0.6672569593 0.2787500000 0.6160039382 0.2800000000 0.9623644253 0.2812500000 1.801457395 0.2825000000 3.036841558 0.2837500000 1.763685607 0.2850000000 2.141754871 0.2862500000 2.224489678 0.2875000000 1.382740013 0.2887500000 1.872556135 0.2900000000 2.250887419 0.2912500000 2.696175738 0.2925000000 3.545478274 0.2937500000 1.823984512 0.2950000000 1.175600162 0.2962500000 1.747009713 0.2975000000 2.466299472 0.2987500000 2.314803924 0.3000000000 2.113794018 0.3012500000 2.504849741 0.3025000000 2.719559907 0.3037500000 1.630900134 0.3050000000 2.646917792 0.3062500000 3.554386452 0.3075000000 1.583455891 0.3087500000 1.580697450 0.3100000000 1.889335203 0.3112500000 2.006581345 0.3125000000 2.873035514 0.3137500000 2.557441327 0.3150000000 1.633926161 0.3162500000 0.8551386189 0.3175000000 0.9648118745 0.3187500000 1.275484214 0.3200000000 1.190576811 0.3212500000 1.390357328 0.3225000000 1.046987291 0.3237500000 0.8901064538 0.3250000000 0.9942802076 0.3262500000 0.7640246367 0.3275000000 0.6032124770 0.3287500000 0.5612214474 0.3300000000 0.8876251502 0.3312500000 1.035251065 0.3325000000 0.8178801379 0.3337500000 1.060503064 0.3350000000 0.8455448016 0.3362500000 0.9608345678 0.3375000000 0.6514395393 0.3387500000 0.8707669013 0.3400000000 1.906193364 0.3412500000 2.861363127 0.3425000000 2.418586407 0.3437500000 1.737409347 0.3450000000 1.677656539 0.3462500000 1.587000995 0.3475000000 1.793597542 0.3487500000 2.208038475 0.3500000000 1.348689991 0.3512500000 0.6628963220 0.3525000000 0.6447982172 0.3537500000 1.173066018 0.3550000000 1.203594816 0.3562500000 0.8729122175 0.3575000000 1.013431377 0.3587500000 0.6698935076 0.3600000000 0.9240809722 0.3612500000 1.164999814 0.3625000000 0.6143561947 0.3637500000 0.4517536292 0.3650000000 0.3046963333 0.3662500000 0.3322459736 0.3675000000 0.6670888453 0.3687500000 0.4614103893 0.3700000000 0.2496978561 0.3712500000 0.2317604289 0.3725000000 0.1419836738 0.3737500000 0.1087823246 0.3750000000 0.1030977235 0.3762500000 0.1180073649 0.3775000000 0.1601729885 0.3787500000 0.2649846111 0.3800000000 0.1855848947 0.3812500000 0.2386600631 0.3825000000 0.4206601119 0.3837500000 0.2462379504 0.3850000000 0.2440199183 0.3862500000 0.2372513384 0.3875000000 0.3349159784 0.3887500000 0.6548775664 0.3900000000 0.5253811752 0.3912500000 0.4472477910 0.3925000000 0.7693661626 0.3937500000 1.217439140 0.3950000000 1.071159492 0.3962500000 1.008227377 0.3975000000 1.605906310 0.3987500000 1.391293801 0.4000000000 0.7344249529 0.4012500000 0.5563438701 0.4025000000 0.7297390104 0.4037500000 0.7763873591 0.4050000000 0.6379079285 0.4062500000 0.7147234621 0.4075000000 0.6574695407 0.4087500000 0.8454979747 0.4100000000 0.9426840800 0.4112500000 0.9134234712 0.4125000000 0.8318945975 0.4137500000 0.9691999194 0.4150000000 1.094123266 0.4162500000 0.5342629340 0.4175000000 0.3246947871 0.4187500000 0.4116335274 0.4200000000 0.4495338997 0.4212500000 0.4555457590 0.4225000000 0.5499272980 0.4237500000 0.6711272454 0.4250000000 0.3006216764 0.4262500000 0.2592625003 0.4275000000 0.4682420253 0.4287500000 0.5084896530 0.4300000000 0.4009856029 0.4312500000 0.3902724588 0.4325000000 0.5359638504 0.4337500000 0.7263918966 0.4350000000 0.3957195235 0.4362500000 0.2580061867 0.4375000000 0.2470345226 0.4387500000 0.3481535457 0.4400000000 0.3705910291 0.4412500000 0.2535051169 0.4425000000 0.3496145320 0.4437500000 0.3970259722 0.4450000000 0.3383088578 0.4462500000 0.4491002018 0.4475000000 0.3820606191 0.4487500000 0.1727546991 0.4500000000 0.1287766529 0.4512500000 0.1325757581 0.4525000000 0.1741240652 0.4537500000 0.2629156032 0.4550000000 0.2653438722 0.4562500000 0.2253412116 0.4575000000 0.4051916243 0.4587500000 0.5137610038 0.4600000000 0.4344519658 0.4612500000 0.5785778694 0.4625000000 0.5159963887 0.4637500000 0.2962686688 0.4650000000 0.2283952980 0.4662500000 0.1290187292 0.4675000000 0.1372656751 0.4687500000 0.1269176077 0.4700000000 0.1510437403 0.4712500000 0.1593012531 0.4725000000 0.1534154821 0.4737500000 0.1370310650 0.4750000000 0.1524631511 0.4762500000 0.2564379011 0.4775000000 0.3577008946 0.4787500000 0.4313482732 0.4800000000 0.2925647490 0.4812500000 0.3826289772 0.4825000000 0.1834629512 0.4837500000 0.1119996857 0.4850000000 0.1066294165 0.4862500000 0.1553172407 0.4875000000 0.1801628603 0.4887500000 0.1908028600 0.4900000000 0.2614702715 0.4912500000 0.3251979608 0.4925000000 0.3011390070 0.4937500000 0.2944115558 0.4950000000 0.1717931507 0.4962500000 0.1057583285 0.4975000000 0.1113586153 0.4987500000 0.1945715322 elk-9.6.8/examples/TDDFT-time-evolution/Si-dielectric/PaxHeaders/EPSILON_TDRT_11.OUT0000644000000000000000000000013214626155522024360 xustar0030 mtime=1717099346.037997446 30 atime=1717099346.037997446 30 ctime=1717099346.037997446 elk-9.6.8/examples/TDDFT-time-evolution/Si-dielectric/EPSILON_TDRT_11.OUT0000644002504400250440000007164114626155522027113 0ustar00dewhurstdewhurst00000000000000 0.000000000 25.24192763 0.1250000000E-02 -14.12561790 0.2500000000E-02 -9.674295384 0.3750000000E-02 11.43803842 0.5000000000E-02 25.95688253 0.6250000000E-02 27.11008542 0.7500000000E-02 18.89960887 0.8750000000E-02 10.20599174 0.1000000000E-01 7.699608327 0.1125000000E-01 11.76400599 0.1250000000E-01 17.65246212 0.1375000000E-01 20.16007886 0.1500000000E-01 17.77739765 0.1625000000E-01 13.25811782 0.1750000000E-01 10.71205857 0.1875000000E-01 12.03141762 0.2000000000E-01 15.61853490 0.2125000000E-01 18.15892476 0.2250000000E-01 17.61338282 0.2375000000E-01 14.80443261 0.2500000000E-01 12.41849165 0.2625000000E-01 12.52501394 0.2750000000E-01 14.85616345 0.2875000000E-01 17.24264248 0.3000000000E-01 17.64731453 0.3125000000E-01 15.92054411 0.3250000000E-01 13.78779925 0.3375000000E-01 13.21211881 0.3500000000E-01 14.66493643 0.3625000000E-01 16.81198062 0.3750000000E-01 17.79496754 0.3875000000E-01 16.89258871 0.4000000000E-01 15.08849578 0.4125000000E-01 14.11281594 0.4250000000E-01 14.88053082 0.4375000000E-01 16.72719979 0.4500000000E-01 18.07170995 0.4625000000E-01 17.85395173 0.4750000000E-01 16.44735017 0.4875000000E-01 15.26769363 0.5000000000E-01 15.47965226 0.5125000000E-01 16.97782259 0.5250000000E-01 18.52848099 0.5375000000E-01 18.90164851 0.5500000000E-01 17.95869421 0.5625000000E-01 16.73894830 0.5750000000E-01 16.50424124 0.5875000000E-01 17.61813922 0.6000000000E-01 19.25186891 0.6125000000E-01 20.14953071 0.6250000000E-01 19.74756449 0.6375000000E-01 18.65478798 0.6500000000E-01 18.09007144 0.6625000000E-01 18.79902672 0.6750000000E-01 20.41120729 0.6875000000E-01 21.78774664 0.7000000000E-01 22.03203764 0.7125000000E-01 21.26948806 0.7250000000E-01 20.52642840 0.7375000000E-01 20.83300593 0.7500000000E-01 22.33793750 0.7625000000E-01 24.19200700 0.7750000000E-01 25.28422246 0.7875000000E-01 25.19324552 0.8000000000E-01 24.55391036 0.8125000000E-01 24.54489883 0.8250000000E-01 25.93108639 0.8375000000E-01 28.44211083 0.8500000000E-01 30.98283562 0.8625000000E-01 32.51574126 0.8750000000E-01 32.95237776 0.8875000000E-01 33.39142616 0.9000000000E-01 35.49043623 0.9125000000E-01 40.31122137 0.9250000000E-01 47.29649155 0.9375000000E-01 53.99226089 0.9500000000E-01 56.80142168 0.9625000000E-01 52.58335108 0.9750000000E-01 40.44914487 0.9875000000E-01 22.82454500 0.1000000000 4.986826978 0.1012500000 -7.053177415 0.1025000000 -9.465221747 0.1037500000 -2.718858702 0.1050000000 8.528938264 0.1062500000 18.01547717 0.1075000000 21.54004434 0.1087500000 19.40977439 0.1100000000 15.95093782 0.1112500000 16.28375424 0.1125000000 22.52839198 0.1137500000 32.16078399 0.1150000000 39.81043981 0.1162500000 41.29719014 0.1175000000 36.95442524 0.1187500000 31.66652376 0.1200000000 31.39929601 0.1212500000 38.64323306 0.1225000000 50.12899278 0.1237500000 58.63051789 0.1250000000 57.71830155 0.1262500000 46.13375548 0.1275000000 28.66826573 0.1287500000 12.91472508 0.1300000000 4.196685701 0.1312500000 2.229913078 0.1325000000 1.762730901 0.1337500000 -3.410810184 0.1350000000 -15.97329134 0.1362500000 -33.20189638 0.1375000000 -48.77098751 0.1387500000 -56.76712178 0.1400000000 -55.11778141 0.1412500000 -46.33059651 0.1425000000 -35.44976350 0.1437500000 -26.92600660 0.1450000000 -22.49141480 0.1462500000 -21.09454932 0.1475000000 -20.43748856 0.1487500000 -18.77029856 0.1500000000 -15.79078640 0.1512500000 -12.37841474 0.1525000000 -9.691617320 0.1537500000 -8.369297870 0.1550000000 -8.251497008 0.1562500000 -8.584045489 0.1575000000 -8.447729778 0.1587500000 -7.189075964 0.1600000000 -4.735947936 0.1612500000 -1.706520372 0.1625000000 0.7916715199 0.1637500000 1.683936561 0.1650000000 0.5608507830 0.1662500000 -1.971431635 0.1675000000 -4.534792610 0.1687500000 -5.757010367 0.1700000000 -5.110107205 0.1712500000 -3.224957999 0.1725000000 -1.431469953 0.1737500000 -0.8317227583 0.1750000000 -1.568099271 0.1762500000 -2.808565455 0.1775000000 -3.432073942 0.1787500000 -2.875229502 0.1800000000 -1.502128724 0.1812500000 -0.2502566929 0.1825000000 0.1331096665 0.1837500000 -0.3405935978 0.1850000000 -0.9422771509 0.1862500000 -0.7985885696 0.1875000000 0.4705766464 0.1887500000 2.516239096 0.1900000000 4.536752693 0.1912500000 5.783043539 0.1925000000 5.889141622 0.1937500000 4.839081241 0.1950000000 2.714692667 0.1962500000 -0.4688259793 0.1975000000 -4.660322652 0.1987500000 -9.506457056 0.2000000000 -14.20686614 0.2012500000 -17.70148672 0.2025000000 -19.13713283 0.2037500000 -18.32610667 0.2050000000 -15.88923770 0.2062500000 -12.97763895 0.2075000000 -10.73380220 0.2087500000 -9.795776991 0.2100000000 -10.09088698 0.2112500000 -10.97713714 0.2125000000 -11.60993051 0.2137500000 -11.33707168 0.2150000000 -9.961057174 0.2162500000 -7.795340209 0.2175000000 -5.522844081 0.2187500000 -3.920882889 0.2200000000 -3.552740926 0.2212500000 -4.541836113 0.2225000000 -6.523023412 0.2237500000 -8.797160677 0.2250000000 -10.62197257 0.2262500000 -11.50515125 0.2275000000 -11.36759720 0.2287500000 -10.51584402 0.2300000000 -9.458524943 0.2312500000 -8.666932345 0.2325000000 -8.386917745 0.2337500000 -8.570220945 0.2350000000 -8.938107490 0.2362500000 -9.141269736 0.2375000000 -8.944839657 0.2387500000 -8.351892739 0.2400000000 -7.596714085 0.2412500000 -6.999623717 0.2425000000 -6.759108330 0.2437500000 -6.812139336 0.2450000000 -6.867599706 0.2462500000 -6.608285860 0.2475000000 -5.931227836 0.2487500000 -5.050968603 0.2500000000 -4.375206575 0.2512500000 -4.227267306 0.2525000000 -4.613038256 0.2537500000 -5.209076906 0.2550000000 -5.588510398 0.2562500000 -5.520001679 0.2575000000 -5.115192086 0.2587500000 -4.714032315 0.2600000000 -4.600156753 0.2612500000 -4.771102746 0.2625000000 -4.944626377 0.2637500000 -4.795851482 0.2650000000 -4.237774353 0.2662500000 -3.523254075 0.2675000000 -3.085359394 0.2687500000 -3.233668749 0.2700000000 -3.930404522 0.2712500000 -4.804834050 0.2725000000 -5.385689276 0.2737500000 -5.380395062 0.2750000000 -4.815358123 0.2762500000 -3.969200871 0.2775000000 -3.178197402 0.2787500000 -2.659667526 0.2800000000 -2.451796654 0.2812500000 -2.465540742 0.2825000000 -2.574499826 0.2837500000 -2.674989624 0.2850000000 -2.702757377 0.2862500000 -2.633835309 0.2875000000 -2.491400516 0.2887500000 -2.347886712 0.2900000000 -2.296956229 0.2912500000 -2.394354611 0.2925000000 -2.605867242 0.2937500000 -2.810637755 0.2950000000 -2.871126687 0.2962500000 -2.725540599 0.2975000000 -2.434493177 0.2987500000 -2.145383604 0.3000000000 -2.000585314 0.3012500000 -2.056474772 0.3025000000 -2.266479994 0.3037500000 -2.527844229 0.3050000000 -2.746548710 0.3062500000 -2.873969037 0.3075000000 -2.905383019 0.3087500000 -2.864563005 0.3100000000 -2.798230698 0.3112500000 -2.775680044 0.3125000000 -2.869025157 0.3137500000 -3.105617733 0.3150000000 -3.423371176 0.3162500000 -3.678873382 0.3175000000 -3.727016969 0.3187500000 -3.527345504 0.3200000000 -3.192944575 0.3212500000 -2.927446032 0.3225000000 -2.881558876 0.3237500000 -3.034425633 0.3250000000 -3.199180138 0.3262500000 -3.160652624 0.3275000000 -2.845070197 0.3287500000 -2.387171014 0.3300000000 -2.034544094 0.3312500000 -1.957732820 0.3325000000 -2.114148832 0.3337500000 -2.276319162 0.3350000000 -2.206778163 0.3362500000 -1.844847257 0.3375000000 -1.359573630 0.3387500000 -1.028000040 0.3400000000 -1.034576780 0.3412500000 -1.346501964 0.3425000000 -1.755606856 0.3437500000 -2.044469581 0.3450000000 -2.140747714 0.3462500000 -2.142023530 0.3475000000 -2.203703292 0.3487500000 -2.391795420 0.3500000000 -2.623323739 0.3512500000 -2.738194660 0.3525000000 -2.637089150 0.3537500000 -2.370084913 0.3550000000 -2.106334168 0.3562500000 -2.013160205 0.3575000000 -2.141526929 0.3587500000 -2.402198441 0.3600000000 -2.640441418 0.3612500000 -2.743170141 0.3625000000 -2.698214538 0.3637500000 -2.574046725 0.3650000000 -2.452658917 0.3662500000 -2.375339523 0.3675000000 -2.336043745 0.3687500000 -2.310182457 0.3700000000 -2.281414612 0.3712500000 -2.242936262 0.3725000000 -2.182661229 0.3737500000 -2.078805886 0.3750000000 -1.918162463 0.3762500000 -1.720520350 0.3775000000 -1.540206817 0.3787500000 -1.433975295 0.3800000000 -1.417259041 0.3812500000 -1.446553603 0.3825000000 -1.447359311 0.3837500000 -1.368893492 0.3850000000 -1.222111602 0.3862500000 -1.069303958 0.3875000000 -0.9730546040 0.3887500000 -0.9464396827 0.3900000000 -0.9457532886 0.3912500000 -0.9118027761 0.3925000000 -0.8253072529 0.3937500000 -0.7299587046 0.3950000000 -0.7030474126 0.3962500000 -0.7961930820 0.3975000000 -0.9927003731 0.3987500000 -1.214482653 0.4000000000 -1.372378361 0.4012500000 -1.420982986 0.4025000000 -1.378173174 0.4037500000 -1.299164111 0.4050000000 -1.230073776 0.4062500000 -1.178847717 0.4075000000 -1.123732461 0.4087500000 -1.047505444 0.4100000000 -0.9655885661 0.4112500000 -0.9229758812 0.4125000000 -0.9615476162 0.4137500000 -1.083826431 0.4150000000 -1.242577203 0.4162500000 -1.366111806 0.4175000000 -1.402341058 0.4187500000 -1.350712658 0.4200000000 -1.259892649 0.4212500000 -1.193314322 0.4225000000 -1.186808944 0.4237500000 -1.227162904 0.4250000000 -1.265167955 0.4262500000 -1.252826487 0.4275000000 -1.178431925 0.4287500000 -1.075708880 0.4300000000 -1.001635113 0.4312500000 -0.9988536312 0.4325000000 -1.068191896 0.4337500000 -1.168759101 0.4350000000 -1.243787147 0.4362500000 -1.253699391 0.4375000000 -1.195123592 0.4387500000 -1.096436585 0.4400000000 -0.9971025647 0.4412500000 -0.9270664202 0.4425000000 -0.8983076798 0.4437500000 -0.9086091814 0.4450000000 -0.9485760393 0.4462500000 -1.004022929 0.4475000000 -1.054406681 0.4487500000 -1.074601353 0.4500000000 -1.044825752 0.4512500000 -0.9640074020 0.4525000000 -0.8549712932 0.4537500000 -0.7537218675 0.4550000000 -0.6879968773 0.4562500000 -0.6610658650 0.4575000000 -0.6545711604 0.4587500000 -0.6490420553 0.4600000000 -0.6448041682 0.4612500000 -0.6639069397 0.4625000000 -0.7290002386 0.4637500000 -0.8358930027 0.4650000000 -0.9446057501 0.4662500000 -1.000427963 0.4675000000 -0.9714288306 0.4687500000 -0.8730183907 0.4700000000 -0.7582168872 0.4712500000 -0.6792506387 0.4725000000 -0.6501776640 0.4737500000 -0.6407379276 0.4750000000 -0.6068252870 0.4762500000 -0.5326674622 0.4775000000 -0.4492847070 0.4787500000 -0.4125771700 0.4800000000 -0.4575849141 0.4812500000 -0.5657495067 0.4825000000 -0.6723666767 0.4837500000 -0.7095391295 0.4850000000 -0.6519028198 0.4862500000 -0.5309236619 0.4875000000 -0.4091614279 0.4887500000 -0.3369032168 0.4900000000 -0.3247309972 0.4912500000 -0.3492069004 0.4925000000 -0.3804673659 0.4937500000 -0.4046909512 0.4950000000 -0.4234321713 0.4962500000 -0.4357556507 0.4975000000 -0.4254894775 0.4987500000 -0.3700469062 0.000000000 0.000000000 0.1250000000E-02 9.085554639 0.2500000000E-02 -19.80531937 0.3750000000E-02 -26.28085787 0.5000000000E-02 -16.02391302 0.6250000000E-02 -1.801943239 0.7500000000E-02 5.898474070 0.8750000000E-02 4.115759250 0.1000000000E-01 -2.719456576 0.1125000000E-01 -7.674059736 0.1250000000E-01 -6.924468932 0.1375000000E-01 -1.993932243 0.1500000000E-01 2.463135919 0.1625000000E-01 2.926465645 0.1750000000E-01 -0.3054949531 0.1875000000E-01 -3.909741821 0.2000000000E-01 -4.698434296 0.2125000000E-01 -2.265226257 0.2250000000E-01 1.001127472 0.2375000000E-01 2.250109043 0.2500000000E-01 0.6459410227 0.2625000000E-01 -2.113889967 0.2750000000E-01 -3.490377696 0.2875000000E-01 -2.364409833 0.3000000000E-01 0.1145749480 0.3125000000E-01 1.705074914 0.3250000000E-01 1.103998137 0.3375000000E-01 -0.9857844960 0.3500000000E-01 -2.606324690 0.3625000000E-01 -2.338314008 0.3750000000E-01 -0.5097677695 0.3875000000E-01 1.196735617 0.4000000000E-01 1.299382010 0.4125000000E-01 -0.1913443832 0.4250000000E-01 -1.860691451 0.4375000000E-01 -2.206746118 0.4500000000E-01 -0.9683913803 0.4625000000E-01 0.7024407691 0.4750000000E-01 1.320905411 0.4875000000E-01 0.3948443354 0.5000000000E-01 -1.181344400 0.5125000000E-01 -1.971938776 0.5250000000E-01 -1.289421227 0.5375000000E-01 0.2250406840 0.5500000000E-01 1.214742027 0.5625000000E-01 0.8305245215 0.5750000000E-01 -0.5350211675 0.5875000000E-01 -1.632203613 0.6000000000E-01 -1.482498199 0.6125000000E-01 -0.2343108587 0.6250000000E-01 0.9977743032 0.6375000000E-01 1.139114478 0.6500000000E-01 0.9972117913E-01 0.6625000000E-01 -1.168457439 0.6750000000E-01 -1.528198795 0.6875000000E-01 -0.6561925227 0.7000000000E-01 0.6891978022 0.7125000000E-01 1.346663254 0.7250000000E-01 0.7673211596 0.7375000000E-01 -0.5170715086 0.7500000000E-01 -1.363529634 0.7625000000E-01 -1.003886708 0.7750000000E-01 0.3011573433 0.7875000000E-01 1.485996099 0.8000000000E-01 1.579089664 0.8125000000E-01 0.5205476869 0.8250000000E-01 -0.7707656417 0.8375000000E-01 -1.126053505 0.8500000000E-01 -0.6410898088E-01 0.8625000000E-01 1.799315479 0.8750000000E-01 3.197976218 0.8875000000E-01 3.223936781 0.9000000000E-01 2.221892599 0.9125000000E-01 1.962497251 0.9250000000E-01 4.903579870 0.9375000000E-01 12.83821128 0.9500000000E-01 25.56804571 0.9625000000E-01 40.32021066 0.9750000000E-01 52.40309584 0.9875000000E-01 57.07284249 0.1000000000 51.89232690 0.1012500000 38.35267234 0.1025000000 21.62791063 0.1037500000 8.228317443 0.1050000000 2.633030861 0.1062500000 4.868326272 0.1075000000 10.68064048 0.1087500000 14.40365778 0.1100000000 12.76499669 0.1112500000 7.061567840 0.1125000000 2.107817782 0.1137500000 2.601291105 0.1150000000 9.488704211 0.1162500000 19.05644496 0.1175000000 25.56627853 0.1187500000 25.61896401 0.1200000000 21.02032150 0.1212500000 17.88564833 0.1225000000 22.43471242 0.1237500000 36.42030206 0.1250000000 55.51629982 0.1262500000 71.92235459 0.1275000000 79.41207705 0.1287500000 77.28639251 0.1300000000 70.48742072 0.1312500000 65.88035035 0.1325000000 67.39571422 0.1337500000 73.41821274 0.1350000000 78.09646979 0.1362500000 75.46467848 0.1375000000 63.43415259 0.1387500000 45.03782261 0.1400000000 26.38049270 0.1412500000 12.96373170 0.1425000000 6.887063524 0.1437500000 6.492435424 0.1450000000 8.206550752 0.1462500000 9.005679678 0.1475000000 7.881206980 0.1487500000 5.694118589 0.1500000000 3.966851659 0.1512500000 3.663268340 0.1525000000 4.693361533 0.1537500000 6.197110538 0.1550000000 7.184406241 0.1562500000 7.076356980 0.1575000000 5.940018224 0.1587500000 4.429425943 0.1600000000 3.505467947 0.1612500000 3.999450026 0.1625000000 6.146946463 0.1637500000 9.331548415 0.1650000000 12.27680456 0.1662500000 13.69507701 0.1675000000 13.05548140 0.1687500000 10.95552311 0.1700000000 8.781536987 0.1712500000 7.831242886 0.1725000000 8.487678752 0.1737500000 10.03094535 0.1750000000 11.22071303 0.1762500000 11.21284957 0.1775000000 10.13095761 0.1787500000 8.890206859 0.1800000000 8.447773911 0.1812500000 9.077636552 0.1825000000 10.21497575 0.1837500000 10.94943929 0.1850000000 10.75026236 0.1862500000 9.864683510 0.1875000000 9.126133953 0.1887500000 9.374609972 0.1900000000 10.95180343 0.1912500000 13.60863866 0.1925000000 16.79623126 0.1937500000 20.02375638 0.1950000000 22.98028241 0.1962500000 25.38428889 0.1975000000 26.79127255 0.1987500000 26.62604511 0.2000000000 24.49362642 0.2012500000 20.55387765 0.2025000000 15.65019636 0.2037500000 11.03868988 0.2050000000 7.844415586 0.2062500000 6.560602078 0.2075000000 6.874983283 0.2087500000 7.896473734 0.2100000000 8.625564375 0.2112500000 8.408575333 0.2125000000 7.172922385 0.2137500000 5.384029548 0.2150000000 3.792887027 0.2162500000 3.102500824 0.2175000000 3.679439445 0.2187500000 5.404924017 0.2200000000 7.714537939 0.2212500000 9.814885732 0.2225000000 10.99554327 0.2237500000 10.90542374 0.2250000000 9.670794995 0.2262500000 7.805542661 0.2275000000 5.966024925 0.2287500000 4.673826493 0.2300000000 4.131387113 0.2312500000 4.195878905 0.2325000000 4.498280651 0.2337500000 4.638814745 0.2350000000 4.372037386 0.2362500000 3.707495168 0.2375000000 2.884768050 0.2387500000 2.231330524 0.2400000000 1.969761169 0.2412500000 2.080598515 0.2425000000 2.312279275 0.2437500000 2.348125063 0.2450000000 2.032143620 0.2462500000 1.497820767 0.2475000000 1.094494062 0.2487500000 1.145272520 0.2500000000 1.702273416 0.2512500000 2.482960618 0.2525000000 3.047872581 0.2537500000 3.099459582 0.2550000000 2.683042267 0.2562500000 2.137844760 0.2575000000 1.834250152 0.2587500000 1.898593484 0.2600000000 2.137326300 0.2612500000 2.216634373 0.2625000000 1.952749474 0.2637500000 1.481018395 0.2650000000 1.167337185 0.2662500000 1.327717766 0.2675000000 1.970953571 0.2687500000 2.760542342 0.2700000000 3.224427736 0.2712500000 3.058413355 0.2725000000 2.309785015 0.2737500000 1.327335596 0.2750000000 0.5352393950 0.2762500000 0.1984744101 0.2775000000 0.3250852077 0.2787500000 0.7323974670 0.2800000000 1.192775414 0.2812500000 1.548670717 0.2825000000 1.744594159 0.2837500000 1.798955983 0.2850000000 1.767459495 0.2862500000 1.723398192 0.2875000000 1.741723133 0.2887500000 1.867797247 0.2900000000 2.080718827 0.2912500000 2.287245538 0.2925000000 2.370069895 0.2937500000 2.268485963 0.2950000000 2.032790203 0.2962500000 1.804782403 0.2975000000 1.731557870 0.2987500000 1.873054510 0.3000000000 2.169362290 0.3012500000 2.486693371 0.3025000000 2.701808392 0.3037500000 2.762758865 0.3050000000 2.693003615 0.3062500000 2.554996306 0.3075000000 2.413301159 0.3087500000 2.319921372 0.3100000000 2.310981055 0.3112500000 2.392813161 0.3125000000 2.518567167 0.3137500000 2.585892291 0.3150000000 2.483394260 0.3162500000 2.170979525 0.3175000000 1.733938413 0.3187500000 1.352130845 0.3200000000 1.186102483 0.3212500000 1.256795823 0.3225000000 1.417134970 0.3237500000 1.452418930 0.3250000000 1.243644557 0.3262500000 0.8679090787 0.3275000000 0.5495585606 0.3287500000 0.4909496901 0.3300000000 0.7118660506 0.3312500000 1.027059797 0.3325000000 1.185904303 0.3337500000 1.068590309 0.3350000000 0.7848211801 0.3362500000 0.5952559617 0.3375000000 0.7151198220 0.3387500000 1.151960614 0.3400000000 1.701310358 0.3412500000 2.098719217 0.3425000000 2.205830180 0.3437500000 2.087708172 0.3450000000 1.931187096 0.3462500000 1.881173719 0.3475000000 1.930736178 0.3487500000 1.948091180 0.3500000000 1.807857032 0.3512500000 1.511769890 0.3525000000 1.199420781 0.3537500000 1.043956799 0.3550000000 1.120217309 0.3562500000 1.349626297 0.3575000000 1.559589612 0.3587500000 1.604623769 0.3600000000 1.455261179 0.3612500000 1.195968235 0.3625000000 0.9485397417 0.3637500000 0.7889752327 0.3650000000 0.7170884313 0.3662500000 0.6857870855 0.3675000000 0.6504003069 0.3687500000 0.5942282109 0.3700000000 0.5196510996 0.3712500000 0.4283667876 0.3725000000 0.3182531068 0.3737500000 0.1991561695 0.3750000000 0.1045764402 0.3762500000 0.7759893090E-01 0.3775000000 0.1363082936 0.3787500000 0.2491234276 0.3800000000 0.3475005070 0.3812500000 0.3723779990 0.3825000000 0.3189787406 0.3837500000 0.2419589869 0.3850000000 0.2139992295 0.3862500000 0.2700252586 0.3875000000 0.3824303115 0.3887500000 0.4876879948 0.3900000000 0.5420867664 0.3912500000 0.5598651169 0.3925000000 0.6014528472 0.3937500000 0.7208169197 0.3950000000 0.9147504160 0.3962500000 1.115615036 0.3975000000 1.234198853 0.3987500000 1.219840344 0.4000000000 1.092471454 0.4012500000 0.9245389415 0.4025000000 0.7898018011 0.4037500000 0.7193847253 0.4050000000 0.6960678960 0.4062500000 0.6853550108 0.4075000000 0.6734608382 0.4087500000 0.6798901902 0.4100000000 0.7357013665 0.4112500000 0.8475746663 0.4125000000 0.9792037129 0.4137500000 1.067287126 0.4150000000 1.061783821 0.4162500000 0.9608804651 0.4175000000 0.8145602850 0.4187500000 0.6934317805 0.4200000000 0.6442833880 0.4212500000 0.6628106041 0.4225000000 0.7013901221 0.4237500000 0.7052788860 0.4250000000 0.6515567458 0.4262500000 0.5642821864 0.4275000000 0.4964865386 0.4287500000 0.4924292982 0.4300000000 0.5563436751 0.4312500000 0.6484835200 0.4325000000 0.7100930402 0.4337500000 0.6996164049 0.4350000000 0.6161940830 0.4362500000 0.4967585614 0.4375000000 0.3915954999 0.4387500000 0.3364945619 0.4400000000 0.3388183854 0.4412500000 0.3822493312 0.4425000000 0.4414809991 0.4437500000 0.4940409658 0.4450000000 0.5233361151 0.4462500000 0.5171009109 0.4475000000 0.4689445761 0.4487500000 0.3848284525 0.4500000000 0.2876442762 0.4512500000 0.2112447262 0.4525000000 0.1835236161 0.4537500000 0.2094917222 0.4550000000 0.2684934675 0.4562500000 0.3298951159 0.4575000000 0.3759059123 0.4587500000 0.4125484748 0.4600000000 0.4584313731 0.4612500000 0.5200599924 0.4625000000 0.5757619250 0.4637500000 0.5850892731 0.4650000000 0.5194236651 0.4662500000 0.3897199995 0.4675000000 0.2466727681 0.4687500000 0.1495446932 0.4700000000 0.1261104730 0.4712500000 0.1553719115 0.4725000000 0.1877565978 0.4737500000 0.1872184123 0.4750000000 0.1609844880 0.4762500000 0.1519545065 0.4775000000 0.1992630546 0.4787500000 0.2993696266 0.4800000000 0.4006697460 0.4812500000 0.4379025060 0.4825000000 0.3802535424 0.4837500000 0.2556187440 0.4850000000 0.1323222698 0.4862500000 0.7300411351E-01 0.4875000000 0.9604720333E-01 0.4887500000 0.1716770573 0.4900000000 0.2509121348 0.4912500000 0.3006677157 0.4925000000 0.3175093934 0.4937500000 0.3144052634 0.4950000000 0.2988146702 0.4962500000 0.2655387173 0.4975000000 0.2107236219 0.4987500000 0.1509718547 elk-9.6.8/examples/TDDFT-time-evolution/PaxHeaders/FeCo-Ehrenfest0000644000000000000000000000013214626155522021520 xustar0030 mtime=1717099346.040997462 30 atime=1717099346.039997457 30 ctime=1717099346.040997462 elk-9.6.8/examples/TDDFT-time-evolution/FeCo-Ehrenfest/0000755002504400250440000000000014626155522024317 5ustar00dewhurstdewhurst00000000000000elk-9.6.8/examples/TDDFT-time-evolution/FeCo-Ehrenfest/PaxHeaders/elk.in0000644000000000000000000000013214626155522022700 xustar0030 mtime=1717099346.041997468 30 atime=1717099346.040997462 30 ctime=1717099346.041997468 elk-9.6.8/examples/TDDFT-time-evolution/FeCo-Ehrenfest/elk.in0000644002504400250440000000365514626155522025433 0ustar00dewhurstdewhurst00000000000000 ! TDDFT time evolution of FeCo with Ehrenfest nuclear dynamics. This is a ! two-step process: first the forces under the influence of a laser pulse are ! calculated. In the second step, the same calculation is repeated but this time ! the forces are used to find the motion of the nuclei. The back-reaction of ! this nuclear motion is applied to the electronic system. ! This approach is valid only for small amplitude nuclear motion. tasks 0 ! ground-state run 450 ! generate the laser pulse A-field 460 ! time evolution with laser pulse and forces calculated 462 ! same time evolution with Ehrenfest dynamics using the previous forces ! calculate forces at each time step tforce .true. ! total simulation time tstime 400.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.4 ! 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 150.0 0.03 0.0 0.0 240.0 120.0 nxoapwlo 1 tshift .false. spinorb .true. bfieldc 0.0 0.0 0.001 nempty 20 ngridk 4 4 4 ! 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-9.6.8/examples/TDDFT-time-evolution/PaxHeaders/Ni-laser-pulse0000644000000000000000000000013214626155522021563 xustar0030 mtime=1717099346.044997484 30 atime=1717099346.042997473 30 ctime=1717099346.044997484 elk-9.6.8/examples/TDDFT-time-evolution/Ni-laser-pulse/0000755002504400250440000000000014626155522024362 5ustar00dewhurstdewhurst00000000000000elk-9.6.8/examples/TDDFT-time-evolution/Ni-laser-pulse/PaxHeaders/elk.in0000644000000000000000000000013214626155522022743 xustar0030 mtime=1717099346.044997484 30 atime=1717099346.044997484 30 ctime=1717099346.044997484 elk-9.6.8/examples/TDDFT-time-evolution/Ni-laser-pulse/elk.in0000644002504400250440000000476114626155522025475 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 JTOT_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-9.6.8/examples/PaxHeaders/hybrids0000644000000000000000000000013214626155522014604 xustar0030 mtime=1717099346.051997522 30 atime=1717099346.046997495 30 ctime=1717099346.051997522 elk-9.6.8/examples/hybrids/0000755002504400250440000000000014626155522017403 5ustar00dewhurstdewhurst00000000000000elk-9.6.8/examples/hybrids/PaxHeaders/Si-libxc0000644000000000000000000000013014626155522016254 xustar0030 mtime=1717099346.049997511 28 atime=1717099346.0479975 30 ctime=1717099346.049997511 elk-9.6.8/examples/hybrids/Si-libxc/0000755002504400250440000000000014626155522021055 5ustar00dewhurstdewhurst00000000000000elk-9.6.8/examples/hybrids/Si-libxc/PaxHeaders/elk.in0000644000000000000000000000013214626155522017436 xustar0030 mtime=1717099346.050997516 30 atime=1717099346.049997511 30 ctime=1717099346.050997516 elk-9.6.8/examples/hybrids/Si-libxc/elk.in0000644002504400250440000000112714626155522022161 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-9.6.8/examples/hybrids/PaxHeaders/Si0000644000000000000000000000013214626155522015157 xustar0030 mtime=1717099346.052997527 30 atime=1717099346.051997522 30 ctime=1717099346.052997527 elk-9.6.8/examples/hybrids/Si/0000755002504400250440000000000014626155522017756 5ustar00dewhurstdewhurst00000000000000elk-9.6.8/examples/hybrids/Si/PaxHeaders/elk.in0000644000000000000000000000013214626155522016337 xustar0030 mtime=1717099346.053997532 30 atime=1717099346.053997532 30 ctime=1717099346.053997532 elk-9.6.8/examples/hybrids/Si/elk.in0000644002504400250440000000057414626155522021067 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-9.6.8/examples/PaxHeaders/meta-GGA0000644000000000000000000000013214626155522014462 xustar0030 mtime=1717099346.059997565 30 atime=1717099346.054997538 30 ctime=1717099346.059997565 elk-9.6.8/examples/meta-GGA/0000755002504400250440000000000014626155522017261 5ustar00dewhurstdewhurst00000000000000elk-9.6.8/examples/meta-GGA/PaxHeaders/GaAs-r2SCAN0000644000000000000000000000013214626155522016263 xustar0030 mtime=1717099346.057997554 30 atime=1717099346.056997549 30 ctime=1717099346.057997554 elk-9.6.8/examples/meta-GGA/GaAs-r2SCAN/0000755002504400250440000000000014626155522021062 5ustar00dewhurstdewhurst00000000000000elk-9.6.8/examples/meta-GGA/GaAs-r2SCAN/PaxHeaders/elk.in0000644000000000000000000000013214626155522017443 xustar0030 mtime=1717099346.058997559 30 atime=1717099346.058997559 30 ctime=1717099346.058997559 elk-9.6.8/examples/meta-GGA/GaAs-r2SCAN/elk.in0000644002504400250440000000273614626155522022175 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). ! ! We use the re-regularised version of SCAN [J. W. Furness, A. D. Kaplan, ! J. Ning, J. P. Perdew and J. Sun, J. Phys. Chem. Lett. 2020, 11, 8208 (2020)] ! in order to improve numerical stability. ! ! The exchange-correlation potential is evaluated using so-called 'partial ! deorbitalisation', where the functional derivative δτ(r')/δρ(r) is performed ! using an approximate kinetic energy density functional (determined by ktype). ! See arXiv:2304.02363. ! ! This example requires the Libxc functional library. tasks 0 ! run ground-state 20 ! plot band structure 341 ! plot w_xc(r) = δE_xc/δτ(r) ! Libxc re-regularised SCAN functional xctype 100 497 498 ! This sets several input parameters to ensure good convergence for meta-GGA ! calculations. See the stdout of Elk for the parameters and their values. metagga .true. mixtype 1 ngridk 4 4 4 plot1d 5 500 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 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-9.6.8/examples/meta-GGA/PaxHeaders/SiO2-deorbitalised0000644000000000000000000000013214626155522020046 xustar0030 mtime=1717099346.061997575 30 atime=1717099346.059997565 30 ctime=1717099346.061997575 elk-9.6.8/examples/meta-GGA/SiO2-deorbitalised/0000755002504400250440000000000014626155522022645 5ustar00dewhurstdewhurst00000000000000elk-9.6.8/examples/meta-GGA/SiO2-deorbitalised/PaxHeaders/elk.in0000644000000000000000000000013214626155522021226 xustar0030 mtime=1717099346.062997581 30 atime=1717099346.061997575 30 ctime=1717099346.062997581 elk-9.6.8/examples/meta-GGA/SiO2-deorbitalised/elk.in0000644002504400250440000000346114626155522023754 0ustar00dewhurstdewhurst00000000000000 ! Fully deorbitalised meta-GGA example. See Daniel Mejia-Rodriguez and S. B. Trickey ! Phys. Rev. B 98, 115161 (2018). ! This example requires the Libxc functional library. tasks 0 20 ! XC_MGGA_X_REVSCANL, XC_MGGA_C_SCANL xctype 100 701 702 ! This sets several input parameters to ensure good convergence for meta-GGA ! calculations. See the stdout of Elk for the parameters and their values. metagga .true. ngridk 2 2 2 mixtype 1 plot1d 5 500 : nvp1d, npp1d 0.5 0.0 0.0 : vlvp1d 0.0 0.0 0.0 0.5 0.5 0.0 0.5 0.5 0.5 0.0 0.0 0.0 avec 4.644946754 8.045283776 0.000000000 9.289893508 0.000000000 0.000000000 0.000000000 0.000000000 10.21472546 sppath '../../../species/' atoms 2 : nspecies 'Si.in' : spfname 3 : natoms; atposl, bfcmt below 0.00000000 0.46970000 0.66666667 0.00000000 0.00000000 0.00000000 0.46970000 0.53030000 0.33333333 0.00000000 0.00000000 0.00000000 0.53030000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 'O.in' : spfname 6 : natoms; atposl, bfcmt below 0.26690000 0.14660000 0.78577000 0.00000000 0.00000000 0.00000000 0.14660000 0.58650000 0.45243667 0.00000000 0.00000000 0.00000000 0.58650000 0.26690000 0.11910333 0.00000000 0.00000000 0.00000000 0.41350000 0.85340000 0.21423000 0.00000000 0.00000000 0.00000000 0.73310000 0.41350000 0.54756333 0.00000000 0.00000000 0.00000000 0.85340000 0.73310000 0.88089667 0.00000000 0.00000000 0.00000000 elk-9.6.8/examples/PaxHeaders/phonons-superconductivity0000644000000000000000000000013214626155522020425 xustar0030 mtime=1717099346.101997791 30 atime=1717099346.063997586 30 ctime=1717099346.101997791 elk-9.6.8/examples/phonons-superconductivity/0000755002504400250440000000000014626155522023224 5ustar00dewhurstdewhurst00000000000000elk-9.6.8/examples/phonons-superconductivity/PaxHeaders/GaAs-DFPT0000644000000000000000000000013214626155522021773 xustar0030 mtime=1717099346.065997597 30 atime=1717099346.064997592 30 ctime=1717099346.065997597 elk-9.6.8/examples/phonons-superconductivity/GaAs-DFPT/0000755002504400250440000000000014626155522024572 5ustar00dewhurstdewhurst00000000000000elk-9.6.8/examples/phonons-superconductivity/GaAs-DFPT/PaxHeaders/elk.in0000644000000000000000000000013214626155522023153 xustar0030 mtime=1717099346.066997602 30 atime=1717099346.066997602 30 ctime=1717099346.066997602 elk-9.6.8/examples/phonons-superconductivity/GaAs-DFPT/elk.in0000644002504400250440000000212514626155522025675 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 ! increase the angular momentum cut-off on the inner part of the muffin-tin lmaxi 2 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-9.6.8/examples/phonons-superconductivity/PaxHeaders/Nb-DFPT0000644000000000000000000000013214626155522021517 xustar0030 mtime=1717099346.069997619 30 atime=1717099346.068997613 30 ctime=1717099346.069997619 elk-9.6.8/examples/phonons-superconductivity/Nb-DFPT/0000755002504400250440000000000014626155522024316 5ustar00dewhurstdewhurst00000000000000elk-9.6.8/examples/phonons-superconductivity/Nb-DFPT/PaxHeaders/elk.in0000644000000000000000000000013214626155522022677 xustar0030 mtime=1717099346.070997624 30 atime=1717099346.070997624 30 ctime=1717099346.070997624 elk-9.6.8/examples/phonons-superconductivity/Nb-DFPT/elk.in0000644002504400250440000000376514626155522025434 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 ! increase angular momentum cut-off on inner part of muffin-tin to improve ! accuracy of atomic force derivatives lmaxi 2 ! 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-9.6.8/examples/phonons-superconductivity/PaxHeaders/Si-DFPT0000644000000000000000000000013014626155522021531 xustar0029 mtime=1717099346.07399764 30 atime=1717099346.071997629 29 ctime=1717099346.07399764 elk-9.6.8/examples/phonons-superconductivity/Si-DFPT/0000755002504400250440000000000014626155522024332 5ustar00dewhurstdewhurst00000000000000elk-9.6.8/examples/phonons-superconductivity/Si-DFPT/PaxHeaders/elk.in0000644000000000000000000000012714626155522022717 xustar0029 mtime=1717099346.07399764 29 atime=1717099346.07399764 29 ctime=1717099346.07399764 elk-9.6.8/examples/phonons-superconductivity/Si-DFPT/elk.in0000644002504400250440000000257214626155522025443 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 ! increase angular momentum cut-off on inner part of muffin-tin lmaxi 2 ! 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-9.6.8/examples/phonons-superconductivity/PaxHeaders/Al-DFPT0000644000000000000000000000013214626155522021514 xustar0030 mtime=1717099346.076997656 30 atime=1717099346.074997646 30 ctime=1717099346.076997656 elk-9.6.8/examples/phonons-superconductivity/Al-DFPT/0000755002504400250440000000000014626155522024313 5ustar00dewhurstdewhurst00000000000000elk-9.6.8/examples/phonons-superconductivity/Al-DFPT/PaxHeaders/elk.in0000644000000000000000000000013214626155522022674 xustar0030 mtime=1717099346.076997656 30 atime=1717099346.076997656 30 ctime=1717099346.076997656 elk-9.6.8/examples/phonons-superconductivity/Al-DFPT/elk.in0000644002504400250440000000366514626155522025430 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 ! increase angular momentum cut-off on inner part of muffin-tin to improve the ! accuracy of atomic force derivatives lmaxi 2 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-9.6.8/examples/phonons-superconductivity/PaxHeaders/Nb-supercell0000644000000000000000000000013214626155522022760 xustar0030 mtime=1717099346.080997678 30 atime=1717099346.078997667 30 ctime=1717099346.080997678 elk-9.6.8/examples/phonons-superconductivity/Nb-supercell/0000755002504400250440000000000014626155522025557 5ustar00dewhurstdewhurst00000000000000elk-9.6.8/examples/phonons-superconductivity/Nb-supercell/PaxHeaders/elk.in0000644000000000000000000000013214626155522024140 xustar0030 mtime=1717099346.080997678 30 atime=1717099346.080997678 30 ctime=1717099346.080997678 elk-9.6.8/examples/phonons-superconductivity/Nb-supercell/elk.in0000644002504400250440000000700514626155522026664 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-9.6.8/examples/phonons-superconductivity/PaxHeaders/NiTe20000644000000000000000000000013214626155522021346 xustar0030 mtime=1717099346.083997694 30 atime=1717099346.082997689 30 ctime=1717099346.083997694 elk-9.6.8/examples/phonons-superconductivity/NiTe2/0000755002504400250440000000000014626155522024145 5ustar00dewhurstdewhurst00000000000000elk-9.6.8/examples/phonons-superconductivity/NiTe2/PaxHeaders/elk.in0000644000000000000000000000013214626155522022526 xustar0030 mtime=1717099346.084997699 30 atime=1717099346.084997699 30 ctime=1717099346.084997699 elk-9.6.8/examples/phonons-superconductivity/NiTe2/elk.in0000644002504400250440000000410314626155522025246 0ustar00dewhurstdewhurst00000000000000 ! This example generates a phonon dispersion for the superconductor NiTe2 using ! density functional perturbation theory (DFPT). The superconducting critical ! temperature is also computed using McMillan's formula and by solving the ! Eliashberg equations. ! Example thanks to Jerry Li. tasks 0 : ground state run 205 : compute the dynamical matrices ! increase the number of radial points in the muffin-tin for accurate gradients nrmtscf 12.0 ! increase the angular momentum cut-off on the inner part of the muffin-tin lmaxi 3 ! reduce Broyden mixing parameter broydpm 0.04 0.01 ! number of phonon q-points ngridq 2 2 2 ! the k-point grid has to be commensurate with the q-point grid ngridk 8 8 8 rgkmax 8.0 gmaxvr 16.0 nxlo 1 lmaxo 8 swidth 0.005 autolinengy .true. ! 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 8 400 : nvp1d, npp1d 0.0000 0.0000 0.0000 0.5000 0.0000 0.0000 0.3333 0.3333 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.5000 0.5000 0.0000 0.5000 0.3333 0.3333 0.5000 0.0000 0.0000 0.5000 avec 0.8660254038 -0.5000000000 0.0000000000 0.0000000000 1.0000000000 0.0000000000 0.0000000000 0.0000000000 1.3864166672 scale 7.3083546493 sppath '../../../species/' atoms 2 : nspecies 'Te.in' : spfname 2 0.333333333333333 0.666666666666667 0.241916750000000 0.00000000 0.00000000 0.00000000 0.666666666666667 0.333333333333333 0.758083250000000 0.00000000 0.00000000 0.00000000 'Ni.in' : spfname 1 0.000000000000000 0.000000000000000 0.000000000000000 0.00000000 0.00000000 0.00000000 elk-9.6.8/examples/phonons-superconductivity/PaxHeaders/Al-supercell0000644000000000000000000000013114626155522022754 xustar0030 mtime=1717099346.087997716 29 atime=1717099346.08699771 30 ctime=1717099346.087997716 elk-9.6.8/examples/phonons-superconductivity/Al-supercell/0000755002504400250440000000000014626155522025554 5ustar00dewhurstdewhurst00000000000000elk-9.6.8/examples/phonons-superconductivity/Al-supercell/PaxHeaders/elk.in0000644000000000000000000000013214626155522024135 xustar0030 mtime=1717099346.088997721 30 atime=1717099346.087997716 30 ctime=1717099346.088997721 elk-9.6.8/examples/phonons-superconductivity/Al-supercell/elk.in0000644002504400250440000000354714626155522026670 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-9.6.8/examples/phonons-superconductivity/PaxHeaders/Ni-supercell0000644000000000000000000000013214626155522022767 xustar0030 mtime=1717099346.095997759 30 atime=1717099346.089997726 30 ctime=1717099346.095997759 elk-9.6.8/examples/phonons-superconductivity/Ni-supercell/0000755002504400250440000000000014626155522025566 5ustar00dewhurstdewhurst00000000000000elk-9.6.8/examples/phonons-superconductivity/Ni-supercell/PaxHeaders/PHDISP.OUT0000644000000000000000000000013214626155522024424 xustar0030 mtime=1717099346.091997737 30 atime=1717099346.091997737 30 ctime=1717099346.091997737 elk-9.6.8/examples/phonons-superconductivity/Ni-supercell/PHDISP.OUT0000644002504400250440000012660214626155522027155 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-9.6.8/examples/phonons-superconductivity/Ni-supercell/PaxHeaders/PHDLINES.OUT0000644000000000000000000000013214626155522024643 xustar0030 mtime=1717099346.094997753 30 atime=1717099346.094997753 30 ctime=1717099346.094997753 elk-9.6.8/examples/phonons-superconductivity/Ni-supercell/PHDLINES.OUT0000644002504400250440000000062014626155522027363 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-9.6.8/examples/phonons-superconductivity/Ni-supercell/PaxHeaders/elk.in0000644000000000000000000000013214626155522024147 xustar0030 mtime=1717099346.096997764 30 atime=1717099346.096997764 30 ctime=1717099346.096997764 elk-9.6.8/examples/phonons-superconductivity/Ni-supercell/elk.in0000644002504400250440000000202014626155522026663 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-9.6.8/examples/phonons-superconductivity/PaxHeaders/MgB2-DFPT0000644000000000000000000000012714626155522021713 xustar0029 mtime=1717099346.09999778 29 atime=1717099346.09799777 29 ctime=1717099346.09999778 elk-9.6.8/examples/phonons-superconductivity/MgB2-DFPT/0000755002504400250440000000000014626155522024506 5ustar00dewhurstdewhurst00000000000000elk-9.6.8/examples/phonons-superconductivity/MgB2-DFPT/PaxHeaders/elk.in0000644000000000000000000000013114626155522023066 xustar0030 mtime=1717099346.100997786 29 atime=1717099346.09999778 30 ctime=1717099346.100997786 elk-9.6.8/examples/phonons-superconductivity/MgB2-DFPT/elk.in0000644002504400250440000000327214626155522025615 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 wrtdsk .false. ! 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 ! increase angular momentum cut-off on the inner part of the muffin-tin to ! improve accuracy of the atomic force derivatives lmaxi 3 ! 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-9.6.8/examples/phonons-superconductivity/PaxHeaders/Pb-DFPT0000644000000000000000000000013214626155522021521 xustar0030 mtime=1717099346.102997796 30 atime=1717099346.101997791 30 ctime=1717099346.102997796 elk-9.6.8/examples/phonons-superconductivity/Pb-DFPT/0000755002504400250440000000000014626155522024320 5ustar00dewhurstdewhurst00000000000000elk-9.6.8/examples/phonons-superconductivity/Pb-DFPT/PaxHeaders/elk.in0000644000000000000000000000013214626155522022701 xustar0030 mtime=1717099346.103997802 30 atime=1717099346.103997802 30 ctime=1717099346.103997802 elk-9.6.8/examples/phonons-superconductivity/Pb-DFPT/elk.in0000644002504400250440000000245514626155522025431 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 wrtdsk .false. ngridq 4 4 4 ! large number of muffin-tin points required for accurate derivatives nrmtscf 4 ! increase angular momentum cut-off on inner part of muffin-tin lmaxi 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-9.6.8/examples/PaxHeaders/piezoelectric0000644000000000000000000000013214626155522016001 xustar0030 mtime=1717099346.106997818 30 atime=1717099346.105997813 30 ctime=1717099346.106997818 elk-9.6.8/examples/piezoelectric/0000755002504400250440000000000014626155522020600 5ustar00dewhurstdewhurst00000000000000elk-9.6.8/examples/piezoelectric/PaxHeaders/hBN0000644000000000000000000000013214626155522016450 xustar0030 mtime=1717099346.107997823 30 atime=1717099346.106997818 30 ctime=1717099346.107997823 elk-9.6.8/examples/piezoelectric/hBN/0000755002504400250440000000000014626155522021247 5ustar00dewhurstdewhurst00000000000000elk-9.6.8/examples/piezoelectric/hBN/PaxHeaders/elk.in0000644000000000000000000000013214626155522017630 xustar0030 mtime=1717099346.108997829 30 atime=1717099346.108997829 30 ctime=1717099346.108997829 elk-9.6.8/examples/piezoelectric/hBN/elk.in0000644002504400250440000000304214626155522022351 0ustar00dewhurstdewhurst00000000000000 ! This generates the piezoelectric tensor of hexagonal boron nitride. tasks 380 highq .true. ! Atomic positions generated by spacegroup version 1.2.01 ! Hermann-Mauguin symbol : P63/mmc ! Hall symbol : -P 6c 2c ! Schoenflies symbol : D6h^4 ! space group number : 194 ! lattice constants (a,b,c) : 4.743210000 4.743210000 12.64227000 ! angles in degrees (bc,ac,ab) : 90.00000000 90.00000000 120.0000000 ! number of conventional unit cells : 1 1 1 ! reduction to primitive cell : T ! Wyckoff positions : ! species : 1, B ! 0.3333333333 0.6666666667 0.2500000000 ! species : 2, N ! 0.3333333333 0.6666666667 0.7500000000 avec 2.371605000 4.107740355 0.000000000 4.743210000 0.000000000 0.000000000 0.000000000 0.000000000 12.64227000 sppath '../../../species/' atoms 2 : nspecies 'B.in' : spfname 2 : natoms; atposl, bfcmt below 0.66666667 0.66666667 0.25000000 0.00000000 0.00000000 0.00000000 0.33333333 0.33333333 0.75000000 0.00000000 0.00000000 0.00000000 'N.in' : spfname 2 : natoms; atposl, bfcmt below 0.66666667 0.66666667 0.75000000 0.00000000 0.00000000 0.00000000 0.33333333 0.33333333 0.25000000 0.00000000 0.00000000 0.00000000 elk-9.6.8/examples/PaxHeaders/batch-calculations0000644000000000000000000000013114626155522016677 xustar0030 mtime=1717099346.115997866 29 atime=1717099346.11099784 30 ctime=1717099346.115997866 elk-9.6.8/examples/batch-calculations/0000755002504400250440000000000014626155522021477 5ustar00dewhurstdewhurst00000000000000elk-9.6.8/examples/batch-calculations/PaxHeaders/DFT+U0000644000000000000000000000013214626155522017515 xustar0030 mtime=1717099346.113997856 30 atime=1717099346.111997845 30 ctime=1717099346.113997856 elk-9.6.8/examples/batch-calculations/DFT+U/0000755002504400250440000000000014626155522022314 5ustar00dewhurstdewhurst00000000000000elk-9.6.8/examples/batch-calculations/DFT+U/PaxHeaders/elk.in0000644000000000000000000000013214626155522020675 xustar0030 mtime=1717099346.113997856 30 atime=1717099346.113997856 30 ctime=1717099346.113997856 elk-9.6.8/examples/batch-calculations/DFT+U/elk.in0000644002504400250440000000272314626155522023423 0ustar00dewhurstdewhurst00000000000000 ! Batch calculation of muffin-tin moment vs U for NiO. ! See examples/DFT+U/NiO-LDA+U-FLL-Ykwa/elk.in for details. ! Relevant output variables are stored in the file VARIABLES.OUT. ! To extract the set of U values use: ! ! sed -n '/udufix/{n;n;p}' VARIABLES.OUT > udufix ! ! and to extract the corresponding Ni muffin-tin moment use: ! ! sed -n '/mommt/{n;n;p}' VARIABLES.OUT > mommt ! ! These can be combined into a single file using: ! ! paste udufix mommt > mom_vs_U ! ! which can be plotted. ! run several consecutive ground-state calculations tasks 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 ! enable batch mode batch .true. ! the U is changed between each batch calculation dft+u 1 5 : dftu, inpdftu 1 2 0.1 0.01 : is, l, U, change in U between calculations 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-9.6.8/examples/batch-calculations/PaxHeaders/energy-volume0000644000000000000000000000013214626155522021476 xustar0030 mtime=1717099346.118997883 30 atime=1717099346.115997866 30 ctime=1717099346.118997883 elk-9.6.8/examples/batch-calculations/energy-volume/0000755002504400250440000000000014626155522024275 5ustar00dewhurstdewhurst00000000000000elk-9.6.8/examples/batch-calculations/energy-volume/PaxHeaders/e_vs_v0000644000000000000000000000013214626155522022757 xustar0030 mtime=1717099346.117997877 30 atime=1717099346.117997877 30 ctime=1717099346.117997877 elk-9.6.8/examples/batch-calculations/energy-volume/e_vs_v0000644002504400250440000000056014626155522025502 0ustar00dewhurstdewhurst00000000000000 250.000000000 -2504.04279252 265.302000000 -2504.05460812 281.216000000 -2504.06255590 297.754000000 -2504.06722608 314.928000000 -2504.06895995 332.750000000 -2504.06852612 351.232000000 -2504.06610012 370.386000000 -2504.06199043 elk-9.6.8/examples/batch-calculations/energy-volume/PaxHeaders/elk.in0000644000000000000000000000013214626155522022656 xustar0030 mtime=1717099346.119997888 30 atime=1717099346.119997888 30 ctime=1717099346.119997888 elk-9.6.8/examples/batch-calculations/energy-volume/elk.in0000644002504400250440000000264714626155522025411 0ustar00dewhurstdewhurst00000000000000 ! Elk can run a batch of calculations while varying a particular input ! parameter. ! In this example, we use this feature to generate an energy-volume curve of ! AlAs. Only certain variables can be varied but more can be added on request. ! The output data is stored in a standard format in the file VARIABLES.OUT. ! To extract the set of volumes use: ! ! sed -n '/omega/{n;n;p}' VARIABLES.OUT > omega ! ! and to extract the corresponding total energies use: ! ! sed -n '/engytot/{n;n;p}' VARIABLES.OUT > engytot ! ! These can be combined into a single file using: ! ! paste omega engytot > e_vs_v ! ! which can be plotted or fitted to an equation of state. ! run several consecutive ground-state calculations tasks 0 1 1 1 1 1 1 1 1 1 1 ! enable a batch calculation batch .true. ! improve smoothness of the energy-volume curve by *not* trimming the Kohn-Sham ! potential Vₛ(G) for |G| > 2*gkmax trimvg .false. ! GGA exchange-correlation functional xctype 20 ! these are the lattice vectors and their changes between each calculation avec 5.0 5.0 0.0 0.1 0.1 0.0 5.0 0.0 5.0 0.1 0.0 0.1 0.0 5.0 5.0 0.0 0.1 0.1 ngridk 8 8 8 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 elk-9.6.8/examples/PaxHeaders/ultra-long-range0000644000000000000000000000013214626155522016316 xustar0030 mtime=1717099346.121997899 30 atime=1717099346.120997893 30 ctime=1717099346.121997899 elk-9.6.8/examples/ultra-long-range/0000755002504400250440000000000014626155522021115 5ustar00dewhurstdewhurst00000000000000elk-9.6.8/examples/ultra-long-range/PaxHeaders/Cr-SDW0000644000000000000000000000013214626155522017315 xustar0030 mtime=1717099346.123997909 30 atime=1717099346.121997899 30 ctime=1717099346.123997909 elk-9.6.8/examples/ultra-long-range/Cr-SDW/0000755002504400250440000000000014626155522022114 5ustar00dewhurstdewhurst00000000000000elk-9.6.8/examples/ultra-long-range/Cr-SDW/PaxHeaders/elk.in0000644000000000000000000000013214626155522020475 xustar0030 mtime=1717099346.124997915 30 atime=1717099346.123997909 30 ctime=1717099346.124997915 elk-9.6.8/examples/ultra-long-range/Cr-SDW/elk.in0000644002504400250440000000347314626155522023226 0ustar00dewhurstdewhurst00000000000000 ! Ultracell simulation of the spin density wave in bcc Cr. ! See: T. Muller, S. Sharma, E. K. U. Gross, and J. K. Dewhurst, ! Phys. Rev. Lett. 125, 256402 (2020) or arXiv:2008.12573 ! First run a ground state calculation with a single unit cell while keeping ! the moments in each muffin-tin fixed to zero. tasks 0 ngridk 6 6 6 mixtype 1 beta0 0.01 ! Now uncomment the following lines and run the ultracell calculation. !tasks ! 700 ! ultracell ground-state calculation ! 771 ! 1D magnetisation density plot ! !beta0 ! 0.001 ! very small mixing parameter required for ultra long-range calculations ! !ngridk ! 1 6 6 ! reduce k-points to prevent kappa-point overlap maxthd1 -4 nxlo 1 lorbcnd .true. nempty 10 tplotq0 .false. plot1d 2 10000 0.0 0.0 0.0 21.0 0.0 0.0 taufsm 0.001 ! start with a random magnetic field in the ultracell rndbfcu 1.0 ! reduce the magnetic field at each step reducebf 0.85 ! Fix the moment in each muffin-tin to zero. This is done for both the unit cell ! and the Q=0 term of the ultracell. fsmtype 2 mommtfix 1 1 0.0 0.0 0.0 1 2 0.0 0.0 0.0 maxscl 2000 epspot 1.e-8 ! switch on spin-orbit coupling spinorb .true. ! keep the magnetisation collinear along the z-axis cmagz .true. avec 1.0 0.0 0.0 0.0 1.0 0.0 0.0 0.0 1.0 scale 5.4897 ! ultracell lattice parameters avecu 21.0 0.0 0.0 0.0 1.0 0.0 0.0 0.0 1.0 scaleu 5.4897 ! ultracell Q-point grid (see article for description). ngridq 21 1 1 sppath '../../../species/' ! single antiferromagnetic unit cell atoms 1 : nspecies 'Cr.in' : spfname 2 : natoms 0.0 0.0 0.0 0.0 0.0 0.01 : atposl, bfcmt 0.5 0.5 0.5 0.0 0.0 -0.01 elk-9.6.8/examples/PaxHeaders/magnetoelectric0000644000000000000000000000013114626155522016304 xustar0030 mtime=1717099346.130997947 29 atime=1717099346.12599792 30 ctime=1717099346.130997947 elk-9.6.8/examples/magnetoelectric/0000755002504400250440000000000014626155522021104 5ustar00dewhurstdewhurst00000000000000elk-9.6.8/examples/magnetoelectric/PaxHeaders/GaAs0000644000000000000000000000013214626155522017120 xustar0030 mtime=1717099346.128997937 30 atime=1717099346.126997926 30 ctime=1717099346.128997937 elk-9.6.8/examples/magnetoelectric/GaAs/0000755002504400250440000000000014626155522021717 5ustar00dewhurstdewhurst00000000000000elk-9.6.8/examples/magnetoelectric/GaAs/PaxHeaders/elk.in0000644000000000000000000000013214626155522020300 xustar0030 mtime=1717099346.129997942 30 atime=1717099346.128997937 30 ctime=1717099346.129997942 elk-9.6.8/examples/magnetoelectric/GaAs/elk.in0000644002504400250440000000174714626155522023033 0ustar00dewhurstdewhurst00000000000000 ! Magnetoelectric (ME) tensor of GaAs. ! Note that the linear ME tensor is zero for time-reversal symmetric sytems. ! Therefore we have to apply an external magnetic field to break this symmetry. ! The second-order ME tensor can be determined by calculating the linear tensor ! for at least two different external magnetic fields. tasks 390 ! high-quality calculation highq .true. spinpol .true. spinorb .true. ! large external magnetic field bfieldc 0.0 0.0 0.1 ! small change in magnetic field used for calculating the magnetoelectric tensor deltabf 0.05 ! k-point grid ngridk 8 8 8 ! scaling factor of k-points when calculating the polarisation nkspolar 4 avec 0.5 0.5 0.0 0.5 0.0 0.5 0.0 0.5 0.5 scale 10.6826 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-9.6.8/examples/magnetoelectric/PaxHeaders/NiO-AFM0000644000000000000000000000013214626155522017373 xustar0030 mtime=1717099346.132997958 30 atime=1717099346.130997947 30 ctime=1717099346.132997958 elk-9.6.8/examples/magnetoelectric/NiO-AFM/0000755002504400250440000000000014626155522022172 5ustar00dewhurstdewhurst00000000000000elk-9.6.8/examples/magnetoelectric/NiO-AFM/PaxHeaders/elk.in0000644000000000000000000000013214626155522020553 xustar0030 mtime=1717099346.132997958 30 atime=1717099346.132997958 30 ctime=1717099346.132997958 elk-9.6.8/examples/magnetoelectric/NiO-AFM/elk.in0000644002504400250440000000253314626155522023300 0ustar00dewhurstdewhurst00000000000000 ! Calculation of the magnetoelectric (ME) tensor for NiO in the AFMII structure. ! Note that the linear ME tensor is non-zero only for systems with broken ! time-reversal symmetry. NiO is an anti-ferromagnetic insulator and thus has a ! finite ME tensor. tasks 390 wrtdsk .false. highq .true. ngridk 8 8 8 nempty 8 ! limit the number of self-consistent loops maxscl 50 ! small change in magnetic field used for calculating the magnetoelectric tensor deltabf 0.5 ! scaling factor of k-points when calculating the polarisation nkspolar 4 spinpol .true. spinorb .true. ! DFT+U block ! the screening length corresponding to U=0.29399 Ha (8 eV) will be determined ! with a secant algorithm and therefore J does not need to be specified dft+u 1 5 : dftu, inpdftu 1 2 0.29399 : is, l, U fixed scale 7.893389 avec 1.0 0.5 0.5 0.5 1.0 0.5 0.5 0.5 1.0 sppath '../../../species/' 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 elk-9.6.8/examples/PaxHeaders/Wannier900000644000000000000000000000013214626155522014714 xustar0030 mtime=1717099346.150998055 30 atime=1717099346.134997969 30 ctime=1717099346.150998055 elk-9.6.8/examples/Wannier90/0000755002504400250440000000000014626155522017513 5ustar00dewhurstdewhurst00000000000000elk-9.6.8/examples/Wannier90/PaxHeaders/Ge0000644000000000000000000000013114626155522015246 xustar0030 mtime=1717099346.137997985 29 atime=1717099346.13699798 30 ctime=1717099346.137997985 elk-9.6.8/examples/Wannier90/Ge/0000755002504400250440000000000014626155522020046 5ustar00dewhurstdewhurst00000000000000elk-9.6.8/examples/Wannier90/Ge/PaxHeaders/elk.in0000644000000000000000000000012714626155522016433 xustar0029 mtime=1717099346.13899799 29 atime=1717099346.13899799 29 ctime=1717099346.13899799 elk-9.6.8/examples/Wannier90/Ge/elk.in0000644002504400250440000000217714626155522021160 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 ! large number of empty states improves Wannier90 convergence nempty 20 ! choose fewer Wannier wavefunctions than there are Kohn-Sham states num_wann 48 ! 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-9.6.8/examples/Wannier90/PaxHeaders/graphene0000644000000000000000000000013214626155522016505 xustar0030 mtime=1717099346.141998007 30 atime=1717099346.139997996 30 ctime=1717099346.141998007 elk-9.6.8/examples/Wannier90/graphene/0000755002504400250440000000000014626155522021304 5ustar00dewhurstdewhurst00000000000000elk-9.6.8/examples/Wannier90/graphene/PaxHeaders/elk.in0000644000000000000000000000013214626155522017665 xustar0030 mtime=1717099346.142998012 30 atime=1717099346.141998007 30 ctime=1717099346.142998012 elk-9.6.8/examples/Wannier90/graphene/elk.in0000644002504400250440000000203214626155522022404 0ustar00dewhurstdewhurst00000000000000 ! Wannier90 graphene example. ! Thanks to Jyoti Krishna. tasks 0 550 ! large number of empty states required nempty 20 rgkmax 8.0 ! relatively coarse k-point grid improves Wannier90 convergence ngridk 10 10 1 plot1d 4 400 0.0 0.0 0.0 0.3333333333 0.6666666667 0.0 0.0 0.5 0.0 0.0 0.0 0.0 avec -0.5 0.866025403784 0.0 -1.0 0.0 0.0 0.0 0.0 3.2265697 scale 4.64890 xlwin bands_plot = true kpath = true kpath_task = bands kpath_num_points = 500 begin kpoint_path G 0.0 0.0 0.0 K 0.333333 0.666666 0.0 K 0.333333 0.666666 0.0 M 0.0 0.5 0.0 M 0.0 0.5 0.0 G 0.0 0.0 0.0 end kpoint_path 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-9.6.8/examples/Wannier90/PaxHeaders/Cu0000644000000000000000000000013214626155522015263 xustar0030 mtime=1717099346.144998023 30 atime=1717099346.143998017 30 ctime=1717099346.144998023 elk-9.6.8/examples/Wannier90/Cu/0000755002504400250440000000000014626155522020062 5ustar00dewhurstdewhurst00000000000000elk-9.6.8/examples/Wannier90/Cu/PaxHeaders/elk.in0000644000000000000000000000013214626155522016443 xustar0030 mtime=1717099346.145998028 30 atime=1717099346.145998028 30 ctime=1717099346.145998028 elk-9.6.8/examples/Wannier90/Cu/elk.in0000644002504400250440000000204214626155522021163 0ustar00dewhurstdewhurst00000000000000 ! Wannier90 example for fcc Cu. Thanks to Jerry Li. tasks 0 20 550 highq .true. nempty 20 ngridk 8 8 8 ! These are the vertices to be joined for the band structure plot plot1d 5 200 : nvp1d, npp1d 0.375 0.375 0.750 : K 0.000 0.000 0.000 : Gamma 0.500 0.500 0.500 : L 0.500 0.250 0.750 : W 0.500 0.000 0.500 : X ! 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 K 0.375 0.375 0.75 G 0.00 0.00 0.00 G 0.00 0.00 0.00 L 0.50 0.50 0.50 L 0.50 0.50 0.50 W 0.50 0.25 0.75 W 0.50 0.25 0.75 X 0.50 0.00 0.50 end kpoint_path sppath '../../../species/' avec 0.5 0.5 0.0 0.5 0.0 0.5 0.0 0.5 0.5 scale 6.7603641080 atoms 1 : nspecies 'Cu.in' : spfname 1 : natoms 0.0 0.0 0.0 0.0 0.0 0.0 : atposl, bfcmt elk-9.6.8/examples/Wannier90/PaxHeaders/Si-Hartree-Fock0000644000000000000000000000013214626155522017537 xustar0030 mtime=1717099346.147998039 30 atime=1717099346.146998033 30 ctime=1717099346.147998039 elk-9.6.8/examples/Wannier90/Si-Hartree-Fock/0000755002504400250440000000000014626155522022336 5ustar00dewhurstdewhurst00000000000000elk-9.6.8/examples/Wannier90/Si-Hartree-Fock/PaxHeaders/elk.in0000644000000000000000000000013214626155522020717 xustar0030 mtime=1717099346.148998044 30 atime=1717099346.148998044 30 ctime=1717099346.148998044 elk-9.6.8/examples/Wannier90/Si-Hartree-Fock/elk.in0000644002504400250440000000256014626155522023444 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 20 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-32 ! choose fewer Wannier wavefunctions than there are Kohn-Sham states num_wann 24 ! extra lines to be included in the .win file for band structure plotting and ! writing the tight-binding Hamiltonian 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 write_hr = true 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-9.6.8/examples/Wannier90/PaxHeaders/Pt0000644000000000000000000000013214626155522015277 xustar0030 mtime=1717099346.153998071 30 atime=1717099346.150998055 30 ctime=1717099346.153998071 elk-9.6.8/examples/Wannier90/Pt/0000755002504400250440000000000014626155522020076 5ustar00dewhurstdewhurst00000000000000elk-9.6.8/examples/Wannier90/Pt/PaxHeaders/elk.in0000644000000000000000000000013114626155522016456 xustar0030 mtime=1717099346.152998066 29 atime=1717099346.15199806 30 ctime=1717099346.152998066 elk-9.6.8/examples/Wannier90/Pt/elk.in0000644002504400250440000000316314626155522021204 0ustar00dewhurstdewhurst00000000000000 ! Wannier90 example for fcc Pt Spin Hall Conductivity (SHC). ! Adapted from Wannier90's Pt example. Calculate the SHC as a function of the energy. ! Try the 25x25x25 k-mesh first. Adjust the iteration numbers gradually to ! obtain a well-converged result. Then add the adaptive mesh and reduce the energy step size. ! Compare with Ryoo et al., Phys. Rev. B 99, 235113 (2019). A high-quality result ! is available in this folder. Thanks to Markus Meinert. tasks 0 550 spinorb .true. highq .true. nempty 15 ngridk 10 10 10 ! number of Wannier functions num_wann 18 ! select the band indices for wannierisation to avoid the semicore states ! check with EIGVAL.out and LINENGY.OUT: first 20 states are p and f semicore states. idxw90 21-62 ! number of iterations in disentanglement procedure dis_num_iter 500 ! number of iterations in the minimisation procedure num_iter 2000 ! extra lines to be included in the .win file xlwin dis_win_min = -15.0d0 dis_win_max = 40.0d0 dis_froz_min = -15.0d0 dis_froz_max = 15.00d0 shc_freq_scan = false shc_alpha = 1 shc_beta = 2 shc_gamma = 3 berry = true berry_task = eval_shc berry_kmesh = 25 25 25 berry_curv_unit = ang2 fermi_energy_min = -7 fermi_energy_max = 3 fermi_energy_step = 0.25 !berry_curv_adpt_kmesh = 5 !berry_curv_adpt_kmesh_thresh = 100.0 avec 0.5 0.5 0.0 0.5 0.0 0.5 0.0 0.5 0.5 scale 7.40772 sppath '../../../species/' atoms 1 : nspecies 'Pt.in' : spfname 1 : natoms 0.0 0.0 0.0 0.0 0.0 0.0 : atposl, bfcmt elk-9.6.8/examples/Wannier90/Pt/PaxHeaders/result-shc-fermiscan.dat0000644000000000000000000000013214626155522022104 xustar0030 mtime=1717099346.154998077 30 atime=1717099346.153998071 30 ctime=1717099346.154998077 elk-9.6.8/examples/Wannier90/Pt/result-shc-fermiscan.dat0000644002504400250440000000714114626155522024631 0ustar00dewhurstdewhurst00000000000000#No. Fermi energy(eV) SHC((hbar/e)*S/cm) 1 -7.000000 -0.64420820E+02 2 -6.900000 -0.54512826E+02 3 -6.800000 -0.10187362E+03 4 -6.700000 -0.10249680E+03 5 -6.600000 -0.84417228E+02 6 -6.500000 -0.14811739E+03 7 -6.400000 -0.15367557E+03 8 -6.300000 -0.18609261E+03 9 -6.200000 -0.22599667E+03 10 -6.100000 -0.20341417E+03 11 -6.000000 -0.25825261E+03 12 -5.900000 -0.31999330E+03 13 -5.800000 -0.32625742E+03 14 -5.700000 -0.43100629E+03 15 -5.600000 -0.54163425E+03 16 -5.500000 -0.64589983E+03 17 -5.400000 -0.63877582E+03 18 -5.300000 -0.64159341E+03 19 -5.200000 -0.68308165E+03 20 -5.100000 -0.71992871E+03 21 -5.000000 -0.90840285E+03 22 -4.900000 -0.93657999E+03 23 -4.800000 -0.98217028E+03 24 -4.700000 -0.95187617E+03 25 -4.600000 -0.11075396E+04 26 -4.500000 -0.11834585E+04 27 -4.400000 -0.13401652E+04 28 -4.300000 -0.13432693E+04 29 -4.200000 -0.12661510E+04 30 -4.100000 -0.12995142E+04 31 -4.000000 -0.13550536E+04 32 -3.900000 -0.13329058E+04 33 -3.800000 -0.13589137E+04 34 -3.700000 -0.13656227E+04 35 -3.600000 -0.13218376E+04 36 -3.500000 -0.11316793E+04 37 -3.400000 -0.73408299E+03 38 -3.300000 -0.71839257E+03 39 -3.200000 -0.65061448E+03 40 -3.100000 -0.64926485E+03 41 -3.000000 -0.57484460E+03 42 -2.900000 -0.52496882E+03 43 -2.800000 -0.51295046E+03 44 -2.700000 -0.49263553E+03 45 -2.600000 -0.55700237E+03 46 -2.500000 -0.55308906E+03 47 -2.400000 -0.58336739E+03 48 -2.300000 -0.47214414E+03 49 -2.200000 -0.43172618E+03 50 -2.100000 -0.32352987E+03 51 -2.000000 -0.25580899E+03 52 -1.900000 -0.26856207E+03 53 -1.800000 -0.26846334E+03 54 -1.700000 -0.26319201E+03 55 -1.600000 -0.26308236E+03 56 -1.500000 -0.15431687E+03 57 -1.400000 -0.29373523E+02 58 -1.300000 0.33864898E+02 59 -1.200000 0.16392072E+03 60 -1.100000 0.25101568E+03 61 -1.000000 0.28505114E+03 62 -0.900000 0.46638331E+03 63 -0.800000 0.60776519E+03 64 -0.700000 0.65784962E+03 65 -0.600000 0.77984191E+03 66 -0.500000 0.85840777E+03 67 -0.400000 0.10667632E+04 68 -0.300000 0.13355981E+04 69 -0.200000 0.14480729E+04 70 -0.100000 0.16027665E+04 71 0.000000 0.16522162E+04 72 0.100000 0.16579298E+04 73 0.200000 0.15191823E+04 74 0.300000 0.13546122E+04 75 0.400000 0.12365177E+04 76 0.500000 0.10521897E+04 77 0.600000 0.93999229E+03 78 0.700000 0.86035954E+03 79 0.800000 0.78560357E+03 80 0.900000 0.73315146E+03 81 1.000000 0.65665042E+03 82 1.100000 0.61999658E+03 83 1.200000 0.61335192E+03 84 1.300000 0.54026010E+03 85 1.400000 0.52909464E+03 86 1.500000 0.52537830E+03 87 1.600000 0.49149928E+03 88 1.700000 0.41467983E+03 89 1.800000 0.41849296E+03 90 1.900000 0.38364913E+03 91 2.000000 0.34496804E+03 92 2.100000 0.34754010E+03 93 2.200000 0.37139482E+03 94 2.300000 0.31332344E+03 95 2.400000 0.28822847E+03 96 2.500000 0.28805569E+03 97 2.600000 0.30017416E+03 98 2.700000 0.24880263E+03 99 2.800000 0.23709018E+03 100 2.900000 0.23446456E+03 101 3.000000 0.20783671E+03 elk-9.6.8/examples/PaxHeaders/Born-effective-charge0000644000000000000000000000013214626155522017225 xustar0030 mtime=1717099346.161998114 30 atime=1717099346.155998082 30 ctime=1717099346.161998114 elk-9.6.8/examples/Born-effective-charge/0000755002504400250440000000000014626155522022024 5ustar00dewhurstdewhurst00000000000000elk-9.6.8/examples/Born-effective-charge/PaxHeaders/GaAs0000644000000000000000000000013214626155522020040 xustar0030 mtime=1717099346.158998098 30 atime=1717099346.156998087 30 ctime=1717099346.158998098 elk-9.6.8/examples/Born-effective-charge/GaAs/0000755002504400250440000000000014626155522022637 5ustar00dewhurstdewhurst00000000000000elk-9.6.8/examples/Born-effective-charge/GaAs/PaxHeaders/elk.in0000644000000000000000000000013214626155522021220 xustar0030 mtime=1717099346.159998104 30 atime=1717099346.159998104 30 ctime=1717099346.159998104 elk-9.6.8/examples/Born-effective-charge/GaAs/elk.in0000644002504400250440000000110714626155522023741 0ustar00dewhurstdewhurst00000000000000 ! Calculation of the Born effective charges for GaAs using the method of ! R. D. King-Smith and David Vanderbilt, Phys. Rev. B 47, 1651(R) (1993). tasks 208 deltaph 0.01 ngridk 4 4 4 ! number of k-point subdivisions for the phase sum along k‖ nkspolar 8 avec 0.5 0.5 0.0 0.5 0.0 0.5 0.0 0.5 0.5 scale 10.6826 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-9.6.8/examples/Born-effective-charge/PaxHeaders/hBN-dynBEC0000644000000000000000000000013014626155522020774 xustar0029 mtime=1717099346.16299812 30 atime=1717099346.161998114 29 ctime=1717099346.16299812 elk-9.6.8/examples/Born-effective-charge/hBN-dynBEC/0000755002504400250440000000000014626155522023575 5ustar00dewhurstdewhurst00000000000000elk-9.6.8/examples/Born-effective-charge/hBN-dynBEC/PaxHeaders/elk.in0000644000000000000000000000013114626155522022155 xustar0030 mtime=1717099346.163998125 29 atime=1717099346.16299812 30 ctime=1717099346.163998125 elk-9.6.8/examples/Born-effective-charge/hBN-dynBEC/elk.in0000644002504400250440000000366714626155522024714 0ustar00dewhurstdewhurst00000000000000 ! This generates the dynamical Born effective charge of hexagonal boron nitride. ! See C.-Yu Wang, et al., Phys. Rev. B 106, L180303 (2022). tasks 0 478 ! avoid writing direct access files to disk wrtdsk .false. isgkmax -2 epspot 1.e-8 autolinengy .true. nxlo 1 swidth 0.005 rgkmax 8.0 gmaxvr 16.0 nrmtscf 2.0 lmaxi 4 lmaxo 8 lmaxapw 10 lorbcnd .false. nxoapwlo 1 nempty 20 ngridk 8 8 8 wplot 20000 100 0 0.0 5.0 tstime 800.0 dtimes 0.1 ! Atomic positions generated by spacegroup version 1.2.01 ! Hermann-Mauguin symbol : P63/mmc ! Hall symbol : -P 6c 2c ! Schoenflies symbol : D6h^4 ! space group number : 194 ! lattice constants (a,b,c) : 4.743210000 4.743210000 12.64227000 ! angles in degrees (bc,ac,ab) : 90.00000000 90.00000000 120.0000000 ! number of conventional unit cells : 1 1 1 ! reduction to primitive cell : T ! Wyckoff positions : ! species : 1, B ! 0.3333333333 0.6666666667 0.2500000000 ! species : 2, N ! 0.3333333333 0.6666666667 0.7500000000 avec 2.371605000 4.107740355 0.000000000 4.743210000 0.000000000 0.000000000 0.000000000 0.000000000 12.64227000 sppath '../../../species/' atoms 2 : nspecies 'B.in' : spfname 2 : natoms; atposl, bfcmt below 0.66666667 0.66666667 0.25000000 0.00000000 0.00000000 0.00000000 0.33333333 0.33333333 0.75000000 0.00000000 0.00000000 0.00000000 'N.in' : spfname 2 : natoms; atposl, bfcmt below 0.66666667 0.66666667 0.75000000 0.00000000 0.00000000 0.00000000 0.33333333 0.33333333 0.25000000 0.00000000 0.00000000 0.00000000 elk-9.6.8/examples/PaxHeaders/molecular-dynamics0000644000000000000000000000013114626155522016727 xustar0030 mtime=1717099346.176998195 29 atime=1717099346.16499813 30 ctime=1717099346.176998195 elk-9.6.8/examples/molecular-dynamics/0000755002504400250440000000000014626155522021527 5ustar00dewhurstdewhurst00000000000000elk-9.6.8/examples/molecular-dynamics/PaxHeaders/NaCl-rotation0000644000000000000000000000013214626155522021402 xustar0030 mtime=1717099346.169998157 30 atime=1717099346.166998141 30 ctime=1717099346.169998157 elk-9.6.8/examples/molecular-dynamics/NaCl-rotation/0000755002504400250440000000000014626155522024201 5ustar00dewhurstdewhurst00000000000000elk-9.6.8/examples/molecular-dynamics/NaCl-rotation/PaxHeaders/ATDVC.OUT0000644000000000000000000000013214626155522022711 xustar0030 mtime=1717099346.168998152 30 atime=1717099346.167998147 30 ctime=1717099346.168998152 elk-9.6.8/examples/molecular-dynamics/NaCl-rotation/ATDVC.OUT0000644002504400250440000000012314626155522025427 0ustar00dewhurstdewhurst00000000000000 1 1 0.0 0.0 0.0 0.0 0.0003 0.0 2 1 0.0 0.0 0.0 0.0 -0.0003 0.0 elk-9.6.8/examples/molecular-dynamics/NaCl-rotation/PaxHeaders/elk.in0000644000000000000000000000013214626155522022562 xustar0030 mtime=1717099346.170998163 30 atime=1717099346.169998157 30 ctime=1717099346.170998163 elk-9.6.8/examples/molecular-dynamics/NaCl-rotation/elk.in0000644002504400250440000000261014626155522025303 0ustar00dewhurstdewhurst00000000000000 ! Molecular dynamics example of a NaCl monomer in a large box. The code reads in ! the atomic displacements and velocities in Cartesian coordinates from the file ! ATDVC.OUT. This file is updated during the molecular dynamics run. ! The file crystal.axsf is written during the run and can be used to produce an ! animation of the atomic motion using XCrySDen. tasks 420 ! read the initial displacements and velocities from ATDVC.OUT trdatdv .true. ! time step in atomic units dtimes 10.0 ! total simulation time tstime 200000.0 ! calculate the forces every 100 time steps ntsforce 100 rgkmax 6.0 ! small k-point grid required to stabilise calculations ngridk 2 2 2 sppath '../../../species/' ! atomic positions are in Cartesian coordinates molecule .true. avec 14.00000000 0.000000000 0.000000000 0.000000000 14.00000000 0.000000000 0.000000000 0.000000000 14.00000000 atoms 2 : nspecies 'Na.in' : spfname 1 : natoms; atpos, bfcmt below 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 'Cl.in' : spfname 1 : natoms; atpos, bfcmt below 4.99885462 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 elk-9.6.8/examples/molecular-dynamics/PaxHeaders/Si-phonon-mode0000644000000000000000000000013214626155522021524 xustar0030 mtime=1717099346.174998184 30 atime=1717099346.171998168 30 ctime=1717099346.174998184 elk-9.6.8/examples/molecular-dynamics/Si-phonon-mode/0000755002504400250440000000000014626155522024323 5ustar00dewhurstdewhurst00000000000000elk-9.6.8/examples/molecular-dynamics/Si-phonon-mode/PaxHeaders/elk.in0000644000000000000000000000013214626155522022704 xustar0030 mtime=1717099346.174998184 30 atime=1717099346.174998184 30 ctime=1717099346.174998184 elk-9.6.8/examples/molecular-dynamics/Si-phonon-mode/elk.in0000644002504400250440000000224214626155522025426 0ustar00dewhurstdewhurst00000000000000 ! Molecular dynamics run of the optical phonon mode in Si. The initial ! conditions are determined by the displacement of the atoms away from ! equilibrium, with the atomic velocities set to zero. ! Atomic displacements are written to the file ATDISPL_TD.OUT and ! ATDISPC_TD.OUT in lattice and Cartesian coordinates, respectively. ! Forces as a function of time are written to the file FORCETOT_TD.OUT. These ! forces may be used in a subsequent TDDFT Ehrenfest calculation with task=462, ! and will produce a back-reaction on the electronic system. ! The file crystal.axsf is written during the run and can be used to produce an ! animation of the atomic motion using XCrySDen. tasks 420 ! time step in atomic units dtimes 1.0 ! total simulation time tstime 20000.0 ! calculate the forces every 100 time steps ntsforce 100 avec 5.13 5.13 0.00 5.13 0.00 5.13 0.00 5.13 5.13 sppath '../../../species/' ! atoms are displaced along the diagonal atoms 1 : nspecies 'Si.in' : spfname 2 : natoms; atposl below 0.0 0.0 0.0 0.23 0.23 0.23 ngridk 4 4 4 elk-9.6.8/examples/molecular-dynamics/PaxHeaders/annealing0000644000000000000000000000012614626155522020667 xustar0028 mtime=1717099346.1779982 30 atime=1717099346.176998195 28 ctime=1717099346.1779982 elk-9.6.8/examples/molecular-dynamics/annealing/0000755002504400250440000000000014626155522023463 5ustar00dewhurstdewhurst00000000000000elk-9.6.8/examples/molecular-dynamics/annealing/PaxHeaders/elk.in0000644000000000000000000000013014626155522022042 xustar0030 mtime=1717099346.178998206 28 atime=1717099346.1779982 30 ctime=1717099346.178998206 elk-9.6.8/examples/molecular-dynamics/annealing/elk.in0000644002504400250440000000716114626155522024573 0ustar00dewhurstdewhurst00000000000000 ! Simulated annealing example for silicon with a vacancy. ! The initial positions are randomised and then a molecular dynamics calculation ! is performed with a force damping term included in the equations of motion. ! The crystal is then slowly 'cooled down', simulating a physical annealing ! process albeit on much shorted time scales. The rate of cooling is controlled ! with the atomic damping force coefficient (atdfc). ! The total energy as a function of time is stored in the file TOTENERGY_TD.OUT. ! and the maximum force magnitude is stored in the file FORCEMAX_TD.OUT. ! An animation of the atomic motion can be produced with XCrySDen using: ! ! xcrysden --xsf crystal.axsf ! ! Note that you may have to change the 'ANIMSTEPS' parameter in crystal.axsf to ! match the number of completed time steps. ! ! Molecular dynamics calculations can be restarted with task=241. tasks 420 stable .true. maxscl 40 ! use the PBE exchange-correlation functional xctype 20 ! atomic damping force coefficient controls the rate of annealing atdfc 0.0001 ! time step in atomic units dtimes 1.0 ! total simulation time tstime 2000000.0 ! number of time steps between force calculations ntsforce 100 ! don't write direct access files to disk wrtdsk .false. ! randomise the initial atomic positions rndatposc 1.0 isgkmax -2 rgkmax 6.5 nxoapwlo 1 ngridk 1 2 2 ! Atomic positions generated by spacegroup version 1.2.01 ! Hermann-Mauguin symbol : Fd-3m:1 ! Hall symbol : F 4d 2 3 -1d ! Schoenflies symbol : Oh^7 ! space group number : 227:1 ! lattice constants (a,b,c) : 10.26314134 10.26314134 10.26314134 ! angles in degrees (bc,ac,ab) : 90.00000000 90.00000000 90.00000000 ! number of conventional unit cells : 2 1 1 ! reduction to primitive cell : F ! Wyckoff positions : ! species : 1, Si ! 0.000000000 0.000000000 0.000000000 avec 20.52628269 0.000000000 0.000000000 0.000000000 10.26314134 0.000000000 0.000000000 0.000000000 10.26314134 sppath '../../../species/' ! two conventional unit cells with one atom removed atoms 1 : nspecies 'Si.in' : spfname 15 : natoms; atposl, bfcmt below 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.50000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.50000000 0.50000000 0.00000000 0.00000000 0.00000000 0.50000000 0.50000000 0.50000000 0.00000000 0.00000000 0.00000000 0.25000000 0.00000000 0.50000000 0.00000000 0.00000000 0.00000000 0.75000000 0.00000000 0.50000000 0.00000000 0.00000000 0.00000000 0.25000000 0.50000000 0.00000000 0.00000000 0.00000000 0.00000000 0.75000000 0.50000000 0.00000000 0.00000000 0.00000000 0.00000000 0.12500000 0.25000000 0.25000000 0.00000000 0.00000000 0.00000000 0.62500000 0.25000000 0.25000000 0.00000000 0.00000000 0.00000000 0.37500000 0.25000000 0.75000000 0.00000000 0.00000000 0.00000000 0.87500000 0.25000000 0.75000000 0.00000000 0.00000000 0.00000000 0.12500000 0.75000000 0.75000000 0.00000000 0.00000000 0.00000000 0.62500000 0.75000000 0.75000000 0.00000000 0.00000000 0.00000000 0.37500000 0.75000000 0.25000000 0.00000000 0.00000000 0.00000000 ! 0.87500000 0.75000000 0.25000000 0.00000000 0.00000000 0.00000000 elk-9.6.8/examples/PaxHeaders/Delta-value0000644000000000000000000000013214626155522015303 xustar0030 mtime=1717099346.185998244 30 atime=1717099346.179998211 30 ctime=1717099346.185998244 elk-9.6.8/examples/Delta-value/0000755002504400250440000000000014626155522020102 5ustar00dewhurstdewhurst00000000000000elk-9.6.8/examples/Delta-value/PaxHeaders/H0000644000000000000000000000013214626155522015472 xustar0030 mtime=1717099346.182998228 30 atime=1717099346.181998222 30 ctime=1717099346.182998228 elk-9.6.8/examples/Delta-value/H/0000755002504400250440000000000014626155522020271 5ustar00dewhurstdewhurst00000000000000elk-9.6.8/examples/Delta-value/H/PaxHeaders/elk.in0000644000000000000000000000013214626155522016652 xustar0030 mtime=1717099346.183998233 30 atime=1717099346.183998233 30 ctime=1717099346.183998233 elk-9.6.8/examples/Delta-value/H/elk.in0000644002504400250440000000130314626155522021371 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-9.6.8/examples/Delta-value/PaxHeaders/Os0000644000000000000000000000013214626155522015664 xustar0030 mtime=1717099346.186998249 30 atime=1717099346.185998244 30 ctime=1717099346.186998249 elk-9.6.8/examples/Delta-value/Os/0000755002504400250440000000000014626155522020463 5ustar00dewhurstdewhurst00000000000000elk-9.6.8/examples/Delta-value/Os/PaxHeaders/elk.in0000644000000000000000000000013214626155522017044 xustar0030 mtime=1717099346.187998254 30 atime=1717099346.186998249 30 ctime=1717099346.187998254 elk-9.6.8/examples/Delta-value/Os/elk.in0000644002504400250440000000227214626155522021571 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-9.6.8/examples/PaxHeaders/GW0000644000000000000000000000013114626155522013454 xustar0030 mtime=1717099346.229998481 29 atime=1717099346.18899826 30 ctime=1717099346.229998481 elk-9.6.8/examples/GW/0000755002504400250440000000000014626155522016254 5ustar00dewhurstdewhurst00000000000000elk-9.6.8/examples/GW/PaxHeaders/Si-GW-band-structure0000644000000000000000000000013214626155522017303 xustar0030 mtime=1717099346.199998319 30 atime=1717099346.190998271 30 ctime=1717099346.199998319 elk-9.6.8/examples/GW/Si-GW-band-structure/0000755002504400250440000000000014626155522022102 5ustar00dewhurstdewhurst00000000000000elk-9.6.8/examples/GW/Si-GW-band-structure/PaxHeaders/elk.in0000644000000000000000000000013214626155522020463 xustar0030 mtime=1717099346.192998281 30 atime=1717099346.191998276 30 ctime=1717099346.192998281 elk-9.6.8/examples/GW/Si-GW-band-structure/elk.in0000644002504400250440000000205614626155522023210 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-9.6.8/examples/GW/Si-GW-band-structure/PaxHeaders/Si-GW.jpg0000644000000000000000000000013214626155522020750 xustar0030 mtime=1717099346.195998297 30 atime=1717099346.194998292 30 ctime=1717099346.195998297 elk-9.6.8/examples/GW/Si-GW-band-structure/Si-GW.jpg0000644002504400250440000040251614626155522023502 0ustar00dewhurstdewhurst00000000000000JFIF##C     C    _{!nR2)5pڶJUiȪ1CfJ[`Y䖜+=dU=^Ur5NDT7f2&S -tƳ <*5Νvf]7NsT߉Vij(Z22xk>W|bk ZE7|Ҫ1*c}e00.6A]He̕lMqQVnJyNdu rAVN4rNn^*@Z:fތn#.)2VeL۵uny۔xW|orJˎN-KV껫M$lnjț&/@y+p٥K"5fR%5vCUΫ7kNdM)JS3f0ʫڝ"Q)AUې ꍂCtcc|g]+r͑{F%n+M%#}9c/6SUJwV-jn<ҳ+'w˲lJKn];K^g_:ir|rʫp{^^ End%i[i]չʲ+V&yJwwƮL觚YYA3)Mm}z_B>Ce4I9^M~qU0@Cm3~YWg4opʔʭNҲu,OtdOMxNGMm5]ivc7c;ӧ]V+Ku] *;ʺ.(e+NȆKG9y31 ]vrUqz=cg!Y+r9dU]`Dhت[JnP7td+Mf&&B֮,RtЩET6 TiHDh N(WRKf2P -<<.WFxS!Ole.n4]S,c抪ubPŪinAZLUUpڶʕ0H+o2`&FW%gkM%t,TBey/O8}/jhцUm)m)dJ֦HuVHiIMe9M*ɺ6w gVgTld EMŔdºVS(i7+wsӥ[]W3)H]]܃̫UyoCt7^[>c7ӔJX 9>o|NN"B2ّ&ZY:7ю6ChȧDGZWYWl6ғJGIwdF|<Yshj\]3Nl姞iջkJ5&ˆ4iRe:qxN1w.쎝KLLU2D5^2>cNʽtӾmwZrјSW6WnM+պIuce6DH@ ѽuJ޼0CdEj6kD*ЃJnSUj,ztjmGJ*J:38J͂ӆy_Gz~ў;y <'W^."yJV,W{-UmGP:[,G;>@Y3vynZiWlfuZF!"5c:5϶uj7~ym>NRMsy3Ѧ])숮--)k>S־2^?ʭRUSzjkZh*r5eߔ7NѦ]]{'II3a"QmjymHC%ɔѥ4!H@@JtզY)&2&lb)TL[vD"(Du!"]o1dºGPKG>5m` MZh*~+UdC)AYun4֛JҴeѦ^o3l· @duWJ)B ;Y dfɖS]]0+"tTWm[@h+':IJM%;s΍t򞗿+V+&]l3ӎ^Ra(ZGlCrWZ<5ӮRoJJth؈m*bW)ϮiU~yYZ*WPڷ"wdJyѼg)-J3S=Ѿ2?+y>C,3ͻ=8u=`+p%uM -xYz5,m/ +(Xm%Vі{ybo^v%jwҩ]2ɥC/><ݖe.ȋ;[iYһKo6xzt^a*u-ўPJ2jz+sώm,\f=@}]ծ~Co<~|}:imm WdCHs;om<<άpm;3Ӟ3$OV* =nq,dVjRR5cӭWU֖ƹv&n*EoFYn›FTVOtxIn ǾHe:1Fjў?GhX5]dxnϡǻkO]U[%,newL5hHmcG@]WFu^rw.7g*No}\\1OZS2"f UMͮT:rɎ'#ʣ])*oLmՎ^J6#;F?Mdꪯl]mU]73V9j5ͧYڍuib5ڭ>s]jXtDcK7rɾz<((pcֻ/.}t`~7M嗣NˏOR*'^|喜pOӟ[cW>E%uM:jiܙWlo]Tg;&-l]ݑO89O>[rz]~~L,Cm[ӓz:\y;6TӣZz9=\NJsգϮyre?۪)s]*6yiUtssr{8y>[UmkWZszKk X᳛Yfn1oG9o՛MN;ӭ+h[-1?'o%-sJVLi}4L5SҪWvxG:,ګwim]\rqr p6.nutt7m\}o;ݲ]d}4gX5j<9 Ϻyә٬2˧˿r;(kfsnIՎ Zty5tkҔ+&-y+ʕ/z:dnIcaߵ@Sŷ+z-e%u"x֍*ŧUwh$O2_?yw_Wxܒv-_=vqlkvi6V{vӅw˺7e].E\pVNk6c) s43^̛tJ[1e/3|eתpy9=}YKf%)Um.s3NL<|}~4b|;5ϯV.kUxMe-sY1<{\o#oC.9}gi uv9ZwU(б(]zéÍ:խr;eKfcӢJg׿6R:DcÇg,;$qۏVip- ]9r6G@XiyyzNV=G}t޷c y6ޝ5e=^NW|>N 4K>zއ/^m*1ϓppuygӛ^^u1j8x^/ϷmrtڣZϟÏ/o^GC%&Sn-[󝾕wjDv0<.Q.勨8kKBPi}K7uu:{qѓnIKnlE=a^g>k..v'kyopzCݼOnWd羪tda{@nRc󞇩aˑ:LR_V}^W^k/ǗW΁M*cVבu9kM9ϣr;:g;?_Ş.x>Rkwb]=o|5rz{veӢtP)3ݏ7ouw_*y[yۡJZzyn?tC:>MZ؋$т7d ite\ξkUh"tV:ɷJRϊvszy?Sm۫,UgZtSg;:n_ïnݕק޺MU+#;>?'<tQ[_2ϗ?v=9W/{ޯ#pp2Wg|]m9]]G?י[Fz= |Z (Y1xKr7]tF:1*gϠz\hUzYљ?:=}[ǽ {vo{|ҺnϽ'G]<ҭnI#ȭy]{sz:rmo.O̳޵rϜuˬ_35p#6#] +ǃz5gg)h+c;g>'pɯWsusvϧ4珷[?i?ޞ}gOJe>] /Gy->/Z0=/͛Wd|a|q7䯟uy;~~g yṣI׷F}tpAcۥ[-X|_7{MNXx}k ~j#.z+x>l'rvtRqg<^ vvGy~ޛb_Ƿ&\~׃>27&sÂɼhʸ}'?s>e JO?qkMNz߃@[j+{67{|V=^Nn~ݞ3כӳ,V4tMߥcx{//|w\7)2'~oD_wnO׋}-x@wxs>v.-oMßy_c^3jӯ_E:ە׷ؕ`û ߟMti ) KFyt9=wgz|Gq~Ow}WǷ&~[ö|ݛ]Ҩtgۗ?wΎ6[>mk] Knޫ}wy77w]Yoj:ܛ1us:K~n^Nv\ޞ `܄lcï k/KUўpqq}8OtSz+{1ûq{;oԭj!m椣zxywezEl.7=<[<;|5^vw{&8it=<!ZVIU+VZ4u4i^<ޞo3:GyOVYoy|ϮbNnxG[qñƵ|~ή~Tފ꺨mݞ}~N7=jk/%Ϯ^97.zIf}#ӫFVuںt2R8F]:9]t^]N9mUںe6jCz_3qjMwVt1r5t{m=nO=Ji-s-m2뵄tymz]nsWG^b(ݔVݨHJL2Nh ͔15+]_]~klNW'>#/?/L<͓F}NnMsyGwY1޴*Ԋɍ9g;+iG1\ן]2k;yګҺtn6R2Rbꩭ*vҩ[D Ѧ<ͳZc a>/uyO9[3ZoMYgcW:<ގkEȄH)@@wIVlMWZۏ5,o/?_ϝ9Fh* :SužtiU:Vp4GUUvRu/3dR(wtiu`2O1tE.fSGKy|=~jms:xg?5m]Z nL6Ò +\tfmYÇ^j^^OU^4yܾTmU JZ3EMkKjDҭY *<Τ/ ,v4i^% hXƚh _1)^ hSFP:Ro㹧ƞ$HYEQE!4q%-"Fi6%^,"Ӏxu5oz\#g l:8bHee/t 0,zti"9(MP]~rHC 8װ1̰O-^d/+ZSXl>WV,"o.xZB{K2"Јbmd;^%=&⁲!'Cc'U/ӹ 9q,S1OsnȦ'B`&hlv@rMq٩opˍ* i*iv.Q,Vs:ٽJY͗KdS:&k#G"}@ (' \{؋%8@ l.z$7eh/BD-`Prs-O-af3H@'@ d'e,B4ZM"ҋyP:k tRߤk. pW6 26 eM_'cr; vܦa_ |'@,裈;;3c$Q/--)rZcH\$k|F+57V@X7YZ8ȹ__{8ŧTUxDYSYbkM tqo8gfɨˇw9ܹۥZ%eb8Z lN!$ot^ ak(ԛ"tv!S.0嚾"PIu4My=Y_<t&V28IR'NŒ5ı\HLp,gy%Sn m,ta*?zjXSew&T%Vd,lr{` %\#&HȌξ1@`ۡݘ얬V7RFc_%|=>(Vo:@aGΕ]i|/k>Q9ÛY"Dzn7dbSʲcL1d=@w=.R1rc3[tG({\#kZe4ϝm={kd; ⬏'TuM:Me7i<]ýq+w \܋". G..ibcx[z֯G]=䀏~-ВOn 84bFBiXY&ӏR VE{+(ME)Nκ_*ɩ#nmȺȶɃ"O_ _k.zJ)7y@-_(쮊(;%{ ubӏKgXyXdP<XuOwyo`ȫ.r.Dҭi_۠ *Y)%]5wvV[~EYy]=/\ˡDݠpg_7E~û-Odk7.=6knBF6Xq~2WWVAfQ/ JNGu\z4~I4+ 1G[D^0XbrWDaRt?yC \yܲM&/A"X`|-7X ,m@pd_:;cmiz<')#)(JI- 7(G9]sʈ3Ovmd{,JXIsCn)f9njg<7KGls ɍLjŬ ,$,sOj-D &36b'g`Wot.AbW@suito9 q,t4Z@&F8?%l\{( pA7DZeA2#p]6ƞF#fp(t _dhߎpI寺xĞ&vSٶAEڐYY8ns{d<:Y5޾A<4p/.d"^Ҝ.Sw@YYjXK^bSw%բڝBVOƘH[ BAhbt9YM <2vJׄntL96$r |Ӧ'#w1=ᵢZWqL,7cs,md:r ^ut&FK@P`)SLZ#rWA17I1'QdҀc[-u$Ro]F2&/0LZ6Oix&uM@f{UE5>:܌-E2bHp6:KByύKi*@@&3 [*z&Ә$}#beD>[&*9M?) tn^j2р1 A+y)mHc2HJ/s!ߣ#GaRKw59ZZdXO8+%ut,d#_<7lxC -z|9:IDa?!0'FHdQ\l\n&KeM⒵vՆ>#et iT `ُe3ƴ92BT:̍w64`.kWl#V_7S)JގL *Bk6-'ENi15(݅.j jw.EM<9ɓwܶ2U&="n=I[.+" :D!OPe'eePR:k&dќqLdjS`W(+]SApzy!) W>k&bt"9쬃nEt'Ǧii`Pu;$jʙVJ}M9Pc4zr) jp-^,IMJ:Xԙ ύ!-X+"YuGRȴWMTU=+FfSjr׼4v##n(0\PHWjlTQmN[KƇq'1;LF(ᄘi!QޡENsSe r[t-N8b7 B2SiC(P1mzWM^I'̤J&s'*W869TU9Ҕ]t\=KTl*0EY,NNQ??|@ĶЎ)t~>=6Bd o܂OHc,$A &FNZSn*LeUjq^=xwTQd$yU.j5vƺ3|Өmhx 8)(ʮn2Vn};ON]6(qAzlLzuEЦt9N}=B~HˠYF%5L :Ѧjyvkp1SjѼJZkMf6++f54k\G$ϧ=#XՊ@EW$yTq:WF:'o:[^!>:LƸӪQyk/q KtHKg[ ԕSIU F}՚ڥ;c6mvp*St(Wtb5rVWQjj5gY_yr\ET4S^K&E[M%4z{&ktP#m%3Xu薥].7@bl%-3!AS3d?oPt;2:Fd ֚朽RjRS-3St4q}42HU斉oѲY69)fLwvʦ>'1\ud#.4z tx{􌤗v4aLt0TkU5rii2(.6+SkmI)hi30Y~PT>R=a`y4W_zLiN6IC\ԵE JN~I.EjI4iڳdsdv#*_& l&3NO?L~ri#DJRO'@dIS2-~C"lu74tO]Px{N0Qӹ}kDglkJ9k$t"yq>@* JJ!KN#$1eQU4| gӮAKS'إiD97nj3HV*tY⦆:* *K6z]6:NRovMw4b)?tJ-VJ4MsSxt08xJjpR>4J+qo*mrk^M"¢)[be|ш)oުëԂ&f diIzWya)}RMPti)R4P:q6r 񪺗J(eS&izSu-rj':{\ cBM7PM V/[L~3(%FȟKO*SP>dhҺW(kl*MEO J}E<,ruQښ>>ʟR} V))XHQa c5 Y`X, ĬJ`X&JKEOIJ}i <j]SJمsEQ. ~x Cc6LG9DFUTjm-tu[ƭo` zs#Y@ǿ"^&5uDj=Aҏ M:vNrAxIcP/mR,R4=2y>tJF 5eJʊJtS 7G؝j*:.MyiP%Ne2ot cl8 QNve&Q34-_ (YAR\ WLjlйJI dUAR"Hm -t2qqAGI$iN`RątNbd v1}MUgd%#5ZRΚ~O_*uM>R=麃i)2b^̭ŸY&BS5|1+0lt$QԖ(5Yas(54MvN5E ]V7)5YQ).r2#"YY`X"(S"4-Xud븷!3mY jNLCXiQWи(ZS:Io.7*:TNYi*MEFcRi1:">KEfYx[#ĭ#B2Si>G&[g@Tp(i>CNFK5J ZSj7'N\->Pҽl9lVX+"ł̬uK5&ȺݮAX3qrBb:}iDRh)tױ:F"b"mma)Ozne hC:NuQӹnl*zLY(k\œ*D$*Vv&! ZHߣ[K*'QȤZPWb!Ay\۬ ХyLӞ4Š%:'ṰzѨ2;&k BUjIۣz:9GGr:Ktt!D֭j5ѱ?QyNsy+2*;p).̬Б2R hx89%̭· )jQ)6T+W݅j'Bҍx!9}F:[kmm"Lszux٤NM\)(+xDbBwn0MkR/9 d*xIhrPaMs(IB(dh5BM_dȠtj6jWFQEdVe dQVqȶbx$)\c-[}1h9 e V7!QI*H;Jx_lz jrPSVDk"צBі0WWA:17Q(UD[4mS uKޛP+l:9IHѫ[t *\r3]]]dBbju)}BuXsPyOD5Ĵ"wFJZEIOe(@SiIB f~ixԗ'HJ%9iku%!҅ 4-fڼCV 9vd`!m-V[xr +`LPB/[L axV *t 2lƶc[q-ՀGdp"o@$! A^!xҳ%_(]05Ҷc[Qb ,YFe$HN.NsqY[oW*ωX X`)XR(L+} r,cфŊ-X,JbA-+el B-Ѩ[oV[oV(LP[૰-`[m[` )2*/dWY $M(J \1"ł-Nb`X, `A,V+#B$ A+n t-зyoeE$\WY,J%fLyn M[Kildt,{+z!2ri[ #NV۲[kmm]l %l VdYK%[,&/uuuuufS3fFrVE%t]eϋZyu[[ofd.\[o-庌4\~WYeWWD~W~3Y ?o]]]]]_<f庺dY,K%t\Аz= Y%76Yzzd^E4 \9 VB+ܟf.]/MwL||tdZAdY 7qD[0o&c>{p [ddMV"nOlxe?շ@..EA"|]ck:9[teoOLU=-v,6 ާ:8XqXn,o)m;[{c ǀ-竐g~]ԋEo6磅jod[eldpGyߣxns߭ueo6 Zyt;ӿKl7v(tߨDrCeeo5yVVV[q}ؿ{DtR䓺*6NC;_~yG_ߡ<,7KsY s_Cu~w o u'|#K>[=Ơn{uotKpKt `&G[{; [Iɦ~:||7Vc<ݲI;VDYk+ :[$:]_]K] onnX+"=[KucdKYZKM(,9[bÌy,Xk :%_uu>RU]]]]MtYY[uH.Yq߭釥_ Z U]|z+ςn2Ew%dPzϜhAȬ o{u'(u~WA]_zYW@r'E.AV_DܡY",.w鑰69u%]]_MFk"Autdf?&5!1A "02QR3aq@B#P`b?v/Y~LY~Ldś'e3g'Oɏ.Oɒϓg{'Oɝ쿓;?&w~Ly~LyrL6_ɝ3wrLd11?;?&w~OOɝȗ_ɝ;?&w~Ld3gw/_ɝ쟓Lv3g'Oɝ쟓l?;&<'g{7eeȿُ6Oɒ?wLe3w_ŗ/ŗ#u快gw/y~LY~Ldw~L3bϓG{/_ɒ͓g{'J?\;W3:R73~Կ:P.FQVi{V<=%_c-sB{>YgJOsTyCHJɵй+qO:!c"Ք]&e77K(&pj-9*=/qP՚lkqb\/ PȺ$図NŽ>_o %dO=,H,̃qoK$1=.,ybW҅WfEOLߵ/譄 v$"dHƷMbϱg5㢑%KcvQbcUtzV/^zx ҶOĢ6$[&-4Rb+bK?_ۗR .X&h[1I%^-CZRHPCpi%GF54U4U2FƊDQ&],BWҊ'oۗnēn)F9il! KK%+NKBQ/oa#L({ n/Sƫ]3QhOcd]xGMe"N)>Yccv>Mt'c<[fPOJv9J\Q;oSl/YhIط\tHIBJO~ć 9YjMF9V7r݉o)S#+/܎ǒx9V%7L66DltH%LrhH]c୺%҇ˤ-z44F'lr< ]ziaLD*Lllz߁PCձtYb}>=W҇B&.zҬӎܛ|{>ȟM\L{7>l!+"O=GWNNHhgDrxy.%E> .B(qэPŋ+ϱt[zLC,nQ$5"2BkhamBEѨ,:7FDQ" z[ űtQhKbʶ4QtUģe2ѻ$z/LDʶF {e8_1Hƍ6( I8YcKRKa+EUrf 1-J+a{BC5Gszrt-ؿw# h;w}N‰(Y,?amr D7NЧy= Ս}2} &;YfNbtN0hn^_\u 4mC;B,9Qer$85&l/1;ߧfXƒC!ɡKQgm-$ȅL؊F.[MLJdbI!P-F*Lckljcvб8&$FY %pIGf"f9bp$j(nF7ۣI4zJoٻ4Ѥf@<Бq4qߧoQq3DSQIn9mNDgJ̙"8rChD2RPŎCr7DIt)S,LS-˴.])XPfѻ BQPoɨ\}=ǦU 祉l8]9!2Ujě[WM78ղ6eoq"\cVKhE4QŹ,_7*'wP%hKHK^O1KӰJT,>,OZ]D1kvo&hhؽ,5|<Dwѡ8Y DBJDx4Em!GPeZbLQh)T8ۡhK}"ѨsܕG}i4 $d|:=cIpi4e%p[ʵn'z+hNT|Lwlq޳^7i1i!zCi%x"vܧ:wcH #<*Jb7r\'$ce%*bMHؤZ,)[;g~#W-tC*eʇ&759X=t}Q mpz9cw8KNKr9$nJTIŵHJ T2-YդY=TbpKc[S1rzkrMc)t^> SܷE%rFǏSb%vm:|L_6ÏBqZ(O#CBRӦQ\V%#&%lkNQE6iy5#XTð;q0G!Eqԗdj5-ri2c%lc\rN&;}qbQحD!p[}}[)N|sӲrtb=20*YUgkVCK)Q fNOCRG0_ֈCS"v8 jD 㬧vK#"3z6-ru[IE'䢊%x ydžMĭY(94,"dَjjПK"G[A,vK WGi_؎4RCFiix45吟D"_(A#,W&΍obggbXģTG:=ErO:(d.c4Q()-zxR[,2ŽTuHzgú=j$̸Iы e/ب˅r95.OCVT},+r8QcFL$0J{~iDF?Q%SC"cd(w'vD1(nZ2篆+sӼ y~ʤj%4{D{jF-rfʖ [,gf\ \/}O,,{%Ew17.IG18^ޏ1e܄۷&?Oyƒ$Eq.LrО{$ŃW<Q HSM)!MHD5YeTd"G^inc£6u y/Ov#_ 1,^e#F)+c/V}TyyIɣHk58.hԱ~zuOzV3|O#[g2-CGkT$INŪVvm!zW_M4GEx4)8Gc%D梷'hօN\, szmNmnv`X|15BKe?D)'"cs*hY~QVG>'< *Q()V}.9"^?+[/sѭ0iBĬЊ4Pm\KEezxE$O4bY;DKslB7ǙH&j/-J,2ʮ"dڎ'{fK"ԢhǓF^^^UV/K[T6j̞x59o2 ҢG 2^N8E t8v*FYBsvOꊥ,LxQڊ螷JQUDqpُ:~#WkRL҇DE(X4#AFMNm9;$.-1G$̎*Ўgb#g`CXWc'9Z%ɨJ'U1ZfF)/8ɡcx}\ɚ1sǎikU#1Q@hm .ֈ)ˑ!*O2XeEO]_R4L Q䬆[1愅lɞ1,̄TVPcfXF|d)!r?*HxFEyV~"0BRܖ5#zY^Y,ke~=K%3&Elr},*ĖwFȎX14l4ӧdjDDb^LlxcQj5#QjD'rtGI)O ȥ3#2NSġ1 2Mn\?~35]2^Fɥ/Oҍ.\D^5R| E˙E[#JcB$2c$M,3s(\#;呎8nG󿰧9+44̬d|$wayr3(18S'/PSD(oBw5_ϒX\d3)Y2D^b/~y&i"/e=2} Њ$| <9IXD"2f7C(,TG%k?~$ /"?Oꇂ^ۙ&?cGG;yb5e_TE c;PgTM4D]?P HjCd#x2kJfOS'nY`\Di4LGKKY/M%Q!,LQ0IpiFv;?ao5;q/V^%ۙ,+b(LY%"Khl>G<I#GA#I^4i4B4Ii1?K?K~.Y~Gc"c;_">y#;C(~,8g$>/V&9YTGY藑zX#CSGlE ~spL5|#G,H#+#a"~1r͛ջ@wdaFIM2gb |3#%"4M(ЍK dOѯ%XBXdvez.Eգq?YT>)Yk5dF< ͓uo6#&^vF?K1^$eёY0E&v~?H?H,ȇkHh^.,zygo!O1O3܎:Q_O Y.iE#J4c!ygs,9G~yj^ԥE&~?Hd4,Ds*gpwQGywQCΏgvl6wf3 A駮7F6Nd; y y "؍]D9thpLxQGehFW]DKܗrgs!yS4ӐO#J4B;H#hԍCs%2'mv;Hh(7Yj52FFk;#wNFk>&v$vGmvGm x𝦸>4k;t#`wFj,P<7b 4QEQEGxr}ŐR5#Qj5#Q6Yfyrlhl C;bvбM&(((#4Gk;#<9v(X }+8pgčmedw vk5#YsC!@i4M&IF+E2JOEi4M&5Knifv4#I#I]ZFA#v ѦVS&hgmvРh4ҽi[JUҊf˭ui4%WHi4QEWDW(IQEWDE#OfHVi+EUQV&IQ.ǦIE/?VlHNʳQn][Kk5'~߳R5 }/9d˱*%W Ѩ'| ^Ln禢z-oK~ߨ_$˿je|WF7}|{bq/bۢؾ]%2丹K5u؞LxR" ~߶5l7*]X.Y~_ȲȊ%]kW~诐W{1]4%|Ҋ Ij"TWJkغÏ2C_#HgҺ/>C%~&?6KJ~cɗK9|4>=y侖_Ktx-X׵ÏՏn}dK>m{KetE{LY./_DUu(֊Ïebt]jYBC]keYf5c#QekE{+QEt鏎YeH"&"UKQ]+{,,5n)ҽu/n(H({)M&H՚QE}cUt|{EJ(Kb~E lQ]PJ(cB((q4/+!OF(QEJNI_ (j&@!1"2AQ 0aq#3@BPR$CbSr4`p?,I|$OO܆fkKɋ4Oe9Ky%kɮ_&?s\OWɮ_$䃚^iis$S/\OߨI&ЧUjf:2%*lӃPdPIWG&j\jk~Y;ɥ.?29f'5$Mr:N?K$ŗ.dOc̿ɭqW<\C5%#4\d9,dJ55;Tq哶77hҩ--QVxnc$Z?#I w.Í OcCV烓{| Fkʞ9IU["[#.eأ<8l,4%ݢenUih҉Jۑ4 Q(jT"(LP~̒q-Âۥ(oBsC4XtlO$&Y2n.SjxZvhd%{ cŪ@g)%F[!w'##_d.2&o[,Pd}Ξ-'nCfK"TIU!ZtcLJX݉#4W,PPa? RFihO·yE1]-!7+Bwۂ_LGg33<}3ˏTF.R^ݲSQT^¢*ٻ.J[mz]vkblxuwn!ZmneJ8*={>(Qtc~9 *RJ3Rt2?wly)$d{_iI> Dו/,~oۑIԏ7DTJMWfK([5oFOl߻x n٢^bR9Fl.SirC#Ǖ"]N1Ey=M˲А<4(%Ҕw8,bqFUS#jm 52<:RHڈ®Sہ<;2l=j=JQ-ic4kaI-.{$(6r%fl7(TUCll̯,Mjd(\Of&#^̉Mo3O-VQ7{&j5NX["*WuٗY&[[P jp7Jw EH;d^'lN~BQNI:vݎpG%7rn0RxidztR#kJZxjwe[?_DFJ'У# ܋Q'KazBz^y=Du_Oو\v]9l9RzlOP-ZP|==$/*[%"BiH-HutN wtiމ%f8حI*92=cmr[Q%u()JбK-ڪBDcɶA_gɭH2 ^Í3ܕEo}ӖӾvM}zjDkd;Pnj! ^N4!Cr&'w1{i㲫4vʾ؏C*+=q ) Wձ‘nG_گ}meDPtޗ~&:" {P"߷B_$W=~j$a_f:5'1 ?$0Gg[NQum[ao{Fi]E{ڻUTu]ژ-cquތE]+55tI[Dd(5fkZ))$FEQc4[<= <9qܖ=J P$څ(Bӻ8"mweeY]٢ʡ6<֐{!}KbD/߶;KZB'ShUzX32ɨFRGc&X㎩Bj vj{$}бcK~˒K&hi*6- INQFEk%ئObw%sxԮKⓒܴm6< (j)DJʢixyTB(я5Y']*[CQCǩQnn >s_tIQkEU {QT$,Pҩq-6;Bߎ"y,`r8dթ % 3`M*wde\z1DQJE48Ǫ譅Ѥҍ&xh"QTr{$yēi(q$4B^$u<69??rOJB^&7JtfTpčHQk/R$j$4KJn8֔z*(SubkI[5gEl9R:_Gg)ԑMTE1Gj)]qH_,F(4mCt:[i Wsɗj%DiVp%( j-d*D7VvH3ODu$I4Fv(r-Xc) M4rxn~ ?K[+qSMLs#kkc1e{'"iYvԨHpLJBmXJvdģm?Em.ո}|rX{+rQ7kqrYci5E+ߵz}E?,hBY4TQ2Ųv,vW>=wډ _y~BپAVݜgow7H|{> l?1NȻV&+ttǴ/,1#w|gGP]F&i>P\]K~Ԕvbw%vev/{Âj˳բ%7/vJ/(CC[{]We LC[j.+7l(ʿ1!L}Qr#ߵPVܮ9(g:*ƍ.Hx(V/:4ܵQTi#,ܫReg(K%n(DDQ(Pj^5-ˑvt:rW](o}b$Tj=P|mUf&x݊o0tWm/DcEM| ;nmg'v-m[\ĩ Q]-Kt,FVK-#YlY[jUMpV;ج]摒RJ6v(iһw*XerR]Yز?q4Jy8ob;# @Vjӹٸˡ^Ğ|#MCӻ1t^lĉR^R7TFqݜ<"9~a*7>bc*VZpcMTx< T·A|evpz`ϋ5 ukInn+J<~#*>y2,$jZPg&2+&ι%xM-;.\/&ה̅w(QtM54ɖXyOaJY7X~xn^N:Tɖ1rmcI.7JXNXá3^de 9ቮ,~fetu;f<U)iE o'UU#FOGEl:oQxIr.hsIɒ8fLs75!KbGb8,DFw)N5"\%.)Apj}K<1 uq쾦dIJ*brv{9c5hL8Q1Gݍ~2Zj/rvB[fO8]Ajw"qR*8ovIm#o$XR^ġzXx%.e,y8,Rh]EEFr%IʹLݚRJ16o!/aK$0uXx^'rhr7Vкll5=^n5_T85!%ip(ݢ'2T> <%=Ze1#Iy~%=#,\nXg!usߡuDzdbۑ' jJr1k.> y#=Ї Mu匸c/^„ȠC}Rqr$/R#vi4L vy:DžTiQĺlMzE/mm(WY`VW ~.KR=fW&e4jvAlK>5-E\w[饒Pj,r΢rd'txw͝zO$axikʊ:pĜڼ;a?&> ; QB+8J2tT 1%x5RB-8C4U j,7Q>Nk|8':!̅ԕ3Fn~Q4r+T)p1uXW|vC [3{< &G B. 1iE}f,RǶ6k%|͌]DۄC>vO%f7kYh)|˗u.ȞM]b=PߞjCЎO؎$,jL]6UHSܬ}ɹ..-b=_S\[D~Ǫ^IKu #D̒Ǐ%VrK>5ΧgˎWo< ?T,Ҕn,_q%V^L2П}d UO:&?0"h_itVpcu)1c9.J#$Vj?l8G>9^cQ>,e&}4~σIF^lQO4/.? p1T$^Vz4HcļTd ~K͖7C:N-7JRD&K/͑tѽLQ*.Rҷet?E}$/!<_Q'/1M.Bԫt>Cɍc\c.~gf>'qIÃlv}.X~]MV`:lVxP|q`R}.9ָ}Tdp}#=MY*`))5<V)m>ԏ6ݏ.{'giZ:nM 8.j5)%xqLjуR֫Q57b㏎J/])GN\vBh3tGW,qmo xzRaV6cȦ}F\RrbĢ%]IaxrC/tZ%`t_RM_mk,F14Y9xWIEC3]{| ۷S1N1`%_N̽^ٝOI qSqr+?0FQ㛒*J=fOŸ>`5fl7KZ"uɍcܡ>ώukuZa=W.&r,P%蛄V_b9 5hћ40ngB.|t,0J)} Yt2j(xe^W*[2qMhŕIYǍԥDNo"L8%3c^l/L_oGd&=/M4t䍏/cYJiarjcka:3ux5=,y5hGN(+Z2`;2X-g=>Uz~azjfugF?0M[ud,2u񫛢}d74LmُǏҍ&I:%G_ftG=lxUB4iG#\]69q>ㅻ} U \ lnC3OL5teB:,>i"?2N)f3tVNPٮWsgW.$Ү$eTPp'(Ê8*ΣR-u[Mc޾ec2e :WCT<]?S ʌ[tOPx_)G=8\?,'ٗAAR}M#rgB=2- E4ӄ7KU 𤎫y#̽|=:u?x_T^'M鷊bB_9)e/T4:xd"_gi_/YZ1~2ۼF[O&Vhφj,yYyszvF<k5EYeDGos&\n?лt欸?y!8Z) Y#YVǃ\[?k_pST>j5ߴKP,p՞v.WQoTX1UĦGgEѓ"SHƅ3'O'#s1lbK2B}O1ddcɿ њ>Y}G4g28 K>]X+/&/K렯Kt/r?27KJ"?^c(Â'X,[>E/rXB^/ȇٙxhNwKQƐ }6XqȾk}b=n#z>,߹/m.O۞:dz?qM2ǹ ,{LR/C-:2lY1DQh2})z=O!/>;> 4GQQ> ycY{nxIrubfYwc|Mo0z5XCsGg> fr4.N؎E. c\>¥i|#͞k=,1zQP4M%IП(ө(ipkFF'K"|!> 'uldc7M#rqs6Ck>|ɑ`Ƒi)w7}j5j5QYeQEIi4EC}-'uI-&OM/:E(Q@Q* GbQ_;[uH};d1s[Y(i+IKQ9χ)HqKC\MQ S5FYT{.o}>UI/A5N!0M&x8&K.b>c.&}:H:x=QEg$zB,Qj/NCQ~O#WW?cYI4K< 4K;uD>(C]f?xO,PloG#8ϸًpȼ_̨UlllljǑ/J<7/SaG ?Kgg}HR4$&hq%Xz}.Pb걿sOW^x+.0 (+K+QEQEWt#OeoIYi#+h) i4WtiQ_YbwUjW{5'MX_٫Qc(E_ BC>{lgvh-q/QeV6_ҘWٲC/c}d˾} {ǿ"?ezoWG?C>,{?/tH_]~ W/F6(%_K%hST% _c!~+]_X _=Bc\G,ıj_U~8,E5RVWYeYF5vw"(QJ][veYe }:J(% }QiH*GϏQEW}4Q_CB_CE8v|Wj(hH/+ ڊ(EPtW;J+E!1 "AQa2q#03Rr@BbP$CS`4c5s?KSL/dϢjL/dϵGsO^ɟjlWo{&}3菢gڽ>7轓>^ͿEQ`jLWgڽ>fϵDϢM^͟jL3P,P,Uʒ=gڲLGqdߵ{&}3^͟jL/dϵL4 fϵ{6}3^͟jLWfϵ{6}ԙh^͟jLP-/`g{&}wlQlWg{&}?;rfϵf*R`wl4^ɟjlWg{&}ù~9g{&}3^ɟEdWid!05 k nE !LF}Dm .A8tO$d@B s&5. 'J+[PPFs ,gU5ǓTvg逞(qhq+gÅ-ۺUd]鎰!A,%$ [~숟0~xʲ<ӽ ~R%yckp$rW/44;?0.6%n`2P~JS\&/ekJ-@qꉀ%JT~4B> [hGg)'Pjۚ%C^F1Of. n`jB%Y*xF ʲd'*xC#bו& ny0s/%*xIAd]JlO8_he(D<,X<Lχ Cey9ƵhNJ>#z|-~dp`ɰ8مaS!4^!nTsVie'uS&N{Dx(h#P3p 6l7+NyxlJ[9jFת$pA2qٓiXjio$Nqv\V@b7/p \y( ll3`o0Iʈ[}X;>)|As( uVfmLP@u %Giٛ62#cm'8S di?b}}R,) I1nqpkCc8_S~)Cfm7/ET6JCn#*6m˭j~)CqzFK_r5,5??߇ _dlJwTU CtBɒٶZȏYTaVv yiY%3FUL)ETT/l8m.&83v'溣OQm[\P|8 4SN  Ǩy(Qy&83z1԰lXPQ6儆tnpm+.v د`߇y\G:u>.uCo0'椕#""gſ [m\ŦTl6&: ef+$lQ=N3' QBQlIexķ)E.?4RKjⵚQflv VTa :zH sU>&@Ɗv TkCn/9N]uAʵG沊 \GqU`꽫RZlBseyk,^)eQRi'K.MBg"N5дL+vQU̹ss`enfeӿŽQx|`+C+qNQNmG=ݝAuzπ B+cg4Gi o}Sوt~N+)q#:*fzELm:˝cc䁩Ok.*.vVggWiiGRQM:@L5_-aDǮ#ګَF7s\'WDa#Ov{?4Cbڮn7:e` 9IMhj(w}i}h֨9;>m{}G;r=AaNh#oj|V".'k%?pvjNeK;-^J.sBd[#ߙ>\i9s 8t׼tN%0ڦ]p Yk7wŔ}=}8 {胏mgilLvr A i|P:b2tN5/Gk{|\5MSi1'D@DN8 |7}r{i Yr9Aߥ%Ce3;i}VvS.#h9CSGSdH#HG>,Q.ER&vQŦRU?NmUl.o}LiiU\9SBJB=nhڍWfS]8Sk?, n^oת}[ZIL~GDE;DF7j{Kvnkn3LߢhZ(M K3'iiPG%%k&d/KG ѫWvZYȳ5-h5*=:p0ߚpU{U"Wq8 Yٽ:;ӛs۳H~ID>KZ(.Zu@.jsيl%5DܱUiV\srˏ\ujq{RN^t k&Y2=T1 TMA*S\sE??0:) -.?I>&o;`*Κᦎ~Sɭ{NcŹq\V^?r.s'n֢FvNNz=E Yrzm@~^*_^//JnþjosWS̮ fYG5o?%1+w~KvlUڴ۰5ѻ0ISPcWyy!nPn/^"-yg^0oe_8|{?ף)0~ y<[[k \v [5S9uo"Sm;ƮvULgq)s˼kUy?5$r+~[>NW\PX ss~#YSCR4+S>+/ID;MD`hېg]F:! 1H y2AxA #,wAZ>X\֫_]Z㫣/ ~v1i%z*^ s*N"@x$(=Jd;渷 bGE^@^&ɫWpK1_5` |M[n_. ¼+´Z-?5Z7 zXiZ-ja U߷N+ѳUw-v/pV~7[Ԙ~J~x]_jVuZhphh5;2^KaCޥJng? ^ ^jxk{r[Ky(r S2Uu\AZ>C 6tV ^rI^ܵ:AWxW[QuJ)\W'zjg/+_x[Z跩[|ղ#EW2nUK[O5pSbuvYF2Jc*bVU/Z/ սuoÖi:-Mط୆\0:qk?u+k-ꇗy~:߉?X:-o`I8R?Gs?(0?A0?c[h5;Gc`",!1AQaq 0@P`?!bX>WbX<W> `/'B/x_ c?+Ù(7Y~fTHc/!*Y@ZWJ͜LTP7oZrV^KǨR[7ׄ_ (%\;:G)T &M$qa ['0O8{D .P|HHgJٿ"j_Dx1:<&[rɈ༘}ʇ~=b]5h'$CS*?jj޴z.XS y$E<+iXvee;!UXxy~?w3̌n8*`E,evOx/Q DĥK$5@6L5S OIț0E/%c/gT[&%GfL#h&c*u(2(,ҪE9~ ٚ H f#_S#?RkmY~H+Z4}fp 7Rċua`Zl@ʜX_oyTHp. *R6|mԸD'})#C=Eoy ]C![ڠlY0r9Tpb; K|F8E]1kmjRå/z-~f)̲h-Z`W jNq$n0EPu4) #YCkggs$y2NR 1#Ϙ"i"ь1uWQ!;*3ʿŬ `C)dL^$%Q- c\!.m 4,;d@ЇYG3{a \pZEi02 %EG‹-g (@7&cwX4aF͜¨Fmj1* nCzM`M$V@L> 11ú9껝G0sT Ѓh-0!ijԭK%p i\Mokka^*jb%0V8lɄ< lfU(n].[;u-v &n8'@>%̃s3R"^O7;pCatuXrXhıkLO껕@טa GIJX#*ZG4Y- !D Q`xnP1̥!s̺2 ^Yy53Q"11P\"^J Kļs)ڏS#M,hרmZs R%Ƅ3AD8@S"Vźr\ʋOspǴ7692~bΣZBqaf7I ssJ4B$6-FK&R*;`xT]CA= |@**ܬM_!Vs'C.sLz^euC9&ֆR2qVuG]!`*\ >挲\0 ~͆.wE~!PN-nfp+O12Q+?{1 .NP)zNe+O0fL&&8OQ1  ^ߏT+={@W1xmGΈR1E.3cCFKVxäeq KM"LyLs98F̘<1M1s)6AԫbҺp0| /+xj^h[3Ya-f~y 3 1NQ yf5 O~_ߙf)9YrW%]t/K . ݑn`_pυ\/)v fr\ø-`QwD10j{W.!r 6VW}b$xyI 5n*\O7dT&9kYA5?i.T;a4/9~?w 4-ZĪ7K\/ڦxV9JP[?qa̫c{#Pt:* V~bwԬ|Haj]S 9:<ƧJQu>w}@#(2jpn.1Jˈ 3qwSp E/"p3,yj-| /8My/2{K:Ľ&Uw DdЗߗ_)c :( 3 #L/c38wa[)2Ay,NjQr>7134 ]W% ,D?є郂YdQ,FY~&`TN5ŋ=|mZe"˝E9KM@Q_ O9q %^PUlj ?35. z5_0|&\=s,7(BV!G^#VZV!hj4Nnd8>kPb R=oTق l ]'HU yNj&W9Q1ct?^k7-ul!& We9 \:!8#,U Jbfe+ X)PW0[t1wjJy{C#/o|C$|) ŵyδ| rPncq-DXQ/, ?*h1qp9שQ%&2&ܑxwYjh`"@M`ʬ܅MrL@@/gSu8XAP~-J̰,h5c&chR馞#uL,f͙sp7,cN{16n:gv k]C{4RGR/-mASDc0/+ aQDhЊ/5EOaP3x|rn% s`+O^YoWȨRFdf8Q@f-X4 ehbcM|Lɖ,N2Ň/ب_KP=%?2(̲+0΅2e lp-@ѨWѕR&RE6#̿<{ԱMbY/Is qbwPF!&6K3ڸMxo|.c06Z13M*]=Ƥ-@Cy~\ L1 7O¨b+ SgQ^H?4:u҇YC_U 26j(&/P{&.\)S~e%h`5PNb@^xhPngjwfF ܣSK&g&n-C\8=Nlw(9m+;ewٔ/Ѣ W-;`L9XIĵ0ٷpVSQZ `<ʰs* Qy}Eff8s$^ШT2 !Ř8B={d%u21\#Cmiw+~UT}A1:R!L 20N t6,vSn!hZD7V}ew<16G; _0T;XhZvr«Qn rYZ]M[l?տeרmbj02:FrYT3@]s1bJJrd,Wnĵo8#u L~4ÙP^vdn/HC{&O o%N@2jvgTet6VQvq[,RO/Kr$=A[ X%3ͣOQ  Zc/<Ƣ$^ /5w eQ:_ZT9!m}CIFwrјU}vlwp i-Z2d2A9hw Kfڗ/⛋sJ k3G UVćY5aC:YD@MKFe(0MƼ A0c 7%+9C] .ν/B`Yeob;/s'%%w RSB̢Y%\vKQZȕV%2q0IVQN҂3&av-ShxuE7`0_j@g+ m0BPYv0kp!fJ"j'^ P^Za`ۅ`*YԽGlYFtи #㘶veM^__frEkjI^(`+y¾%SvH]''.Rf?\69q*&2u klSiFD[J X`@w G2_f.[b(ṣ[2&X;Ù˩fA,b``M^xĬzmt0KeKj"3Wo19ԣ1OsyNP*[jr|;"%P] s'h JỆfj[m:c߸V9t 9JSZX\}Ι1]MbiK'F\njJsW>/ʫ[ˆBu(;Xl%.X!QfX[M9q.{F03R<&qh 31K‚l_*&e(Py.YВ[8oï|q&qs-C~ uPYWf7Rb1SwcWU< ;wD+ ϳqH̷^lwmԬS:Ll]H5ԫf|LŃ P,Jy(q23/wwXo38[M#Pk2fX!^=B/*`ġ;P*8re\,LED+{;LWZfY6Zc\Q-BQQeYŀ*&"X傈uM©LF+Tk-[*lG >+p#4jvϺuGQ* 4=&>WMQn6{)ZRZ/q~w&]VcĻYFT+W./ye+%Fgcʗ <ͱ2#{W-g'*mQ+nfQ+HWಢјEI\u Vq1*Q2 n)&8&H"bBs p" ,=BAܽo\b2S.ᝢ=A6}3acAx.,9m2#zf Ȼ.ƪy`جHRP 1O @ܲ[Əp -}Q њ`Ĥ8KxXSh@[dw3uT#;@)ωO{8xe5,cbt!:f_"  H4-Lo Sv!-;A'- J.K ^%P[%;[ 孬8f^3͑zG=C9CYa 39)sUbنd^r"񎣪L2[[c V-5C^,ykKh](eKM9¢,_zSGux)&*4"'RdO oW Z<4:1aQ(3^_24f}]bqEx jy!nyܬ% MQH& (\xiGL1\c̪\_ N<,îRDnB2c ,gUA{l:)Sp) 7! *!/VZatPӲ{BGeJ(9nziTnt=5o6@S-/;X8kqʰ#l\29ġK d?(-~ R^R5 B^-rͥpO?!FJ(C.iyCpc OJ-%o'VHtKC7PލTA9]AUV*eAi`I mdK@en?Sp| .C^ BUqE^ep(y~2vW/evΈHXP耧QtX!<KNqeMF:beZX/r5o3StUDycR2ACʽĩȢt"ZbnhI)pWc`1eiT# ]\'9.0ݘb|L$2xT4jjXJwKj\eZ*/PP}Ap5X_nb&]NM"yIp|Gm c2~c`m{TAtg')vph@R"72ˡ?"8$WQ @.X.B|~dd.ۨ6ÊL1V9f}W\3z_F҄Q 61>8%b,fP%ܪzpK1$Gk%ne"saC^ )REZN)%m8=BaDFh}(E!7"T; auUlM489\Lx!p;}%'R̽vsR2e[ZM39%Hƣ 8<0JJkqFRA/٢=`}fDyB^RySSps)G-zA*Ȧy#v($טӺR8DwPo7CQ0Z6= Hf?z(S2A4qzcU,\@‡(?t>q=Z˕*:8&e@{h ]TFLJc /k'2vY r+`pG 3 PjYh^Or? qW5EҮ\׳{qL&8,~&lxd‡]QsH/zZL:NO& %D`ddȮ##A/G1\t_23̗ૌ0Hˋ9Tx3S4m# azcOV¶X ]0U ,"0@rjeoi[3Mк/:+.1uٱ.g˲싼\kqpX5P|⎦]T=AR߂7KWz18.q(a5ߚ^ʖ@^+fS:Hͺe v ?B ]]>_< R,7d.΁#_S&TX=MS?sL%,e#d1}舏z}ŵ YBS| kHǮl2:xZ/n˟"N9%Z1T~~/4o (GجEDZyb"\%&^x"ünگlyR5W;N=#qqaQ`Rm`U2eޗHD{e\?4ܳ 6?1= 5+(cx' ዁@]"!A;S%??zo29n EQb#wڗv=#}.!M&gP]̎}X \8s&^y#gm50/ 9nz>s"^A)-֢& ZThvh&VRSO4JhvDCkJ001*"l`=(.ҿ*(% z)VۚM>5t˞>1٣q爴i¿U"5끠4$Gn.U/GS+ p{p$ L^SB}~z ˆ,@Ȑ ;>jOmD~/,ڿaj[WLOՉ1;J)pCSޔ%δc0ZQ7q+"Y̱?]G* oXWEl IFO{{!q[,™RUgZ,4}rʹ*載{1\>KX%1>r ]|Yrȏ膎b{e_9~ ?#\YɿFq0bbo,ywga .q2ͫHԿ- S<2%-wU i_kQ#Rḏ'rU;Ilӯ3 ++-іSďFB.ۗA5a?PhИ SPxB0/R-- 6u4qX #|EOHʇU r) %i22Z>zxL8A4팅:s=on`n^CV#TC-b݄Ko!O1cV>;x /D۝J6Q{]`$c~ذDg\s*ջ Ye Ax?ɑO"sc⡟Jc㨌d|$t?Aq/|p ?x1Fk> i[n\Pf*# =L4>&ʜ~%W @ZO=\bmúqe4_d*fkr(wV|h>φYw72|2V'C՜!uup/s4 6$.EKꙘX1;#M'rZ#T4+q) = O4 \N0}…^  g?r#&\'@eo*5sHC)EGk0sb[:)G*1y#+e"tWc郖p{'D|XS=0.\&#+Of$}sUNCkCu3A!Jz-HlyY sNĉ+߅* g($ZK&CX|dy؏ 3)b+q˝:fܾCsypO| DO\M㜢!^7Kw/---.-uG9<*1O 5&JuU6ܷ DS#)B>3VS8nzm4sjU|\rn9"_8fW56s/?hA~/nKV#&%L!ҪKɧo gv {C9] %y̏CE*/!00<4eZ?1AЂ`%@ ka\:,Hj5\>0š[KKJE +#_9+k&1fXc=FBs q\y~/sV7 "<_Dg6KܷS/r qxi;Iyyio\p.B r'~ ?w&zx-|ϼ`|%ZC̫G*,#/#u9FW>?P֢bvtÌ\SJ3ۛf}9CQ]"MRV 1}(4H%c rݳ< 10(^x3y6|#'$?''#&vZ&zlr#]ojvftFhŲRqg#;FNېIX2AG|ǗGuK+Z4"tA ~"CZ39ɦ.q^Z ֹ̿3Gue6 WemiSئcV/I8cetKeLmW.($@puJ}sw>&q*kq&{üJuA8a"D"\l[/qO3ٞQ 51SpR2+w~D8hk D7;Yf?4NvVLD`6|x' \0TsS_w'3a||cKs.#S3n#S*foKg̶ܶ%Ŷ*\| $]hEw ̿g0Z4*o1ع卉s4ωEE)mYbm69Hܶ-S/2_!:K|~^_[68B)o |hc7 ^Z+U<̾RnX gB-hf/1´5/5PpR^+;/@c+oQ"&\`kZK+NxtZq)nPsQ:MxsO.,nXRT*73 !l8?;_Pnp'D |ϸ5o~(wҦwswO_*sElޓqهƦlnbu1>h .RCA!W.9R- Q08D~o5?+/Yéj/_d4=,S=)c7)).'p+_;[a+Y3Ӹk:D?S=* Q騕+/cw5s6Fh/iQWGfU~!\¾̩i4*b%0+r59^g[eemuk TA?@0 7_Ə_2/엚3]HkUV}ŷRB%6s/X% \\mpaHkh^#u,?xQmotB /$n+s9 WѢ TShW?HjO)_h3r aM}vu+uyUgS+V>S>B4~IFaTK+2vybbZ{ JiY#M~T+DѣIeJ|M?E|Mt>t&C1 !|37LO.sb8ͩ~qp"q]pq |Ç:XÙl?Cn@VaA &LX1K? (~eP2 *6?.ρ*sM!FdS\W2.]p 1&X? eM@N1W5Kbq"ļKHri_zG8g9۩q~(刢V/nq0l0Qg2^`\XJq7/ ̠@bK@C@]RsQQS2R*[{PZ2ۙ!e2R&jPi*4\J^eMs2棂*T@ .} xLT[eNeOS/ /~%Xs0/Q_SLka39tmarÇ?k Z(AϨ P#"S#Ԝlfm UPIaq<`%w)̯i;kF0C }2(-#Q7J&ñ숋Txp#RưɦBpd+7sL euT&0 ِhOFX$N^^!ǂatb86% WTA"T>}h9:,7cށ ' `޹q(H%o3^.e.KP{%VbDYۇ}Ru願w }Q2c{/^ܑ@ֳnnveW@VAsK$j ЭGQacWxE+i_Lg| Ϳx@ŝب-Zmr(8CV57-9nj-u\V hӳKo2>r¢u7#$aڅ"cOhM*l=r6ザ$~Z`{u*{9n+7\W y4k'O*L:՚K0KjO)Q'4ywC_ QOǨVnA͎~ܟrsp?ybo݉+ƞ>/AfsyQ}c;33?yv6r/sOֿf*L]G^`# R xvH\(7̾slU+#3 =iO¸4|ic]̅0'^9cvGc6s3aܻhEb N{5Jbsltmf"2!G\1r.:?/ِ8]ÛCۻuQ;\g0D̓' I ]x ]x&l#·moV| a|Yyvwvaip9,t$#xM.DQPX-& \liǽ@DDx\9%&g.obp1y6ܞb\fX>[L U `m) 2pBn̈́hrdn1,y,ɷ9Gp(^,v`8ߛa&Tnrm 09Z5ptn6%˒Oj7ܻ< NI8AȄP8Bz~]c-^g;"2хK0x23ϖKF#`lh̜vᒎN"'I!.^m[<IzxCëHxvވYpj[h7/y" e'Rl4\ujZx0_}ǛF1ѕq #X|߳g<㒇 a3ԹH!a&ᇼ<,t+GI>qnɷzޭ2r2xpl=1Nn@S8[`S. .R^..YXG='+sˉs%p|o{E'|Bd Dg!ϙ6.a:l5Nғpc!xO(ydvT09;B<a-rX3*x'Ԍ[a2~m2 \a03n>q_0 ,)`q8Sob@/=7!o[㨃2qcr-1. =Tݞr0~3y`=?@. BWqj $NEF^;(laIդդ [͋xzL3^P {ipnpл ,m7ŴP3.-'#zGQ 9|dN&fJ\xGV#q~c$)U?1`>/t_ [:,iP`BLJr_K#u',x`WlA]2^fr#)4;N@Jq7}ץIa;>S 8 ȹgf}jZ7%v!&ڲy7zx ՕnFMϥq0⩳t2 FPdיcB y8$VDHR0d5,RӍ8?tq!n3ɐi2 5̓!6xHl{8A`z6 pwr9\//7'GFGs!\!m= >mpm0gq-:8s8u (ł⟉-V']ڈiLs V5y{b8p p<܁L)aoXm na<05af3`Ia$t%7wwħSX.P}EWe=9jް62Cc' ND$;9`s))029ýpECK-R>\1o>a .v7[le42ňGHaymmQזKIL뭾C:e"Uw'8-bqg$MFω$0!ySL=;#ĽzKg wX< nUY=sɧ &s(!\m8c /5|. !OP l)7L{a͂L]͚xƟCB{p1j68m2cY$Qzca yFetH6Ď#dV%y"^c ˴,`leSR^ 0ݱp8mt\~8h> n׽PeyYd_/Ǝ{Žcs2&0<DHŢ`:]?kFpp'~fI\xmdJ⻜rT/8-8`CiBk~$[o}DڃM.w!Osra &y (r\a2Lr(/ۋaò˶zq, r^G xq+$iyPT;~!6p9y0ɇ<#}xdnd]6~ ^Eu|kI5@t=``[_G^yi~!O3.iLc0hnx^TB7ȇLȱ@IJ {qierdR2`e5k'nlW@,Og~3X(umfy'`o4m*Y}Ώi&Jya#:C[9!8cO:Alxˀn9Ͻg'td"/i_֚1]s>q$u4toC_! y Kf&Kpe3NB8.ǠwIInŶa0L/>v,m!W{?X#)1*ޟt:Ov3˞|G q%fq޿ղy}fӬ7ȡO`;tI`@xvƜq[>,OSϙțڠ<0|pssnJIdwE6lqparN5{3f&/_6Bɱ8"ĶOh|BxG8$,PԛiOĸo^J9 x^'n 8ZŜxxCj 2ϥWzd~Rs! epnNDQ>dl-Znek9upy:*صa)uNl qgQdK7Fءqp=?׽ mP|?6;V,Jq8*!v nf>Zh?ц#߼8lR{܇p6C鋊<\#b+, Dw9{~wc}> "|J˗FL'ϰX{}1S#xriX1|kE|ap$<-7nA@vAH>rNV>?\<o/O aU9ë6!`\n''F`}}w}Aqhn]:@{Cz jNc@䜠æAqmmɩ'G_fa13\2rzE3}~ ?[ .P9ݏԁp`" {Nܡey_6f Փ;$ܸ]w '7-] ]XhgFuq2 O}ԯ_è@݄gQKi|2L>׋!xrop#6gNc (L [{gQ"|t}\!hs$fw =2NW!xzݠ[h@@p/:$:.'wR1~$k,#ϡq&zGGvwşpq>"0sq/3 d=\3,OIo$Պ63LI⑞߂6~Pd9g 98u[//#&7'Œo 5+^a,lYcOK97>lb/)gS%7y9!^a~dŞ>)Ǣ ;wW0xo-/G$'9ŹU{I|{ق1GT9t},nnMtK^A'_?ED  7_̆7_̟~Vdh>^K|Gx[x:9n2w؞޾nV^X5r? |7|Ő şiȑ}H>8pL]|oh.0_/7 !e Gi,/Qf@c y1 A3pw8.$v' WKO$KApjW|]+ =w ע;^'+(yy[q-v`!>9pI:=ރY{$f/'~~ ѱKV?&w\t D 2P|x:;mI6gOO0<@iabś6 s-yW^ 3~K?;)aY_7?ăADhW2bzn' `6=c6l C|Guꗙ>$w~uU>Spvi48,o.$ВM0^o7 o>=K)fŘƃO^7ONjK ^Dĺt0X-KOQً֗̾n۰*wc?%ʦ,{I3du{%p~R;Oww|>]juy݀gP{73erJ2G3%\/;cyOAbIϜb;7y]sC (OУ_r{vpv},ʉ_z 4lYg1- ;ᆛKW~PH}*d]1.XV5j7yC+0>^r!̧ܸωvw>߽w3`,z$ջ:t= ԛOW0ݗ0.'c/R} f&ޡW#9\3o|L+G.!;Aof 9sok, 7 K ǒxf̖;o&rW{r,aI\j'Ggp]lسbCv:'|:`:i.Mt@nӞ,t7~<i?s=<6Cu% >Ng޾x0-r b cש)d<{`c7Ğ;C"=?Y/| %pO7J}Ԕo'܁}@s=:/"EAHt^4A=6l"i q@eqg݂Nd𽹜{?vY|˗)oA`SωR|=^/GnI,a^jǒ=wb̿Vba,ٸ=,Xc%u u.n A_J<$#,,ZϢϤI$CNޘS$CV@y'xB& -ujݻYfY^ wy- ς{2He̋^z_OP6Zߣ>6{r:-i {AYd1%L,&Ha 8w=LlxXǼ@Gޒ6ra;уHI/ pgswvz6> 7 x,;, ,B텁lz%OfXYq*b:Yͧ,iw['0"vcţ,ǼLKAXu!wVX67`|Hu+5b5p,YhtK>N 9G?Aqb-aXr̰M1yν:0.$N3pg6s}pe|\ 2Pzmcaݠ200 vے xIU$c.s0*짹4?y8H:l.Pl~\^_Nu!6Xcrr=-BPrp,y\\ˆ ,={8p97*9-2 Bt$ϱ9<ɶ+Go2[]ͣbaיQ! vNQyۃ!KMgShgӠ.Ofg҇ے~Ɯ=ku2~=9|Ʉ̀)yZij&FEx-:öm 6.F[zoTu]!8 .%[Ϧ_b62raUeFJp3:M<^qtKkͤ͏FPlA߫l9x3?tMϣ^'Iur[BZu"=Y}̵rOxߣ.:OM=ME]VK&gI5~.7.%,KŮGV}avm7>ϠC7l!E}W}PwvgK9Kiv-epxxwK.Co6u 9sأS}10ͼ'kqs<[o< uxj c}ſLe;;BPxSضA} -rIOM#OˏX`=ZnXx s R<-x萳` Pd:tϮyQi4YY[2hexyt.n^tc +za ag2T]Clv Bq8SyZ{v5eid ISl`#G`ձyysb#Y:xmϦXC W'i8z;_@!< LZ2O>|]pl.Ɍ6%s@nN2J-!$,A΃gtj9NCd-M1Œv7}vNٍó{睁oYťY`L>$ X̳vdXH]X;,!1AQaq 0@P`?Μ"?r ,:eV2Ʀ#|4b_ YoYRUX%ojw21 b,evY/ve7Scx\%.M{z,`D51~XޛTVp3dXA<2ĮTk- Z4EYY݆Y>vmߖC - fU@3X0W,虃^Xَ.|s(Ua1W,cזZR5\˫+w,Lfk߬2ʼX0{Pα~c  fAݏM-ze}t* /@Hqz_Z&!8nչs7Ig x74FHP3*mosX1*7Q6]WXc9XaTؑR߈[/ & "2fڷZEc0'H A"8 K1Y*!9u/ºLwT8,ZFqиy /z!UP2TM*%&9D,N~K D I|\*Zv̻NꭁijyƲaS5<*PRxGw0#)bBRyjJ^nZ(n`vL9XF7u@"Dp Y }9^RgLc:CaWBzàh]R*K觬t_y k7*W  _j\Q1 Y SVToYN~Z6gc}XJNfV5@<"%jRK/g2fV)1] .ܢ/-L+ +x ɢ:B`9p@wZ=ԯ;U b+FXET` wH]̠ x=EV1>e9|ʐA D3g SU)1(f?No>!Gͺ2 *.R#"!놫iN^oP89``EHөfl((7/E6Sq-S/2H(q .X. .eV b0Q +l0eR9J--;ghc8%AW)pl9PP`(C,$f(DƵDYjäm+,{IE̼<芀a_>=bĿV Ӭsы%d 00Z)`I=fh 0PMH9 (bZTEC6҆c ZWL@wBRJRȍ+OAf~ SVZØhbrkQAt!Q!bi|D.\8%Bڔ\#RL(&X̲CdbJqyہL*5a̕BbR– " `ʅaX!jCtJ a nVub9Q 5,Di(p+Y|C46v*w%R.j6 _SKNh:?Ҏ~!=#5W #mh%kWA6YyfPK^u;iCrB\BZR.Q.>!0D&n  +|\`pZe@%q7Y-˙JcW|VA]&Ubb ES D5.60+F [$cRgRN駴"0GXRDļȂÈFNK_?ĢXFө/+,p AW,^#`-t.(/M£*ًm)px*8LF˿2,L( B鸴AǠ`AZ`ALE9UXSCufK+xƺZi]M8_R!P-s!j aAUJ1zDV+ `85m|9OpvU -̊觱GmhK9w+Qe ,+0TV˳c, ʅ,N^p1*JEIB]aEFUң ɕGRe:LUfqԱ•wo[}7,#n(.%E]`V * $ZH X]Ĕ%C1S4$=Tocp**UW(ĮbX)̆ApV.9 #%po c5/NZ2FѹFrRLGpW/X+2wq*)^"3CYE0mU+yP9a1 Wbs6~(^q,ve'DEjGBqؼeݗ*!9cp .J<ܹs:Es pKW+1U4 Qz}-"FF'! h J5Q1^:RwHhXJ] bħL*`e)wlqD@b]Иw/e^",t TP6[ϲ_GYR0Jj`Aȴ_hH69Ub6YT-LXY)26Dtdd̨2ĺEf MƷ D;z} m AP"l4ˊFa, ksi0zJee9)}R1HH:@1^˪cXlZۊH H2ṤAwJFU *Zb~bUzLll˫boRF#UD5D$!qSUBR7*(D*spb=/OQf)F&f"lLnUU[7q[$iC%o^"n q.`BضL zM&T2s .6ᅠ-]jsм}N/]V^ <0 $`AK!QlHŎ'G[An%5j 3 =[ɨX.ZiiNg Hp#Bf@ 59Pmb F` و,#9YJJb0PfWITAz P.-CkqpX goP e]J̺rbi-fysjD9_YZZB, sm}1(T L}G"T:Ef]q`T0cCQybl(*PWp$@#/? vK-& Ql#3rlWIԢUB e1 *[*2F6j7)`b)FF%­ˑ[+)7+ؚI1/Qc IUDRvfOh%^1CUnWoJj9b0Yhb )U pw`7p60"h6fnAQV̥&XBzЄ)cp9+AXm\vD.fD8*6&/ӽ@E R&TU_2 ^Caٔ2X\eTd+w_/*l5 #@VCg\jPTc IT-IzGZ&*`;%2(ƹD%x"Ss33iEm&m(sM2V_xra)ޡ A.Y"kEzGt *0ˆ5@ eDdH gZ||5* (9A%-bIi UqB=YWe̺c xPϏ",B3=Ƒ A&F6i*vV]#B㬺[nbRί~mvǢT|oW.3TrT^5q [12Ab hA0 z!W)Hgq~H)`a Y?T\) .BҺ}"-:7.[,2ővϼ 3 VB`D/ɦY/1ln֙+V\K0aQEu7`*lEarK%S& B + mJ !xA2CND3g,aꊃ6<Ύ'_jQs݄].̧֡-~z: *8+ 7QoV_xBr_/2Ta7FF Vj\Z8Y/fP\; &|Np1o3g+Iivl9\;~3秘ӯ[8W# z<5a+AV~;%|Ppt59_쎶ty| uZY0\:$TĚDmWɸr,,YwfZ.ucLyGnce3]Z3! H{N@ѣPrqb591U{bDnܿye?t"{_Rr}E AA7JM 8<%+JT4:}Y8 5JoLZdqce3p8RۅD__ڕ8* S  gJV0a}980XryV jЀ|L"q3 GK !s9Ҽm6٧1>UU7Pz\=\:^ F7+pmDh2̣c慔UUP1}c F@1HZzv|Bb`)Z΋/{xAϵ%mͽTUX+(.{etzj-Uu(b)YTy'~)Q7t&{f$8ǐ"BJA5 Dor!]h]^ JNz_%s%*dL~ ~4Nm-rx>2\_l?@ڣtx=D|DTIc! TMڠWCB3wϷ [YS0|Ln=px*ب][Ћ_?lH*g9MmuHhe|ưuqeQ/W:1/^-^KThp1YChRD\4T^k}X ү~T}ۍoȽv}-0w!G@5 t^M8qs @E:ϴc:BH%u+w}))%i@| 1Gpqmmv}"y+{G26By\_kB]/)%l~dj~ p*‚4f$$;v{O.`^ WS,󘳏mC! ǁZ:P \l:&fJ{:`}%3|_B6=u#ׅ8|xA_rYFa 1D Rk!e{үz"F,6ZXCcC rZ$٠/7 jS,Ζ DvžmM~OO\~b '%EnЩR8BnW*_dC,1m^k>`Z>;췆v,ye# Y }.2t(/uK-{D@GUJ XJOǹ)ǵ]=g*)w}ߢQ͌F{TBmŸK*Kӳ^ Nj%k(t:J%oAF@ D:~Ro({+?wr KWZG8sq9T=vA |T0`i;f 2X&ߛ-wZÊl>+1W=>h.h*Cyhݸ&!}A:0hqSP;-vr8, PAqϷ`t1 Jq׿ ":T1q֏3f*-x,oIk41!OW1߶iQ_m]?۷ڈ=J58T7 q4Xeh|[S2$vQyE<lBUdvVյ{S9'{e_v /ӣ)YncYJwEHU˃QaƥW[_~iQhf?;>~̨,l|z1{}DjN=`gegtLs;2}x2K;|x ̻a%DZ' .BOb@Wh>TPWyEKMJ7v4 ]A;E?>2w=T#h(!LG_=@@j[=u@Úrdp1Dw'䚦;yu-EJ#X /z:kه'3YC?q?/zU"N_2=\0׃8Xpw(nt!]},s=NvrEuOƦSr~WȅYʚ|˚}A& 7dx 6t=Jj_l"iF`nd:?z^'Am谐@:AL? ~xb]Eu ֫W/O* hjԼ~GUMJ懁 ߳GWP^#Da0FQ=:A2_/h X:x0Ōp Όt2ħHvj[zȆ2fzևw b~DbP!~uܨjF~>0_l7ҷ堖Xx0-A;` R*TY)Dߥ\aK9MK\-VWxyp̣b"Rȩ^)s@DFcֱqpˉkZy@ cAQRP(TʔKJFQ-d rIXIIRiUL\|@*@ QRJ%Rp(QF4+3B4 .x%9=")(De`7)RZP(zhʘHeef6*R fgx҃(M4%UrG#iJ`C0+=2nI\@M XBϫ"ѴZ;\A56 PncX؍ ]*]pEqQ =n$.R_U:)%@(Ř\P. kfzSKeZQ] Z@H=BXKZ6z7Jڏ.]CDCI n&LXcz MEMM}ZzO\eJ% t7 $zIA K%/ V M(mdt}`ߠZ.j_jilGooqٴ\\ԷPZZ諿QDUxXj,]ܿEz0s4KE> qbg˃/F3G?1-._2ˋȨ`%Jc%J%G^ME%YoïJJkЕe@@J[Z#+֞TS3oSϮD2(Nc\ʕ(0"J~cM1誮ZEfVcTKQW+Ҡ\]}yDi+鯠n$u$(gЗ T0%G>?"~QףxGPGmMz~J愵\>_~x N ¾?ZeYd[^.[PEMe澰"Iw*ߣg0bs.\~r^*\C6D3eY2R25Yyf8/` w&}uRjs^0u7zj<m͇s qm an#yX#=/M}Rc#[bĻe1.UʩR@QuE5 uu6@TY~_EJTEF*6"J+*3PץKD..6, B} \ j"n'Dyqu0Īi#/5)jm40 n%FnªTY3Rs\B`r¤pJ`WHSIAAOK%LC^z= I!3kx-K+Jf* Jb\8\b0%L2-qj1AEzlm*46),%?)w,̤c̽:ҁK^k K"JJ*,!1AQaq 0@`P?`\h,Ja*(_pO.O+Yib6b^ڼ/u;W7mƫ c7"u#yK񋶌,\o#;?qyLBF$8v.Tߨ[hߟ`Amf-smJ7OzK 'YLv^j^m0{%0Y? 0U[?񋯱imh ˛"&jm"]V!~?R*ȭ~! :k&p//!&x a+vR\ UxQ)Bjcb+_n%;98g%3K[QC ?`"D(/.cn"ɢ rĵG_!ZAC-j&% >/HSLRa9*vlb7nK hBRXl Y`5EJSnu27e Kp˨W"r.P64$$(@siC,hV#S*R."٣)_od}JhGR]g21L,Dx-~{.fl.(pG _dg+is)otj̫@ *oE-X h2[SKV(BR:A*ͻ[R-31F%II+e\qȆk/ 1) -OUܴD=)R&_jelXp.6 erYP3fC!k 0iTz3yPN VD(P1}$Աcep4Lmh¥EYx Ȼ2 )Q-}c|!wIf`\;i1~hK\kW1- Bs3,jX"+|PU QĬ) c(Xw T b_AV9l.L& \p )Up/(3R̜*GU ^j!p!Z.*)rmKעRw4F_luAV,Jp"`[ 1}ȽmL<(ȰdRo?'00:%ϥ_qhU"j]l/hVƔDArAv̬@#* ;lXơw0)T` }vմv/=].MjUyF[Al\![QԼm d [' a (N1`ɷm꽱f&99K޳[k [>˨RMð;^bXtX JMY3qcx],tq91%QGRc9V7|TIh!CC*P/Ro95R#K)ycZh*EI%m@gܶPş[u,,)Ws%p3 रG/1몀U c!@vnFx%클7R8,oF0x[en9)% J輲SB'CauQh/Z( *x-%Y J(x(43>(_S#R*'ė}MBkKј)B iiT}aYS@J·+Z c5@7^9{c~K CnaJHSԩ.Tht2K@"sep@_ rpz9= *n/a.-\ҟ a8 EqDZ(qPuY+rdQJeg~>1!jE?PQQ QN̚ Ƭ y_4r(LuX԰'7̬1]@e܄ms#QW '1c64.:(*;k@NMK5a1-5YcF(9ƖWp¡K;M-t.mPdE%bX ~JTzh^@Ga378;e@"yĢve@ Dbǐn+,[p8 J3~ mؾ"Q%0qLfCmBnfd LZ/L`U(e6kÌ (/ݸBbQ)р&.e1ebǘ+Qb*j B`S J") t%eE5m%PV-. m/#[6qI^Z;nU0U8^Vmqĺ:еSC2b}~-eU6,%\ ,DK1,NRF"b€Vޑ# PDT[ BEL UQpYqqP@1i6(C9b•XykPe/ap&x^OPT8KB' Y2+pЗer`Vq(Lz;f`[r_yU^#VG7`P8D]r>/ehUVKDXP,v} d͐DnWZ`Up-F] d,%&jb9*u 9Q' uy35{Rs#ȖAy tS6KFuD}zVgL &QU/n⫘ϓԘZJnu:[kyJjqʍ7|po$56{`K=ˮWVhye U7CxU}0_*Kp ;rB" ߘbK`r' k# &|ĒUOh%s3rUebU..Tw˂1>%zZ/C\\_ZyxGhvDR,pJa$ Rz-[ESv%K@ )5hR8Ns#c ol?Zics P0`{V9P&}JgKP dmռJGq\Ѻ0%sm1lvG1]@ \:%5CK7+< +-X` %G ifbȪ4z13%B޻IB^b-zۙ+ 9*_0nİULc,!.!UEJ"Jm3Wʘ\,9 s˱%(-0pFoZejT]O1S'AqՅ̸p 4TCH%oS^&-_ iL"<@VSeYR3S+q;FqгQqn7ͦ"[bM@Jdk8Z5("ܡQom=:kDFh`f Xm9aAl HʩP@%S71/x#\ =FQBDER 5`$[ .U[^fa4&S^.Џ/2P}BRyB R' ˪\%x2`Ȧ 冱5!mHS.S="稉Xc礛- r"7X!1-k+JC^WK2siKV9 aBuڵ>!w:5D*BPn=I`*Wmw)V`\vc[z~x+-PV*H+Q@2ܨE YZΟn(9\*>r*swAiCHP%.ZiCh ̩ V[8g]QW䫲7ɘp+FJ6%.H EL"ƪ "RRϨthr-iQD;m%mhT t8c.]*6%|Z/k7f{kw)A u@p-7aSmg Z Bb&v1េؿhf[$qޖ%Ҿ*;QqME<\ҶTMiDHUUQ)vG*bk2ۉAQtt5B 2p썬&)9#{ Badeyk aq@vLVe8S|>ArxGeM*jWsT4wBpT_qɧ8AXj*#Ĭ,dU=$Vs.zl~,g}+!BR%VZ5|(PSTZ dNJ>]Z(ęVpHS@t3t5-B"G` UK,?QK/ĽлDK hcE-9\s.7V;ۍ䁧b:A[0f dO;_p9d?^Fr`S,z7'mcA>@VR!, E8\ZnXSA+QS^kmܭfrFc_V^YAd"x`,eVhJЖ0e 8.g|^ŃQ )۸.` Kb`Ы EN6l0 ]3/@_XӶW"Xi JmVәnFmI6¢3 f Hݠ*1`^&o%E-WB!yp@|(WԴش[DJ }*)6Bn D(S&*dyhu] *d.~vTE PdKt/R;Xp ';;G&t STd4XR[a 7G{ZƐ Ȗ7*ca`=9<#qTIH(ЭS)xeKJbQ& r٬JFj1vW֯QʳhLT ;qE"у1/ܫ;!A[a4)"@A7a-$3^EL(hEJud.aKRR|?P.AН\|\L(*8]WxАqy'Е4ܔ*mpA% ж*KR%M;/XR/1 d} bty`nw*_3Sj[ 99ew/g,Ck==M"٨ \ KVe i F.aaOnA;t_@f 4tq.Vi($rCJ2)MaCgebKtVXTaJ^(QĥNp˺wDYB1X טKv1;k֣MLj-A `>@ȂQ\E5[e.^Dhz7`[M WmPN/NIdPY 2]bkJ]\*tMY. RU\2m2!غA܎ف a{UTP0bTl` V6dSE86 P%Mxp}9ə*)=2-]pP-jj)IbE ptP16DGD h '3ӹz-v̙+H׸ 6DEӢ/e]9(ы kV4E̴`62Cw 4 = , ̏1r6 vyrF%G_I8`K̖y;e:R-[b61Kn tL@x\~aUupz#=S+~FޥbXޯJ**(xwνG>BѬ^ |Gy"`[PZʈ5BWfZ嚜@v@uQB#s n<@ m BY@q,R1M%W\_TjPA_*)*jèRpu-o!YDEh7 N"-B%R&0{Ι_s1Ái`No/vP$-jU+GG;UD8&G$CB˛/J[4hdfD`Ic]ۥJiX0[k!+QQxo̱] ?wS|_z‚쨹\,䵱8"Lr`U%EQ|On%aW- qTh8 3@r穠( UD#b] {~RbG,#2Y,(Րʭ>Z 㲫RAx( dUlCXSܱ-\1v2D 0&/(eE[ +V42ܭpf+EY2kn یAP5t$CL.SGpʔPq6 >c3mY?YnB"5]V)]oP\ /u僈cNKE4i4 1*WD qsaE\pC ::ǘhIE5Zhڻs~U.3tmZ/ԡ).}` -Wܨ% -SqQQ5]A\eDl9`qw@ub38usT ¿ 1.I{^aB9n1EJjq*6+nvQNU-kymkQ 2قY|[Kf~q*GtYÙxț^bPQQՃ!h3-ЫdGJ w0ɑ.Y ŒUpZDv@D[2 rZWPA8bn] !"#V,P297̳xEEk.M<,<#LIh] ̲ sUPQ2 BPԫJ = 2esy^fI VI2rE `7 6Avp3>VlslmNM*puEKh K~ t0@:"Ƚ/j錈,U\mQL axԺQ*(Z[:w{QTe֔5*+1xۖJSSYxVY"l󕉇*P\-B *g VpOTZ:Qϸ ZZ-cjPc"G^23PS!]*oPlP/Jnls` &mL#USfIPPrt?0e"Vg1n!wVL8x\zX ~ `G8l]z ^=C*1ڙ_ B+WP"+ g|MpT.b4.ɼ Tf-:fm4Pw#p!{YZl-Wx1~g[Q +5Wc g$U!ZHKyYoQZ ~ڮ*3vU)r-Kc`TCES9l{Yn5" -pƼ Pg-tĺW"2E䖅\v%E6pa,<@@呗ۛ춏pb]Vm7`<U )6\voQ$+@D BVIE eD'*\C Qo.H 4J8@gR"LZ^wDp @EUϨ`a"ljQuslMes0T Or`vb5Yo %qJɡO03m]pah%,tC7F [s2S,JNy.0q2aPԨ9E׈:!v&NPoP a>60/G@!ġDD檎I@A)]TO{`9/L DK }0⯅iݟr̪أTkbU|DhDQ8(h~EzrpgfX+JCcJ/AL\@{AH l*xP )Mg&0Kh\1/-<"qRSoAT7 ?H Aq jVNaj_c;eRc#ox)u C㓣.g2ZPO)L3"']kVU6AFv**S6xa]p^*+kJsX_,J`%)a0-v,kKn2Œ'-Oi(?#և,\6ڳ`Z?qSϘ]8BiVk"hBW.VCo@'UĶ*#̩[ssJYG5սFgW0c zW9+3\*~ 1RvKad+D^߅rxl> ʃR*Tgu;V;2݇ 8).I5. lsx}n@CmD O?*'z;V,hcߘ`ejAgwHrqr\#5+)\NLgF(BE USn] =D.9]Lr}#lޮo[Q—g`݇AՉOU kyV E)6b=*ށǧ'_α]MţTZ]#\Uܱ@L>,ƱWϸAĨRD\BdzL4<)&a` "n'ܰTacm2*h r!}-Lsec2eUiszĵxت Zw6*z u;ˏe<75o| J +;l|1Bj@x[e%DDEoEnSUϰXԻbݰigw"EFן*vz"F)V,Z]}%kD8cҼNP]QM+ZNBpkڡTD1 节4Ę[w?jb:wc'@g' 16CbRU& o;  )|Ų6XsP<If !4Ȯ;,o4y<\Ws_ƼBRsYRq e') (Fo@Q\!DWUX`r wbJTWEg !.[_n rzBUcmMo Ej^{4EŌ&\kkZ<> a߸͕ YQtaj8Wj85 (T^a-n(:*, [Z,vm{mr $Ǒv#ySKF]x*/!$@tS)M/2EwJ{H*,NnG#pjeBݐj,N\媝:,|+]C4^f)ULJ!Ա=rB yb3 >)ʸS <DZ|X]b̞\=[*FX>Ny\FTy(([TkJp nVq3I LkXJE3|7+ 7ӫ$/>} h*AiT.d4߀[< R<Ʊ-6~IMʃGRRWR hKħ]^%<γŽJnZ&Go4iir{~y/GWumCq{ ݅Bˋ;\Alܴ2q1vUI遫+/@ 8>`=*mb5͖yP .Ls:W#Z*ẛ~7X(4)Q{ybč`cc] [-!kPח Q %f&\{_Fd%Z"^YRYGf[oPs4H1-૮z_E5B=ڢՠ_b)WnY(^M=m.}B\)O5 xL<מ^ ڠ9@HUE C4 +]j]GTJ-?R7a9c@<ьgY2z 96uR7MW.У-3%"\ 1wtƍ D-uBZJߓK"*ss)k]SaT\ 'cc 7PFmĮ0qr ܶA4{vySbiqy+{7 ȈmXޡ%Ac(ZެB4-(FIKE ) rCMv \zG+j8w F.xw*tf1)|m/ mrQ{* 4֗䔈QQl-vZAAɳ*8]VR֗OQ&){cMt7*fX,K~芅캜qĵ;5V)D2)95<(P%-pFo TEƥmuQq UE<\fj8@Bİh?@QΕΌТ].Rċľ_#m.XVQ-Ѻ8#Az`[Fr] z2DP"lCCky&!/Rň>0ecޥ3_89 +/E_5*)6W^ h?xeU3F):ヨXI l%<  \Z\'1O WTW$)oϜpFJA { JXϗB;7X.g\8d/8ĥnl^j_jhh<1ZH!a%XK g|4J ^ٿ|+Aj[y\f`P4׸bຊFb7GEZK kJj-\6;o뀊n wP Z2P1pl&fsd1a';T6\ (n $}<I`f0X]p kADN\2)@x,WnO]P•x0&m,/򖄅zvЪL_/$]u.m3BXE5ܻ% / j=00fc`^[c1"UA7~  iVu]zi34-Z\-vYSQN# /6vXLe6[Yfb`l@\NRz&O[=|Ui.\f3\2;huuq"zj?Pt@YQ}ĩ]nT BUu+zOH@@7t`Bŗ}Z0ļ\ yV4\eJ6`zܸ28ҩ]7Ar YI!qjRb;e<8Jƌ/moѠt-[сR VʝajJߪCe\RDgT`b$eES, ƨ'W(r/0qH8 oFs5qacgP5-nISc]sPa*$ҙ  rI{ZR>e8mUCb=Hy'X R@v:0Xw)i.zwٔ {\%u:6պZ~X%Kpo!ߕ(4`2+o"u @Wq?E_>92ej'Z]?f  8%aW 1cBtTXt,+Wx#Lv mhj0o ^A1%`l*'JPoVRګļ|o"t^""X H)T܀6#V59!NcY jKɚK-iVo# lJD OKx P3M=\RLr/e8V)e(ՀW/ -T6~H?@@+?Ji=R9Kj)qP)7kU Z:QN|,ċ˥7C#`cxj8oA9/ȯd0P0B)ij,Tz"% n`1q:{-v?0`"/Y܆wR1i b=@5:sR4m#l]Ol F$3gꃫohD |\GUA 7Ua2JP} |aP0 ݥav>bPE.ڼb'^7K%K\x=dH>l:g~>)؈̗k&T}bħ>Kjeg*`6^tп0X_r7]3`>Ώݰ.Xp|-2T_,?\[nC pY_@Ǜ@fk|أ fiP]ݻ+Y2zToGvJ% VfOGKV m{Y3@ѠEe=Jn`5{˃-hc.^K·b9!?T IctƃV{S Pe/}E2Ŋ1rӓe7MTw}51T (ô]dl!)D `K*Bȭa]H yRS]"L<9D+%y,_p ?{鞦>؊_zܗs!`GWv,@I/_KX'Ǟyg+Vt^%r9Om,eILUdPkп.Wh) qZTp`G(ȣDKDOa&Ҷ6W|F"".iTe RZҷD<$l[q=ΙljFf"QQzA&Y@c0CkPJBg^&>bd-J޸%Hgs2cgg1 &!1 61x0ͥ{Yp`sJSzv9IqӚ1">߇kC!^ߧ_QKVˊٸtbaqnHJp#KW W:z~d'Ϣ׶NQF"qkQPGKlfJ|gע F[ᄩ^ rqv.bDZ0J2 QcCqebz-VGx 5Zf(?t\43+2O' _X)S&i4&"*?֭ W_xN'lDl©hA# =Y$%ba+Zt2C!Um*o?d&fOqMy=[/()Fw~ofjB<,eYeJC"j!3!0 8ԅY1Z4.<<_`IP dCD y3~a gBtX*EEL;z!0 RtGK /3}ƼLG!tN O'IKXҾ>#2.8eJbgEyH}/D4[ eHbnYs:/? S^g@@"eEx~&n;XS71v`SygԽo9{G~?E[UU2/pȿjTN% Dze\1|)郚1`z)࣊H $oRsW&. ӵJ>yRj'mŶܿC9 u 1^bPGZGWTNkqMJd0__940ӨgxZawi*vKj2{bX(fs^%)CԬ6x{zF)B@YGo,IT2a-aA"J|B^[A 1(^#^GԷof0G~&ݿ=e~"I\Kcev^ng,vNݹKeEݗzj IJC5&qgsS꺹[ nx j%w66D9S#eF'f f!'f@|Bp$0H|}\sJVF j7 E:[7?gBP`5A9 50 a[/[ ^%QUw((% bT\- )SVYFe< OB,iU1̑lO3J *.٪!U{*س+ܫ̦ `jȫz#pb+DsA{"Dn-i720lw/AoRvo7,OPH,zQ ZR,[0p Ě$E%dA)YfG c59Z]5q:~eh2䊀"l%Z hA"jQ8,.]agǘYu`\8ExQ\\F Pu`L+wlEMq*T)~ӪL^Q?Q62+T{kB!7'V5Qbt;glwebF~礋7 o:7QK:Ej(6hVR˫Q8)\(!Xg^_q~$jYmwU4Ef*^P/lzw Q151ZzO"FTԴisb4ǸWźm V15i^?ȨkO;_hB8[D ,Sx)ͺ3l|-蘖^37E=ʻ]¸ /"]do?̮vEe/&CM'S9F& Tj[gQ֮Pxy U t." m`o#eժTQL^e1Cf.x7`X ?:*!xp]ռʥ c!]|Jn=E5UǸwAtPTˈ+\ZպĠS=q#m?<5W)+s 4x<- B-Щ遢%-f kSnRu Wu cp(@4q%9UP@= 7(SBv56.űe-e%R)iF\ [*P؜TU׊(\:Π6|JK &cQ* X:yi^e^'P}+⠁p1U[?!|C|\,J9fVj$Giy)T-+ Zg~"sXH+-a5s4 ısZl4x^ynh;4riJ A .U7PI t ӞOb>hWDi- (wZ \(4˺bF֥,Nj&n5 S&a$2p0Kc`h#e gI=V0- ψZP-+^+1-\ vZ*i'Ĵ^%P77rsss$D? q0ᤍQ|uXlF޹*+#e%S 4oP6BODCw|ElG&l%T i)+ܰ*o㉊; 杸bz&O)*PJҥjcfP[~"SN%xqH;;h 1+Y@jy"o1B1-~s4QG̴V|UWK\昷/Lx#VBܫ-2xgRst{*[.> Q(㬶~̱2ze^!)\J^_( w}5LY#h0-a0T&VjfNgDi6n՗B&Š]TZR+˪Y jeiNs,QDqwÔ &)T]0ɜ-b8 C4.^:g̢s9iDp#k (N*"9Jsbbo>) WxS<͕Wߏ"^ յΥr&XmWlWDU.0Sqj2&,zS0.~ f* c7C EJ% bAK_.ұFSO sbۭD5=U__yCm矂P_,=Acx(l| D[A),"(髬|V4àXqR;q(i0YnVBi\Ɨd-TAWЁ%#y5eC:.MGQ}b(l*hJ+ޢVCW(G h& kMZ(Ĥ# %H(d<Q= l9uY7d|GAfA$ۺ1͞"Vi ̸AiY-zTy"DF?; ) &n6s 8Ơdδ D( bB'2ن8 vq60iˁ\>e.(!W9 `xW#^< HU r?\w2٩| ),RATpGx]PFF@Cr\R- .v| CSi u d$xoL2Ò[k*5 ,V9'?+fL Qӗ(ەk7F_Fs^Y.KҢGvf{5/fs%0 XЮٚhIAN%9PRU0i L]DU]ei{]sZ`W3Fb[1JA^"ZYPT1}xkIu :om53 k,kff]*=b"*V uP߹Tұ_RYZ]F#2eP7 W#MT-TSxjZ-kB;/'Pb\eL Bܱ^Yϸ&uTqRsU)w ev&sbDӎ+;34{[{26sUPQvS'LQG&+ֈ_:j J 4v Ӷ+/\ph` #{Mn=&809۴sOp(D[[JԵBch \x#/!8B|@\/LneZq.:0Tr (#8yuBiYMӋ0o@ BVܹ b_62䥄ŕA ?(Q\ۙaY6pf_{%KmuC*M:mS|jae! C˨NZ1l'Q arD5x |HR Uw) ( ) { // // 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-9.6.8/examples/GW/PaxHeaders/Cu0000644000000000000000000000013114626155522014023 xustar0030 mtime=1717099346.205998351 29 atime=1717099346.20199833 30 ctime=1717099346.205998351 elk-9.6.8/examples/GW/Cu/0000755002504400250440000000000014626155522016623 5ustar00dewhurstdewhurst00000000000000elk-9.6.8/examples/GW/Cu/PaxHeaders/elk.in0000644000000000000000000000013214626155522015204 xustar0030 mtime=1717099346.204998346 30 atime=1717099346.203998341 30 ctime=1717099346.204998346 elk-9.6.8/examples/GW/Cu/elk.in0000644002504400250440000000152214626155522017726 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-9.6.8/examples/GW/Cu/PaxHeaders/GWTSF.OUT0000644000000000000000000000013214626155522015364 xustar0030 mtime=1717099346.206998357 30 atime=1717099346.205998351 30 ctime=1717099346.206998357 elk-9.6.8/examples/GW/Cu/GWTSF.OUT0000644002504400250440000011021014626155522020101 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-9.6.8/examples/GW/PaxHeaders/Si0000644000000000000000000000013214626155522014030 xustar0030 mtime=1717099346.213998395 30 atime=1717099346.208998367 30 ctime=1717099346.213998395 elk-9.6.8/examples/GW/Si/0000755002504400250440000000000014626155522016627 5ustar00dewhurstdewhurst00000000000000elk-9.6.8/examples/GW/Si/PaxHeaders/GWSF_K000001.OUT0000644000000000000000000000013214626155522016157 xustar0030 mtime=1717099346.211998384 30 atime=1717099346.210998378 30 ctime=1717099346.211998384 elk-9.6.8/examples/GW/Si/GWSF_K000001.OUT0000644002504400250440000010066614626155522020712 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-9.6.8/examples/GW/Si/PaxHeaders/elk.in0000644000000000000000000000013214626155522015210 xustar0030 mtime=1717099346.213998395 30 atime=1717099346.213998395 30 ctime=1717099346.213998395 elk-9.6.8/examples/GW/Si/elk.in0000644002504400250440000000130214626155522017726 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-9.6.8/examples/GW/PaxHeaders/HEG0000644000000000000000000000012614626155522014063 xustar0029 mtime=1717099346.22799847 28 atime=1717099346.2149984 29 ctime=1717099346.22799847 elk-9.6.8/examples/GW/HEG/0000755002504400250440000000000014626155522016657 5ustar00dewhurstdewhurst00000000000000elk-9.6.8/examples/GW/HEG/PaxHeaders/elk.in0000644000000000000000000000013214626155522015240 xustar0030 mtime=1717099346.216998411 30 atime=1717099346.216998411 30 ctime=1717099346.216998411 elk-9.6.8/examples/GW/HEG/elk.in0000644002504400250440000000143614626155522017766 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-9.6.8/examples/GW/HEG/PaxHeaders/HEG.png0000644000000000000000000000013214626155522015246 xustar0030 mtime=1717099346.222998443 30 atime=1717099346.218998421 30 ctime=1717099346.222998443 elk-9.6.8/examples/GW/HEG/HEG.png0000644002504400250440000125745314626155522020011 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-9.6.8/examples/GW/HEG/PaxHeaders/plot2d.general0000644000000000000000000000013214626155522016700 xustar0030 mtime=1717099346.225998459 30 atime=1717099346.225998459 30 ctime=1717099346.225998459 elk-9.6.8/examples/GW/HEG/plot2d.general0000644002504400250440000000027214626155522021423 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-9.6.8/examples/GW/HEG/PaxHeaders/plot2d.net0000644000000000000000000000012714626155522016055 xustar0029 mtime=1717099346.22799847 29 atime=1717099346.22799847 29 ctime=1717099346.22799847 elk-9.6.8/examples/GW/HEG/plot2d.net0000644002504400250440000001457214626155522020604 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-9.6.8/examples/GW/PaxHeaders/LiF0000644000000000000000000000013214626155522014127 xustar0030 mtime=1717099346.233998502 30 atime=1717099346.229998481 30 ctime=1717099346.233998502 elk-9.6.8/examples/GW/LiF/0000755002504400250440000000000014626155522016726 5ustar00dewhurstdewhurst00000000000000elk-9.6.8/examples/GW/LiF/PaxHeaders/TSFGW.OUT0000644000000000000000000000013214626155522015467 xustar0030 mtime=1717099346.231998491 30 atime=1717099346.231998491 30 ctime=1717099346.231998491 elk-9.6.8/examples/GW/LiF/TSFGW.OUT0000644002504400250440000007164014626155522020221 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-9.6.8/examples/GW/LiF/PaxHeaders/elk.in0000644000000000000000000000013214626155522015307 xustar0030 mtime=1717099346.234998508 30 atime=1717099346.234998508 30 ctime=1717099346.234998508 elk-9.6.8/examples/GW/LiF/elk.in0000644002504400250440000000132114626155522020026 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-9.6.8/examples/PaxHeaders/RDMFT0000644000000000000000000000013214626155522014014 xustar0030 mtime=1717099346.237998524 30 atime=1717099346.235998513 30 ctime=1717099346.237998524 elk-9.6.8/examples/RDMFT/0000755002504400250440000000000014626155522016613 5ustar00dewhurstdewhurst00000000000000elk-9.6.8/examples/RDMFT/PaxHeaders/NiO0000644000000000000000000000013214626155522014501 xustar0030 mtime=1717099346.241998545 30 atime=1717099346.237998524 30 ctime=1717099346.241998545 elk-9.6.8/examples/RDMFT/NiO/0000755002504400250440000000000014626155522017300 5ustar00dewhurstdewhurst00000000000000elk-9.6.8/examples/RDMFT/NiO/PaxHeaders/TDOS.OUT0000644000000000000000000000013214626155522015720 xustar0030 mtime=1717099346.239998534 30 atime=1717099346.239998534 30 ctime=1717099346.239998534 elk-9.6.8/examples/RDMFT/NiO/TDOS.OUT0000644002504400250440000004411214626155522020444 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-9.6.8/examples/RDMFT/NiO/PaxHeaders/elk.in0000644000000000000000000000013214626155522015661 xustar0030 mtime=1717099346.242998551 30 atime=1717099346.242998551 30 ctime=1717099346.242998551 elk-9.6.8/examples/RDMFT/NiO/elk.in0000644002504400250440000000150314626155522020402 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-9.6.8/examples/PaxHeaders/XMCD0000644000000000000000000000013214626155522013673 xustar0030 mtime=1717099346.246998572 30 atime=1717099346.244998562 30 ctime=1717099346.246998572 elk-9.6.8/examples/XMCD/0000755002504400250440000000000014626155522016472 5ustar00dewhurstdewhurst00000000000000elk-9.6.8/examples/XMCD/PaxHeaders/Fe0000644000000000000000000000013214626155522014225 xustar0030 mtime=1717099346.250998594 30 atime=1717099346.246998572 30 ctime=1717099346.250998594 elk-9.6.8/examples/XMCD/Fe/0000755002504400250440000000000014626155522017024 5ustar00dewhurstdewhurst00000000000000elk-9.6.8/examples/XMCD/Fe/PaxHeaders/Fe_lo.in0000644000000000000000000000013214626155522015656 xustar0030 mtime=1717099346.249998588 30 atime=1717099346.248998583 30 ctime=1717099346.249998588 elk-9.6.8/examples/XMCD/Fe/Fe_lo.in0000644002504400250440000000366014626155522020405 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-9.6.8/examples/XMCD/Fe/PaxHeaders/elk.in0000644000000000000000000000013214626155522015405 xustar0030 mtime=1717099346.251998599 30 atime=1717099346.251998599 30 ctime=1717099346.251998599 elk-9.6.8/examples/XMCD/Fe/elk.in0000644002504400250440000000252014626155522020126 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-9.6.8/examples/PaxHeaders/libxc0000644000000000000000000000013214626155522014241 xustar0030 mtime=1717099346.254998615 30 atime=1717099346.252998605 30 ctime=1717099346.254998615 elk-9.6.8/examples/libxc/0000755002504400250440000000000014626155522017040 5ustar00dewhurstdewhurst00000000000000elk-9.6.8/examples/libxc/PaxHeaders/Al0000644000000000000000000000013214626155522014575 xustar0030 mtime=1717099346.256998626 30 atime=1717099346.254998615 30 ctime=1717099346.256998626 elk-9.6.8/examples/libxc/Al/0000755002504400250440000000000014626155522017374 5ustar00dewhurstdewhurst00000000000000elk-9.6.8/examples/libxc/Al/PaxHeaders/elk.in0000644000000000000000000000013214626155522015755 xustar0030 mtime=1717099346.256998626 30 atime=1717099346.256998626 30 ctime=1717099346.256998626 elk-9.6.8/examples/libxc/Al/elk.in0000644002504400250440000000161614626155522020503 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-9.6.8/examples/PaxHeaders/miscellaneous0000644000000000000000000000013214626155522016003 xustar0030 mtime=1717099346.271998707 30 atime=1717099346.258998637 30 ctime=1717099346.271998707 elk-9.6.8/examples/miscellaneous/0000755002504400250440000000000014626155522020602 5ustar00dewhurstdewhurst00000000000000elk-9.6.8/examples/miscellaneous/PaxHeaders/GaAs-effective-mass0000644000000000000000000000013214626155522021515 xustar0030 mtime=1717099346.261998653 30 atime=1717099346.259998642 30 ctime=1717099346.261998653 elk-9.6.8/examples/miscellaneous/GaAs-effective-mass/0000755002504400250440000000000014626155522024314 5ustar00dewhurstdewhurst00000000000000elk-9.6.8/examples/miscellaneous/GaAs-effective-mass/PaxHeaders/elk.in0000644000000000000000000000013214626155522022675 xustar0030 mtime=1717099346.262998658 30 atime=1717099346.261998653 30 ctime=1717099346.262998658 elk-9.6.8/examples/miscellaneous/GaAs-effective-mass/elk.in0000644002504400250440000000120514626155522025415 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-9.6.8/examples/miscellaneous/PaxHeaders/Al-STM0000644000000000000000000000013214626155522017000 xustar0030 mtime=1717099346.269998696 30 atime=1717099346.263998664 30 ctime=1717099346.269998696 elk-9.6.8/examples/miscellaneous/Al-STM/0000755002504400250440000000000014626155522021577 5ustar00dewhurstdewhurst00000000000000elk-9.6.8/examples/miscellaneous/Al-STM/PaxHeaders/elk.in0000644000000000000000000000013214626155522020160 xustar0030 mtime=1717099346.265998675 30 atime=1717099346.265998675 30 ctime=1717099346.265998675 elk-9.6.8/examples/miscellaneous/Al-STM/elk.in0000644002504400250440000000142014626155522022677 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-9.6.8/examples/miscellaneous/Al-STM/PaxHeaders/stm2d.general0000644000000000000000000000013214626155522021445 xustar0030 mtime=1717099346.267998685 30 atime=1717099346.267998685 30 ctime=1717099346.267998685 elk-9.6.8/examples/miscellaneous/Al-STM/stm2d.general0000644002504400250440000000027314626155522024171 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-9.6.8/examples/miscellaneous/Al-STM/PaxHeaders/stm2d.net0000644000000000000000000000013214626155522020616 xustar0030 mtime=1717099346.270998702 30 atime=1717099346.269998696 30 ctime=1717099346.270998702 elk-9.6.8/examples/miscellaneous/Al-STM/stm2d.net0000644002504400250440000001263514626155522023347 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-9.6.8/examples/miscellaneous/PaxHeaders/Al-exp[iq.r]0000644000000000000000000000013214626155522020213 xustar0030 mtime=1717099346.273998718 30 atime=1717099346.271998707 30 ctime=1717099346.273998718 elk-9.6.8/examples/miscellaneous/Al-exp[iq.r]/0000755002504400250440000000000014626155522023012 5ustar00dewhurstdewhurst00000000000000elk-9.6.8/examples/miscellaneous/Al-exp[iq.r]/PaxHeaders/elk.in0000644000000000000000000000013214626155522021373 xustar0030 mtime=1717099346.274998723 30 atime=1717099346.273998718 30 ctime=1717099346.274998723 elk-9.6.8/examples/miscellaneous/Al-exp[iq.r]/elk.in0000644002504400250440000000136614626155522024123 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 ! write out useful variables to VARIABLES.OUT wrtvars .true. ! high-quality calculation highq .true. ! q-vector vecql 0.0 0.0 0.125 ! list of k-points kstlist 1 2 3 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-9.6.8/examples/PaxHeaders/structural-optimisation0000644000000000000000000000013214626155522020065 xustar0030 mtime=1717099346.288998799 30 atime=1717099346.275998729 30 ctime=1717099346.288998799 elk-9.6.8/examples/structural-optimisation/0000755002504400250440000000000014626155522022664 5ustar00dewhurstdewhurst00000000000000elk-9.6.8/examples/structural-optimisation/PaxHeaders/Si-atom-opt0000644000000000000000000000013014626155522022174 xustar0029 mtime=1717099346.27999875 30 atime=1717099346.277998739 29 ctime=1717099346.27999875 elk-9.6.8/examples/structural-optimisation/Si-atom-opt/0000755002504400250440000000000014626155522024775 5ustar00dewhurstdewhurst00000000000000elk-9.6.8/examples/structural-optimisation/Si-atom-opt/PaxHeaders/elk.in0000644000000000000000000000012714626155522023362 xustar0029 mtime=1717099346.27999875 29 atime=1717099346.27999875 29 ctime=1717099346.27999875 elk-9.6.8/examples/structural-optimisation/Si-atom-opt/elk.in0000644002504400250440000000107714626155522026105 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-9.6.8/examples/structural-optimisation/PaxHeaders/BaTiO3-lattice-opt0000644000000000000000000000013214626155522023331 xustar0030 mtime=1717099346.282998766 30 atime=1717099346.281998761 30 ctime=1717099346.282998766 elk-9.6.8/examples/structural-optimisation/BaTiO3-lattice-opt/0000755002504400250440000000000014626155522026130 5ustar00dewhurstdewhurst00000000000000elk-9.6.8/examples/structural-optimisation/BaTiO3-lattice-opt/PaxHeaders/elk.in0000644000000000000000000000013214626155522024511 xustar0030 mtime=1717099346.283998772 30 atime=1717099346.283998772 30 ctime=1717099346.283998772 elk-9.6.8/examples/structural-optimisation/BaTiO3-lattice-opt/elk.in0000644002504400250440000000136614626155522027241 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 isgkmax -2 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-9.6.8/examples/structural-optimisation/PaxHeaders/Ge-lattice-opt0000644000000000000000000000013214626155522022643 xustar0030 mtime=1717099346.286998788 30 atime=1717099346.285998782 30 ctime=1717099346.286998788 elk-9.6.8/examples/structural-optimisation/Ge-lattice-opt/0000755002504400250440000000000014626155522025442 5ustar00dewhurstdewhurst00000000000000elk-9.6.8/examples/structural-optimisation/Ge-lattice-opt/PaxHeaders/elk.in0000644000000000000000000000013214626155522024023 xustar0030 mtime=1717099346.287998793 30 atime=1717099346.286998788 30 ctime=1717099346.287998793 elk-9.6.8/examples/structural-optimisation/Ge-lattice-opt/elk.in0000644002504400250440000000273214626155522026551 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 ! no atomic position optimisation atpopt 0 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-9.6.8/examples/structural-optimisation/PaxHeaders/MgB2-lattice-opt0000644000000000000000000000013214626155522023037 xustar0030 mtime=1717099346.289998804 30 atime=1717099346.288998799 30 ctime=1717099346.289998804 elk-9.6.8/examples/structural-optimisation/MgB2-lattice-opt/0000755002504400250440000000000014626155522025636 5ustar00dewhurstdewhurst00000000000000elk-9.6.8/examples/structural-optimisation/MgB2-lattice-opt/PaxHeaders/elk.in0000644000000000000000000000013214626155522024217 xustar0030 mtime=1717099346.290998809 30 atime=1717099346.289998804 30 ctime=1717099346.290998809 elk-9.6.8/examples/structural-optimisation/MgB2-lattice-opt/elk.in0000644002504400250440000000336214626155522026745 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 ! no atomic position optimisation atpopt 0 ! 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-9.6.8/PaxHeaders/tests0000644000000000000000000000013214626155523012465 xustar0030 mtime=1717099347.083003077 30 atime=1717099346.304998885 30 ctime=1717099347.083003077 elk-9.6.8/tests/0000755002504400250440000000000014626155523015264 5ustar00dewhurstdewhurst00000000000000elk-9.6.8/tests/PaxHeaders/test0000644000000000000000000000013214626155522013443 xustar0030 mtime=1717099346.307998901 30 atime=1717099346.306998896 30 ctime=1717099346.307998901 elk-9.6.8/tests/test0000755002504400250440000000064414626155522016174 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.* OMP_NUM_THREADS=8 OMP_STACKSIZE=20M ../../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-9.6.8/tests/PaxHeaders/test_0310000644000000000000000000000013214626155522014026 xustar0030 mtime=1717099346.327999009 30 atime=1717099346.309998912 30 ctime=1717099346.327999009 elk-9.6.8/tests/test_031/0000755002504400250440000000000014626155522016625 5ustar00dewhurstdewhurst00000000000000elk-9.6.8/tests/test_031/PaxHeaders/TEST_705.OUT_0000644000000000000000000000013214626155522016005 xustar0030 mtime=1717099346.311998922 30 atime=1717099346.310998917 30 ctime=1717099346.311998922 elk-9.6.8/tests/test_031/TEST_705.OUT_0000644002504400250440000000010114626155522020517 0ustar00dewhurstdewhurst00000000000000'number of crystal symmetries' 1 1 1 8 elk-9.6.8/tests/test_031/PaxHeaders/TEST_900.OUT_0000644000000000000000000000013214626155522016002 xustar0030 mtime=1717099346.313998933 30 atime=1717099346.312998928 30 ctime=1717099346.313998933 elk-9.6.8/tests/test_031/TEST_900.OUT_0000644002504400250440000000007014626155522020521 0ustar00dewhurstdewhurst00000000000000'number of G-vectors' 1 1 1 3383 elk-9.6.8/tests/test_031/PaxHeaders/TEST_910.OUT_0000644000000000000000000000013214626155522016003 xustar0030 mtime=1717099346.314998939 30 atime=1717099346.314998939 30 ctime=1717099346.314998939 elk-9.6.8/tests/test_031/TEST_910.OUT_0000644002504400250440000000160414626155522020526 0ustar00dewhurstdewhurst00000000000000'k-points (Cartesian)' 2 27 0.100000000000E-07 1 0.00000000000 2 0.00000000000 3 0.00000000000 4 0.271443785498 5 0.271443785498 6 -0.271443785498 7 0.542887570996 8 0.542887570996 9 -0.542887570996 10 0.542887570996 11 0.219392771266E-16 12 -0.219392771266E-16 13 0.814331356494 14 0.271443785498 15 -0.271443785498 16 1.08577514199 17 0.438785542532E-16 18 -0.438785542532E-16 19 -0.219392771266E-16 20 0.542887570996 21 0.219392771266E-16 22 0.271443785498 23 0.814331356494 24 -0.271443785498 25 0.542887570996 26 0.542887570996 27 -0.335718741046E-16 elk-9.6.8/tests/test_031/PaxHeaders/elk.in0000644000000000000000000000013214626155522015206 xustar0030 mtime=1717099346.316998949 30 atime=1717099346.316998949 30 ctime=1717099346.316998949 elk-9.6.8/tests/test_031/elk.in0000644002504400250440000000115714626155522017734 0ustar00dewhurstdewhurst00000000000000 tasks 0 478 500 test .true. epspot 1.e-8 nxlo 1 swidth 0.01 deltaph 0.02 rgkmax 7.0 gmaxvr 12.0 lmaxi 2 lmaxo 7 lmaxapw 8 lorbcnd .false. nxoapwlo 1 nempty 8 ngridk 3 3 3 wplot 200 100 0 0.0 4.0 tstime 50.0 dtimes 0.5 avec 3.85788 3.85788 0.0 3.85788 0.0 3.85788 0.0 3.85788 3.85788 sppath '../../species/' atoms 2 : nspecies 'Li.in' : spfname 1 : natoms; atposl below 0.0 0.0 0.0 'H.in' 1 0.5 0.5 0.5 elk-9.6.8/tests/test_031/PaxHeaders/TEST_500.OUT_0000644000000000000000000000012714626155522016002 xustar0029 mtime=1717099346.31899896 29 atime=1717099346.31899896 29 ctime=1717099346.31899896 elk-9.6.8/tests/test_031/TEST_500.OUT_0000644002504400250440000000013514626155522020517 0ustar00dewhurstdewhurst00000000000000'DOS at Fermi energy' 2 1 0.500000000000E-02 1 0.491833313864E-02 elk-9.6.8/tests/test_031/PaxHeaders/TEST_510.OUT_0000644000000000000000000000013214626155522015777 xustar0030 mtime=1717099346.320998971 30 atime=1717099346.320998971 30 ctime=1717099346.320998971 elk-9.6.8/tests/test_031/TEST_510.OUT_0000644002504400250440000000014514626155522020521 0ustar00dewhurstdewhurst00000000000000'estimated indirect band gap' 2 1 0.200000000000E-01 1 0.209924691828 elk-9.6.8/tests/test_031/PaxHeaders/TEST_400.OUT_0000644000000000000000000000013214626155522015775 xustar0030 mtime=1717099346.322998982 30 atime=1717099346.322998982 30 ctime=1717099346.322998982 elk-9.6.8/tests/test_031/TEST_400.OUT_0000644002504400250440000000014114626155522020513 0ustar00dewhurstdewhurst00000000000000'calculated total charge' 2 1 0.100000000000E-05 1 4.00200332394 elk-9.6.8/tests/test_031/PaxHeaders/TEST_000.OUT_0000644000000000000000000000013214626155522015771 xustar0030 mtime=1717099346.324998992 30 atime=1717099346.324998992 30 ctime=1717099346.324998992 elk-9.6.8/tests/test_031/TEST_000.OUT_0000644002504400250440000000012614626155522020512 0ustar00dewhurstdewhurst00000000000000'total energy' 2 1 0.100000000000E-04 1 -7.62104575275 elk-9.6.8/tests/test_031/PaxHeaders/TEST_460.OUT_0000644000000000000000000000013214626155522016003 xustar0030 mtime=1717099346.326999003 30 atime=1717099346.326999003 30 ctime=1717099346.326999003 elk-9.6.8/tests/test_031/TEST_460.OUT_0000644002504400250440000000024714626155522020530 0ustar00dewhurstdewhurst00000000000000'total current of last time step' 2 3 0.500000000000E-03 1 0.144185097625E-01 2 0.173472347598E-17 3 -0.173472347598E-17 elk-9.6.8/tests/test_031/PaxHeaders/TEST_478.OUT_0000644000000000000000000000013214626155522016014 xustar0030 mtime=1717099346.328999014 30 atime=1717099346.327999009 30 ctime=1717099346.328999014 elk-9.6.8/tests/test_031/TEST_478.OUT_0000644002504400250440000002466214626155522020550 0ustar00dewhurstdewhurst00000000000000'dynamical Born effective charge' 3 200 0.100000000000E-01 1 1.31764940088 0.00000000000 2 1.25981204641 0.997813139510E-01 3 1.14456600484 0.997645834192E-01 4 1.08764597797 0.204796771093E-02 5 1.14338647167 -0.899196017942E-01 6 1.24472592064 -0.765696856626E-01 7 1.26575007196 0.299588710804E-01 8 1.15112550364 0.104722796491 9 0.987105405601 0.251917098219E-01 10 0.938063851924 -0.201690849727 11 1.09825211657 -0.424083087334 12 1.39366333457 -0.466341993463 13 1.63056646865 -0.283619208663 14 1.65588375128 -0.914723444457E-02 15 1.48915776475 0.154841225364 16 1.30558345262 0.110388610625 17 1.28090558308 -0.528052999734E-01 18 1.43478344492 -0.140937019406 19 1.61401977602 -0.340967499395E-01 20 1.63323014804 0.201088966411 21 1.44788402057 0.367951966210 22 1.20256149489 0.317670315851 23 1.10715024911 0.894364966018E-01 24 1.24868357490 -0.115695468363 25 1.50726277153 -0.108533832654 26 1.65469279918 0.118970851095 27 1.55258788743 0.380141525753 28 1.27675807830 0.451215337523 29 1.05742963336 0.264784872232 30 1.08536228124 -0.287926089893E-01 31 1.35053957547 -0.185146681114 32 1.65066156206 -0.677491644903E-01 33 1.75873114687 0.244181716444 34 1.60383423906 0.528794249753 35 1.31395399207 0.605727616622 36 1.09443835445 0.470937876876 37 1.05677268920 0.274024432593 38 1.14607497075 0.172127946070 39 1.21856232447 0.197708088085 40 1.18524108513 0.253297635844 41 1.08711147468 0.224001606801 42 1.04047631483 0.935299358175E-01 43 1.11464614117 -0.444459316342E-01 44 1.26268870462 -0.828943711935E-01 45 1.36872607425 -0.745260915918E-02 46 1.36141411385 0.908613790450E-01 47 1.28177241460 0.105806787477 48 1.24061261337 0.193136480487E-01 49 1.30863169556 -0.823993103191E-01 50 1.44665636026 -0.946768348127E-01 51 1.54364992543 0.188094392789E-02 52 1.52534028026 0.120927727365 53 1.42778006305 0.153390425623 54 1.36372404716 0.738286766158E-01 55 1.41328273562 -0.334659810440E-01 56 1.54441060961 -0.555301853576E-01 57 1.64160712424 0.379508297952E-01 58 1.61764685204 0.161031430612 59 1.50189768349 0.190770268461 60 1.41856963451 0.861271795402E-01 61 1.47205621805 -0.671288392060E-01 62 1.64639068917 -0.131211039924 63 1.81523113598 -0.431298975531E-01 64 1.85573585910 0.125389116004 65 1.76085383031 0.232648388013 66 1.64442593883 0.196875879179 67 1.63391235678 0.694098798472E-01 68 1.75215699613 -0.176703609923E-01 69 1.90038516177 0.210533867251E-01 70 1.95783658869 0.144432746715 71 1.90079309243 0.229317631048 72 1.82426783915 0.195590394205 73 1.84425777704 0.878021241359E-01 74 1.97713854468 0.303656728992E-01 75 2.11875974175 0.982472136558E-01 76 2.14943988322 0.232971830031 77 2.06309910049 0.294441160380 78 1.98662729631 0.204718781907 79 2.05866114822 0.403509676287E-01 80 2.28116701044 -0.306146859098E-01 81 2.49893802445 0.805610872505E-01 82 2.54781429200 0.272010931335 83 2.44089163553 0.328963154928 84 2.40089333377 0.143045294028 85 2.67305748820 -0.129437209936 86 3.26564517598 -0.147148757888 87 3.86480504307 0.328868779316 88 4.04235090210 1.18053505504 89 3.61147583240 1.96011573488 90 2.82206317644 2.21947684762 91 2.19390655548 1.88041084789 92 2.09708867916 1.31298122386 93 2.43688022951 1.01960716709 94 2.74514192353 1.17764412268 95 2.63560887892 1.45581901494 96 2.23206693853 1.31445776147 97 2.14978681186 0.570487324627 98 2.96956505050 -0.275953422536 99 4.61113729429 -0.315055176328 100 6.17639012725 1.03220219521 101 6.50400708178 3.38893573613 102 5.08386784112 5.49139547714 103 2.60925141026 6.02005225772 104 0.645155088099 4.62277116409 105 0.555534588225 2.32412140101 106 2.45153904446 0.919490843843 107 4.98192867358 1.72175086780 108 6.19466342735 4.56470579435 109 4.88870187561 7.82669263414 110 1.47783391391 9.49782392092 111 -2.27100540545 8.53397678084 112 -4.43343888418 5.52376795623 113 -4.18311034134 2.21105358395 114 -2.21622631354 0.264014090110 115 -0.101523108410 0.210183029399 116 0.891808318735 1.27631381213 117 0.599982308048 2.15402486006 118 -0.133192913039 2.03268564145 119 -0.272985830277 1.11239876917 120 0.569754766653 0.285302634820 121 1.91328798130 0.335417550380 122 2.88050321024 1.32937359273 123 2.91745506038 2.63908982774 124 2.16965493626 3.49323969907 125 1.27483992983 3.55875909490 126 0.819024966813 3.10037411177 127 0.929902179223 2.66313846048 128 1.29990238896 2.60808996729 129 1.54071539743 2.89544851631 130 1.51751088471 3.24366684465 131 1.38486035736 3.45913250596 132 1.34307449272 3.61663882542 133 1.37577714740 3.94334257583 134 1.21895401611 4.53790056243 135 0.586697482364 5.19309171714 136 -0.546697034163 5.48519664459 137 -1.84669409702 5.06154271446 138 -2.78104566759 3.90355388016 139 -2.92372083873 2.37796454324 140 -2.19516941472 1.05536641110 141 -0.904981841750 0.424299405268 142 0.400445607422 0.662177093621 143 1.19046374313 1.55962268310 144 1.19295130967 2.61379132936 145 0.537120061213 3.25657051917 146 -0.276076613620 3.14619023319 147 -0.610878449752 2.39839432224 148 -0.770985973277E-01 1.59984083548 149 1.14493785293 1.51222760713 150 2.28876119891 2.56694266881 151 2.41180892216 4.45862430755 152 1.04763851211 6.17984980334 153 -1.33748680427 6.59225187384 154 -3.48584566728 5.22375244125 155 -4.10846963280 2.72483811171 156 -2.79721427918 0.567470399123 157 -0.414567868243 0.916568181920E-01 158 1.41202545838 1.53450163505 159 1.41752331304 3.78039932330 160 -0.343143523327 5.10170264117 161 -2.45327339101 4.42134099898 162 -3.11934836853 2.18194875379 163 -1.51568327046 0.131963121413 164 1.49967673232 0.115067529292 165 3.86970916892 2.70757202075 166 3.72361495652 6.70155727774 167 0.685345696624 9.83787342917 168 -3.83275861372 10.2844679022 169 -7.55485669323 7.81477400264 170 -8.81079015812 3.87366090538 171 -7.51184787617 0.539027212732 172 -5.00116822727 -0.831892448719 173 -2.98734920402 -0.318066129507 174 -2.39783274600 0.903197091989 175 -2.95416411529 1.57066873918 176 -3.65546724962 1.21687059479 177 -3.67435599046 0.306560220513 178 -2.94047619648 -0.335023262285 179 -2.03261826230 -0.249930973849 180 -1.58621571829 0.352850905260 181 -1.76473759660 0.884394119044 182 -2.20496906312 0.920251296107 183 -2.40146528292 0.519133074820 184 -2.14374102527 0.917409250292E-01 185 -1.63574578988 0.111435817502E-02 186 -1.24909635905 0.272798528106 187 -1.17965441157 0.643277780397 188 -1.32102806258 0.849554668409 189 -1.43336825012 0.863842381808 190 -1.40921409799 0.865254147880 191 -1.37071344761 1.00721497254 192 -1.51611558815 1.22766364302 193 -1.88059213921 1.29269097591 194 -2.25481084391 1.03046790391 195 -2.34936427116 0.526931792126 196 -2.05671237079 0.888253043009E-01 197 -1.56642959420 -0.337247510998E-02 198 -1.22083531852 0.266277768618 199 -1.23355026920 0.634295031638 200 -1.51777209787 0.781783351883 elk-9.6.8/tests/PaxHeaders/test.sh0000644000000000000000000000013014626155522014052 xustar0029 mtime=1717099346.33199903 30 atime=1717099346.330999025 29 ctime=1717099346.33199903 elk-9.6.8/tests/test.sh0000755002504400250440000000064414626155522016605 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.* OMP_NUM_THREADS=8 OMP_STACKSIZE=20M ../../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-9.6.8/tests/PaxHeaders/test_0330000644000000000000000000000013014626155522014026 xustar0029 mtime=1717099346.35599916 30 atime=1717099346.332999036 29 ctime=1717099346.35599916 elk-9.6.8/tests/test_033/0000755002504400250440000000000014626155522016627 5ustar00dewhurstdewhurst00000000000000elk-9.6.8/tests/test_033/PaxHeaders/elk.in0000644000000000000000000000013214626155522015210 xustar0030 mtime=1717099346.335999052 30 atime=1717099346.335999052 30 ctime=1717099346.335999052 elk-9.6.8/tests/test_033/elk.in0000644002504400250440000000165514626155522017741 0ustar00dewhurstdewhurst00000000000000 ! Test of the piezoelectric tensor of hexagonal boron nitride. tasks 0 380 500 test .true. ngridk 4 4 4 avec 2.371605000 4.107740355 0.000000000 4.743210000 0.000000000 0.000000000 0.000000000 0.000000000 12.64227000 sppath '../../species/' atoms 2 : nspecies 'B.in' : spfname 2 : natoms; atposl, bfcmt below 0.66666667 0.66666667 0.25000000 0.00000000 0.00000000 0.00000000 0.33333333 0.33333333 0.75000000 0.00000000 0.00000000 0.00000000 'N.in' : spfname 2 : natoms; atposl, bfcmt below 0.66666667 0.66666667 0.75000000 0.00000000 0.00000000 0.00000000 0.33333333 0.33333333 0.25000000 0.00000000 0.00000000 0.00000000 elk-9.6.8/tests/test_033/PaxHeaders/TEST_705.OUT_0000644000000000000000000000013214626155522016007 xustar0030 mtime=1717099346.337999063 30 atime=1717099346.337999063 30 ctime=1717099346.337999063 elk-9.6.8/tests/test_033/TEST_705.OUT_0000644002504400250440000000010114626155522020521 0ustar00dewhurstdewhurst00000000000000'number of crystal symmetries' 1 1 1 24 elk-9.6.8/tests/test_033/PaxHeaders/TEST_900.OUT_0000644000000000000000000000013214626155522016004 xustar0030 mtime=1717099346.340999079 30 atime=1717099346.340999079 30 ctime=1717099346.340999079 elk-9.6.8/tests/test_033/TEST_900.OUT_0000644002504400250440000000007014626155522020523 0ustar00dewhurstdewhurst00000000000000'number of G-vectors' 1 1 1 7159 elk-9.6.8/tests/test_033/PaxHeaders/TEST_910.OUT_0000644000000000000000000000013114626155522016004 xustar0030 mtime=1717099346.343999095 29 atime=1717099346.34299909 30 ctime=1717099346.343999095 elk-9.6.8/tests/test_033/TEST_910.OUT_0000644002504400250440000000652314626155522020535 0ustar00dewhurstdewhurst00000000000000'k-points (Cartesian)' 2 108 0.100000000000E-07 1 0.00000000000 2 0.00000000000 3 0.00000000000 4 0.00000000000 5 0.382147504865 6 0.00000000000 7 0.00000000000 8 0.764295009731 9 0.00000000000 10 0.330949447167 11 0.573221257298 12 0.00000000000 13 0.00000000000 14 0.00000000000 15 0.310681460208E-01 16 0.00000000000 17 0.382147504865 18 0.310681460208E-01 19 0.00000000000 20 0.764295009731 21 0.310681460208E-01 22 0.330949447167 23 0.573221257298 24 0.310681460208E-01 25 0.00000000000 26 0.00000000000 27 0.621362920417E-01 28 0.00000000000 29 0.382147504865 30 0.621362920417E-01 31 0.00000000000 32 0.764295009731 33 0.621362920417E-01 34 0.330949447167 35 0.573221257298 36 0.621362920417E-01 37 0.00000000000 38 0.00000000000 39 0.932044380625E-01 40 0.00000000000 41 0.382147504865 42 0.932044380625E-01 43 0.00000000000 44 0.764295009731 45 0.932044380625E-01 46 0.330949447167 47 0.573221257298 48 0.932044380625E-01 49 0.00000000000 50 0.00000000000 51 0.124272584083 52 0.00000000000 53 0.382147504865 54 0.124272584083 55 0.00000000000 56 0.764295009731 57 0.124272584083 58 0.330949447167 59 0.573221257298 60 0.124272584083 61 0.00000000000 62 0.00000000000 63 0.155340730104 64 0.00000000000 65 0.382147504865 66 0.155340730104 67 0.00000000000 68 0.764295009731 69 0.155340730104 70 0.330949447167 71 0.573221257298 72 0.155340730104 73 0.00000000000 74 0.00000000000 75 0.186408876125 76 0.00000000000 77 0.382147504865 78 0.186408876125 79 0.00000000000 80 0.764295009731 81 0.186408876125 82 0.330949447167 83 0.573221257298 84 0.186408876125 85 0.00000000000 86 0.00000000000 87 0.217477022146 88 0.00000000000 89 0.382147504865 90 0.217477022146 91 0.00000000000 92 0.764295009731 93 0.217477022146 94 0.330949447167 95 0.573221257298 96 0.217477022146 97 0.00000000000 98 0.00000000000 99 0.248545168167 100 0.00000000000 101 0.382147504865 102 0.248545168167 103 0.00000000000 104 0.764295009731 105 0.248545168167 106 0.330949447167 107 0.573221257298 108 0.248545168167 elk-9.6.8/tests/test_033/PaxHeaders/TEST_500.OUT_0000644000000000000000000000013214626155522016000 xustar0030 mtime=1717099346.345999106 30 atime=1717099346.345999106 30 ctime=1717099346.345999106 elk-9.6.8/tests/test_033/TEST_500.OUT_0000644002504400250440000000013514626155522020521 0ustar00dewhurstdewhurst00000000000000'DOS at Fermi energy' 2 1 0.500000000000E-02 1 0.167359315056E-11 elk-9.6.8/tests/test_033/PaxHeaders/TEST_510.OUT_0000644000000000000000000000013214626155522016001 xustar0030 mtime=1717099346.348999122 30 atime=1717099346.348999122 30 ctime=1717099346.348999122 elk-9.6.8/tests/test_033/TEST_510.OUT_0000644002504400250440000000014514626155522020523 0ustar00dewhurstdewhurst00000000000000'estimated indirect band gap' 2 1 0.200000000000E-01 1 0.166158032563 elk-9.6.8/tests/test_033/PaxHeaders/TEST_400.OUT_0000644000000000000000000000013214626155522015777 xustar0030 mtime=1717099346.351999138 30 atime=1717099346.350999133 30 ctime=1717099346.351999138 elk-9.6.8/tests/test_033/TEST_400.OUT_0000644002504400250440000000014114626155522020515 0ustar00dewhurstdewhurst00000000000000'calculated total charge' 2 1 0.100000000000E-05 1 23.9897071715 elk-9.6.8/tests/test_033/PaxHeaders/TEST_000.OUT_0000644000000000000000000000013214626155522015773 xustar0030 mtime=1717099346.353999149 30 atime=1717099346.353999149 30 ctime=1717099346.353999149 elk-9.6.8/tests/test_033/TEST_000.OUT_0000644002504400250440000000012614626155522020514 0ustar00dewhurstdewhurst00000000000000'total energy' 2 1 0.100000000000E-04 1 -158.225751814 elk-9.6.8/tests/test_033/PaxHeaders/TEST_380.OUT_0000644000000000000000000000013214626155522016006 xustar0030 mtime=1717099346.356999165 30 atime=1717099346.356999165 30 ctime=1717099346.356999165 elk-9.6.8/tests/test_033/TEST_380.OUT_0000644002504400250440000000037114626155522020531 0ustar00dewhurstdewhurst00000000000000'Piezoelectric tensor' 2 6 0.100000000000E-04 1 0.589948916942E-04 2 -0.275692642566E-06 3 -0.690166230079E-09 4 0.118150787759E-03 5 -0.399330599143E-06 6 -0.125067891554E-07 elk-9.6.8/tests/PaxHeaders/test-mpi.sh0000644000000000000000000000013214626155522014637 xustar0030 mtime=1717099346.358999176 30 atime=1717099346.358999176 30 ctime=1717099346.358999176 elk-9.6.8/tests/test-mpi.sh0000755002504400250440000000066014626155522017366 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.* OMP_NUM_THREADS=2 OMP_STACKSIZE=64M mpirun -n 4 ../../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-9.6.8/tests/PaxHeaders/test_0040000644000000000000000000000013214626155522014026 xustar0030 mtime=1717099346.384999316 30 atime=1717099346.359999181 30 ctime=1717099346.384999316 elk-9.6.8/tests/test_004/0000755002504400250440000000000014626155522016625 5ustar00dewhurstdewhurst00000000000000elk-9.6.8/tests/test_004/PaxHeaders/TEST_187.OUT_0000644000000000000000000000013214626155522016011 xustar0030 mtime=1717099346.362999197 30 atime=1717099346.361999192 30 ctime=1717099346.362999197 elk-9.6.8/tests/test_004/TEST_187.OUT_0000644002504400250440000012274314626155522020544 0ustar00dewhurstdewhurst00000000000000'BSE optical conductivity' 3 800 0.100000000000E-02 1 0.301479005069E-03 0.00000000000 2 -0.206060929572E-05 0.00000000000 3 -0.115610458723E-05 0.00000000000 4 -0.206061304204E-05 0.00000000000 5 0.301473411738E-03 0.00000000000 6 -0.824932057917E-06 0.00000000000 7 -0.115610315779E-05 0.00000000000 8 -0.824929750711E-06 0.00000000000 9 0.303146578429E-03 0.00000000000 10 0.301490408649E-03 -0.113035775973E-03 11 -0.206076890673E-05 0.772464350151E-06 12 -0.115624141211E-05 0.433313117920E-06 13 -0.206077212699E-05 0.772467159285E-06 14 0.301484806524E-03 -0.113033693015E-03 15 -0.825053224385E-06 0.309149366913E-06 16 -0.115624018330E-05 0.433312046131E-06 17 -0.825051241011E-06 0.309147636998E-06 18 0.303158013812E-03 -0.113661063416E-03 19 0.301524622750E-03 -0.226080099076E-03 20 -0.206124780700E-05 0.154504809959E-05 21 -0.115665195019E-05 0.866728825041E-06 22 -0.206124944882E-05 0.154505371928E-05 23 0.301518994235E-03 -0.226075926574E-03 24 -0.825416782245E-06 0.618389633843E-06 25 -0.115665132344E-05 0.866726680770E-06 26 -0.825415770580E-06 0.618386172865E-06 27 0.303192323324E-03 -0.227330697809E-03 28 0.301581657450E-03 -0.339141518957E-03 29 -0.206204619832E-05 0.231787069786E-05 30 -0.115733639192E-05 0.130034975812E-05 31 -0.206204520852E-05 0.231787913095E-05 32 0.301575984933E-03 -0.339135243733E-03 33 -0.826022906919E-06 0.927811744644E-06 34 -0.115733676902E-05 0.130034653997E-05 35 -0.826023515484E-06 0.927806550309E-06 36 0.303249517055E-03 -0.341017476675E-03 37 0.301661529557E-03 -0.452228590295E-03 38 -0.206316441722E-05 0.309105169501E-05 39 -0.115829505484E-05 0.173427864904E-05 40 -0.206315974128E-05 0.309106294577E-05 41 0.301655795399E-03 -0.452220192573E-03 42 -0.826871890946E-06 0.123750673089E-05 43 -0.115829683825E-05 0.173427435494E-05 44 -0.826874769338E-06 0.123749979975E-05 45 0.303329611831E-03 -0.454729978548E-03 46 0.301764262619E-03 -0.565349875324E-03 47 -0.206460293522E-05 0.386471079200E-05 48 -0.115952838393E-05 0.216861837252E-05 49 -0.206459351677E-05 0.386472486612E-05 50 0.301758449139E-03 -0.565339328714E-03 51 -0.827964144244E-06 0.154756575581E-05 52 -0.115953197701E-05 0.216861299970E-05 53 -0.827969943562E-06 0.154755708328E-05 54 0.303432631222E-03 -0.568476789522E-03 55 0.301889886936E-03 -0.678513946357E-03 56 -0.206636235924E-05 0.463896789116E-05 57 -0.116103695197E-05 0.260347199390E-05 58 -0.206634713949E-05 0.463898479578E-05 59 0.301883976404E-03 -0.678501217841E-03 60 -0.829300194465E-06 0.185808015839E-05 61 -0.116104275925E-05 0.260346553886E-05 62 -0.829309567746E-06 0.185806973871E-05 63 0.303558605562E-03 -0.682266505784E-03 64 0.302038439585E-03 -0.791729388318E-03 65 -0.206844343210E-05 0.541394314690E-05 66 -0.116282146002E-05 0.303894281707E-05 67 -0.206842134935E-05 0.541396289059E-05 68 0.302032414207E-03 -0.791714438229E-03 69 -0.830880687464E-06 0.216914149757E-05 70 -0.116282988746E-05 0.303893527565E-05 71 -0.830894290114E-06 0.216912932383E-05 72 0.303707571966E-03 -0.796107736145E-03 73 0.302209964443E-03 -0.905004801289E-03 74 -0.207084703316E-05 0.618975701654E-05 75 -0.116488273802E-05 0.347513443270E-05 76 -0.207081702222E-05 0.618977960931E-05 77 0.302203806353E-03 -0.904987583282E-03 78 -0.832706387863E-06 0.248084159666E-05 79 -0.116489419330E-05 0.347512580002E-05 80 -0.832724878094E-06 0.248082766079E-05 81 0.303879574355E-03 -0.910009104585E-03 82 0.302404512218E-03 -0.101834880305E-02 83 -0.207357417907E-05 0.696653031146E-05 84 -0.116722174559E-05 0.391215076662E-05 85 -0.207353517072E-05 0.696655576478E-05 86 0.302398203462E-03 -0.101832926408E-02 87 -0.834778179733E-06 0.279327258801E-05 88 -0.116723663831E-05 0.391214103708E-05 89 -0.834802218997E-06 0.279325688076E-05 90 0.304074663491E-03 -0.102397925281E-02 91 0.302622140482E-03 -0.113177003166E-02 92 -0.207662602460E-05 0.774438424853E-05 93 -0.116983957275E-05 0.435009612852E-05 94 -0.207657694505E-05 0.774441257533E-05 95 0.302615663011E-03 -0.113174811193E-02 96 -0.837097067366E-06 0.310652695792E-05 97 -0.116985831476E-05 0.435008529582E-05 98 -0.837127320798E-06 0.310650946887E-05 99 0.304292897006E-03 -0.113802684281E-02 100 0.302862913710E-03 -0.124527714801E-02 101 -0.208000386361E-05 0.852344050188E-05 102 -0.117273744097E-05 0.478907526104E-05 103 -0.207994363398E-05 0.852347171657E-05 104 0.302856249364E-03 -0.124525278096E-02 105 -0.839664176170E-06 0.342069759188E-05 106 -0.117276044661E-05 0.478906331817E-05 107 -0.839701313028E-06 0.342067830941E-05 108 0.304534339440E-03 -0.125216055945E-02 109 0.303126903327E-03 -0.135887883845E-02 110 -0.208370913020E-05 0.930382125504E-05 111 -0.117591670417E-05 0.522919338914E-05 112 -0.208363666592E-05 0.930385537352E-05 113 0.303120033827E-03 -0.135885195068E-02 114 -0.842480753662E-06 0.373587782014E-05 115 -0.117594439054E-05 0.522918032835E-05 116 -0.842525447775E-06 0.373585673145E-05 117 0.304799062293E-03 -0.136638911306E-02 118 0.303414187753E-03 -0.147258381735E-02 119 -0.208774339985E-05 0.100856492535E-04 120 -0.117937884994E-05 0.567055626997E-05 121 -0.208765761012E-05 0.100856862932E-04 122 0.303407094685E-03 -0.147255432862E-02 123 -0.845548170578E-06 0.405216146371E-05 124 -0.117941163717E-05 0.567054208281E-05 125 -0.845601100791E-06 0.405213855479E-05 126 0.305087144064E-03 -0.148072124205E-02 127 0.303724852457E-03 -0.158640082978E-02 128 -0.209210839082E-05 0.108690478580E-04 129 -0.118312550084E-05 0.611327024318E-05 130 -0.209200817806E-05 0.108690878378E-04 131 0.303717517264E-03 -0.158636865290E-02 132 -0.848867922089E-06 0.436964288078E-05 133 -0.118316381237E-05 0.611325492044E-05 134 -0.848929772720E-06 0.436961813640E-05 135 0.305398670311E-03 -0.159516571552E-02 136 0.304058990018E-03 -0.170033865413E-02 137 -0.209680596558E-05 0.116541410977E-04 138 -0.118715841580E-05 0.655744228172E-05 139 -0.209669022484E-05 0.116541840380E-04 140 0.304051393984E-03 -0.170030369495E-02 141 -0.852441629136E-06 0.468841701358E-05 142 -0.118720267866E-05 0.655742581348E-05 143 -0.852513090430E-06 0.468839041730E-05 144 0.305733733708E-03 -0.170973133595E-02 145 0.304416700188E-03 -0.181440610480E-02 146 -0.210183813243E-05 0.124410537246E-04 147 -0.119147949171E-05 0.700318004323E-05 148 -0.210170575081E-05 0.124410996474E-04 149 0.304408824428E-03 -0.181436826212E-02 150 -0.856271039877E-06 0.500857943584E-05 151 -0.119153013677E-05 0.700316241879E-05 152 -0.856352808470E-06 0.500855096996E-05 153 0.306092434107E-03 -0.182442694187E-02 154 0.304798089957E-03 -0.192861203488E-02 155 -0.210720704716E-05 0.132299112685E-04 156 -0.119609076507E-05 0.745059192200E-05 157 -0.210705690327E-05 0.132299601973E-04 158 0.304789915403E-03 -0.192857120040E-02 159 -0.860358031254E-06 0.533022640073E-05 160 -0.119614822734E-05 0.745057312993E-05 161 -0.860450810636E-06 0.533019604632E-05 162 0.306474878608E-03 -0.193926141052E-02 163 0.305203273633E-03 -0.204296533887E-02 164 -0.211291501497E-05 0.140208400919E-04 165 -0.120099441377E-05 0.789978710161E-05 166 -0.211274597829E-05 0.140208920519E-04 167 0.305194781022E-03 -0.204292139713E-02 168 -0.864704610676E-06 0.565345488949E-05 169 -0.120105913270E-05 0.789976712971E-05 170 -0.864809111665E-06 0.565342262632E-05 171 0.306881181635E-03 -0.205424366062E-02 172 0.305632372916E-03 -0.215747495547E-02 173 -0.211896449242E-05 0.148139674466E-04 174 -0.120619275909E-05 0.835087560826E-05 175 -0.211877542271E-05 0.148140224646E-04 176 0.305623542775E-03 -0.215742778374E-02 177 -0.869312917831E-06 0.597836266060E-05 178 -0.120626517883E-05 0.835085444356E-05 179 -0.869429859049E-06 0.597832846720E-05 180 0.307311465009E-03 -0.216938265511E-02 181 0.306085516984E-03 -0.227214987034E-02 182 -0.212535808953E-05 0.156094215306E-04 183 -0.121168826769E-05 0.880396836482E-05 184 -0.212514783627E-05 0.156094796349E-04 185 0.306076329620E-03 -0.227209933855E-02 186 -0.874185226616E-06 0.630504829979E-05 187 -0.121176883740E-05 0.880394599358E-05 188 -0.874315334971E-06 0.630501215336E-05 189 0.307765858040E-03 -0.228468740393E-02 190 0.306562842583E-03 -0.238699911888E-02 191 -0.213209857209E-05 0.164073315456E-04 192 -0.121748355388E-05 0.925917724574E-05 193 -0.213186597381E-05 0.164073927662E-04 194 0.306553278068E-03 -0.238694508957E-02 195 -0.879323947198E-06 0.663361127071E-05 196 -0.121757272801E-05 0.925915365340E-05 197 -0.879467958377E-06 0.663357314714E-05 198 0.308244497610E-03 -0.240016696686E-02 199 0.307064494126E-03 -0.250203178917E-02 200 -0.213918886404E-05 0.172078277557E-04 201 -0.122358138192E-05 0.971661513273E-05 202 -0.213893274772E-05 0.172078921243E-04 203 0.307054532280E-03 -0.250197411736E-02 204 -0.884731628210E-06 0.696415196636E-05 205 -0.122367962051E-05 0.971659030396E-05 206 -0.884890287171E-06 0.696411184022E-05 207 0.308747528275E-03 -0.251583045634E-02 208 0.307590623786E-03 -0.261725702475E-02 209 -0.214663204999E-05 0.180110415469E-04 210 -0.122998466852E-05 0.101763959714E-04 211 -0.214635123044E-05 0.180111090971E-04 212 0.307580244169E-03 -0.261719555786E-02 213 -0.890410959072E-06 0.729677176152E-05 214 -0.123009243752E-05 0.101763698901E-04 215 -0.890585020549E-06 0.729672960600E-05 216 0.309275102362E-03 -0.263168704040E-02 217 0.308141391613E-03 -0.273268402764E-02 218 -0.215443137799E-05 0.188171054880E-04 219 -0.123669648550E-05 0.106386348289E-04 220 -0.215412465719E-05 0.188171762547E-04 221 0.308130573504E-03 -0.273261860538E-02 222 -0.896364772460E-06 0.763157306587E-05 223 -0.123681425705E-05 0.106386074780E-04 224 -0.896555001476E-06 0.763152885281E-05 225 0.309827380076E-03 -0.274774594555E-02 226 0.308716965639E-03 -0.284832206126E-02 227 -0.216259026233E-05 0.196261533913E-04 228 -0.124372006254E-05 0.111034479524E-04 229 -0.216225642878E-05 0.196262274115E-04 230 0.308705688028E-03 -0.284825251552E-02 231 -0.902596046912E-06 0.796865937823E-05 232 -0.124384831528E-05 0.111034193141E-04 233 -0.902803219292E-06 0.796861307806E-05 234 0.310404529615E-03 -0.286401645978E-02 235 0.309317522001E-03 -0.296418045343E-02 236 -0.217111228659E-05 0.204383203762E-04 237 -0.125105879013E-05 0.115709528289E-04 238 -0.217075011464E-05 0.204383976886E-04 239 0.309305763569E-03 -0.296410660820E-02 240 -0.909107909573E-06 0.830813534172E-05 241 -0.125119800956E-05 0.115709228845E-04 242 -0.909332812478E-06 0.830808692345E-05 243 0.311006727289E-03 -0.298050793556E-02 244 0.309943245069E-03 -0.308026859946E-02 245 -0.218000120680E-05 0.212537429323E-04 246 -0.125871622269E-05 0.120412682459E-04 247 -0.217960945598E-05 0.212538235774E-04 248 0.309930984175E-03 -0.308019027069E-02 249 -0.915903639104E-06 0.865010679998E-05 250 -0.125886690143E-05 0.120412369759E-04 251 -0.916147071562E-06 0.865005623117E-05 252 0.311634157646E-03 -0.309722979290E-02 253 0.310594327570E-03 -0.319659596526E-02 254 -0.218926095480E-05 0.220725589846E-04 255 -0.126669608181E-05 0.125145143535E-04 256 -0.218883836911E-05 0.220726430049E-04 257 0.310581542234E-03 -0.319651296071E-02 258 -0.922986668732E-06 0.899468085454E-05 259 -0.126685871998E-05 0.125144817375E-04 260 -0.923249442184E-06 0.899462810130E-05 261 0.312287013601E-03 -0.321419152246E-02 262 0.311270970736E-03 -0.331317209044E-02 263 -0.219889564174E-05 0.228949079602E-04 264 -0.127500225971E-05 0.129908127274E-04 265 -0.219844094898E-05 0.228949953998E-04 266 0.311257638625E-03 -0.331308420959E-02 267 -0.930360589466E-06 0.934196592333E-05 268 -0.127517736523E-05 0.129907787441E-04 269 -0.930643528325E-06 0.934191095025E-05 270 0.312965496578E-03 -0.333140268871E-02 271 0.311973384442E-03 -0.343000659157E-02 272 -0.220890956181E-05 0.237209308551E-04 273 -0.128363882284E-05 0.134702864340E-04 274 -0.220842147283E-05 0.237210217604E-04 275 0.311959482850E-03 -0.342991362548E-02 276 -0.938029153475E-06 0.969207180040E-05 277 -0.128382691176E-05 0.134702510612E-04 278 -0.938333095685E-06 0.969201457056E-05 279 0.313669816653E-03 -0.344887293315E-02 280 0.312701787362E-03 -0.354710916545E-02 281 -0.221930719612E-05 0.245507703042E-04 282 -0.129261001566E-05 0.139530600956E-04 283 -0.221878440410E-05 0.245508647234E-04 284 0.312687293198E-03 -0.354701089660E-02 285 -0.945996277634E-06 0.100451097171E-04 286 -0.129281161254E-05 0.139530233101E-04 287 -0.946322075249E-06 0.100450501920E-04 288 0.314400192708E-03 -0.356661197753E-02 289 0.313456407128E-03 -0.366448959239E-02 290 -0.223009321675E-05 0.253845706510E-04 291 -0.130192026463E-05 0.144392599585E-04 292 -0.222953439645E-05 0.253846686344E-04 293 0.313441296894E-03 -0.366438579453E-02 294 -0.954266047244E-06 0.104011924042E-04 295 -0.130213590286E-05 0.144392217362E-04 296 -0.954614567016E-06 0.104011305438E-04 297 0.315156852588E-03 -0.368462962726E-02 298 0.314237480496E-03 -0.378215773961E-02 299 -0.224127249105E-05 0.262224780205E-04 300 -0.131157418238E-05 0.149290139613E-04 301 -0.224067629803E-05 0.262225796202E-04 302 0.314221730272E-03 -0.378204817764E-02 303 -0.962842719938E-06 0.107604341561E-04 304 -0.131180440453E-05 0.149289742773E-04 305 -0.963214843914E-06 0.107603699187E-04 306 0.315940033272E-03 -0.380293577471E-02 307 0.315045253521E-03 -0.390012356472E-02 308 -0.225285008608E-05 0.270646403920E-04 309 -0.132157657207E-05 0.154224518060E-04 310 -0.225221515595E-05 0.270647456626E-04 311 0.315028838946E-03 -0.390000799448E-02 312 -0.971730729767E-06 0.111229508958E-04 313 -0.132182193029E-05 0.154224106341E-04 314 -0.972127355901E-06 0.111228842382E-04 315 0.316749981045E-03 -0.392154040272E-02 316 0.315879981741E-03 -0.401839711918E-02 317 -0.226483127336E-05 0.279112076754E-04 318 -0.133193243197E-05 0.159197050296E-04 319 -0.226415622095E-05 0.279113166735E-04 320 0.315862877993E-03 -0.401827528731E-02 321 -0.980934691483E-06 0.114888602423E-04 322 -0.133219348832E-05 0.159196623429E-04 323 -0.981356734256E-06 0.114887911194E-04 324 0.317586951677E-03 -0.404045358808E-02 325 0.316741930364E-03 -0.413698855192E-02 326 -0.227722153371E-05 0.287623317880E-04 327 -0.134264696024E-05 0.164209070786E-04 328 -0.227650495225E-05 0.287624445724E-04 329 0.316724112142E-03 -0.413686019570E-02 330 -0.990459405019E-06 0.118582815784E-04 331 -0.134292428711E-05 0.164208628490E-04 332 -0.990907796082E-06 0.118582099434E-04 333 0.318451210622E-03 -0.415968550513E-02 334 0.317631374470E-03 -0.425590811300E-02 335 -0.229002656239E-05 0.296181667336E-04 336 -0.135372555998E-05 0.169261933843E-04 337 -0.228926702270E-05 0.296182833653E-04 338 0.317612815975E-03 -0.425577296013E-02 339 -0.100030986018E-05 0.122313361215E-04 340 -0.135401974042E-05 0.169261475827E-04 341 -0.100078554900E-05 0.122312619261E-04 342 0.319343033207E-03 -0.427924642943E-02 343 0.318548599217E-03 -0.437516615730E-02 344 -0.230325227451E-05 0.304788686835E-04 345 -0.136517384439E-05 0.174357014407E-04 346 -0.230244832412E-05 0.304789892259E-04 347 0.318529274129E-03 -0.437502392573E-02 348 -0.101049124156E-05 0.126081469957E-04 349 -0.136548547257E-05 0.174356540371E-04 350 -0.101099519608E-05 0.126080701894E-04 351 0.320262704850E-03 -0.439914674148E-02 352 0.319493900058E-03 -0.449477314839E-02 353 -0.231690481057E-05 0.313445960597E-04 354 -0.137699764232E-05 0.179495708844E-04 355 -0.231605497285E-05 0.313447205787E-04 356 0.319473781518E-03 -0.449462354612E-02 357 -0.102100893363E-05 0.129888393052E-04 358 -0.137732732387E-05 0.179495218473E-04 359 -0.102154214098E-05 0.129887598360E-04 360 0.321210521266E-03 -0.451939693053E-02 361 0.320467582967E-03 -0.461473966238E-02 362 -0.233099054239E-05 0.322155096204E-04 363 -0.138920300397E-05 0.184679435757E-04 364 -0.233009331563E-05 0.322156381841E-04 365 0.320446643552E-03 -0.461458238725E-02 366 -0.103186852617E-05 0.133735402106E-04 367 -0.138955135644E-05 0.184678928729E-04 368 -0.103243199329E-05 0.133734580245E-04 369 0.322186788699E-03 -0.464000759850E-02 370 0.321469964673E-03 -0.473507639193E-02 371 -0.234551607917E-05 0.330917725467E-04 372 -0.140179620685E-05 0.189909636833E-04 373 -0.234456993566E-05 0.330919052259E-04 374 0.321448176375E-03 -0.473491113141E-02 375 -0.104307581977E-05 0.137623790070E-04 376 -0.140216386010E-05 0.189909112813E-04 377 -0.104367057422E-05 0.137622940480E-04 378 0.323191824157E-03 -0.476098946394E-02 379 0.322501372906E-03 -0.485579415028E-02 380 -0.236048827390E-05 0.339735505333E-04 381 -0.141478376205E-05 0.195187777702E-04 382 -0.235949165899E-05 0.339736874012E-04 383 0.322478707111E-03 -0.485562058125E-02 384 -0.105463683178E-05 0.141554872033E-04 385 -0.141517135869E-05 0.195187236344E-04 386 -0.105526392240E-05 0.141553994135E-04 387 0.324225955654E-03 -0.488235336612E-02 388 0.323562146654E-03 -0.497690387547E-02 389 -0.237591423005E-05 0.348610118800E-04 390 -0.142817242076E-05 0.200515348823E-04 391 -0.237486556119E-05 0.348611530126E-04 392 0.323538574114E-03 -0.497672166396E-02 393 -0.106655780236E-05 0.145529986054E-04 394 -0.142858061659E-05 0.200514789769E-04 395 -0.106721830002E-05 0.145529079250E-04 396 0.325289522470E-03 -0.500411026916E-02 397 0.324652636425E-03 -0.509841663454E-02 398 -0.239180130852E-05 0.357543275869E-04 399 -0.144196918106E-05 0.205893866398E-04 400 -0.239069897423E-05 0.357544730629E-04 401 0.324628127237E-03 -0.509822543555E-02 402 -0.107884520087E-05 0.149550494003E-04 403 -0.144239864554E-05 0.205893289275E-04 404 -0.107954019927E-05 0.149549557673E-04 405 0.326382875412E-03 -0.512627126637E-02 406 0.325773204529E-03 -0.522034362795E-02 407 -0.240815713493E-05 0.366536714516E-04 408 -0.145618129508E-05 0.211324873303E-04 409 -0.240699949377E-05 0.366538213524E-04 410 0.325747728106E-03 -0.522014308514E-02 411 -0.109150573254E-05 0.153617782434E-04 412 -0.145663271174E-05 0.211324277731E-04 413 -0.109223634897E-05 0.153616815936E-04 414 0.327506377092E-03 -0.524884758451E-02 415 0.326924225360E-03 -0.534269619401E-02 416 -0.242498960720E-05 0.375592201696E-04 417 -0.147081627636E-05 0.216809940063E-04 418 -0.242377498673E-05 0.375593745795E-04 419 0.326897750409E-03 -0.534248593945E-02 420 -0.110454634543E-05 0.157733263481E-04 421 -0.147129034332E-05 0.216809325645E-04 422 -0.110531372158E-05 0.157732266152E-04 423 0.328660402221E-03 -0.537185058837E-02 424 0.328106085704E-03 -0.546548581346E-02 425 -0.244230690346E-05 0.384711534371E-04 426 -0.148588190764E-05 0.222350665833E-04 427 -0.244103359916E-05 0.384713124434E-04 428 0.328078580195E-03 -0.546526546740E-02 429 -0.111797423768E-05 0.161898375778E-04 430 -0.148637933808E-05 0.222350032160E-04 431 -0.111877954045E-05 0.161897346934E-04 432 0.329845337900E-03 -0.549529178526E-02 433 0.329319185046E-03 -0.558872411420E-02 434 -0.246011749034E-05 0.393896540575E-04 435 -0.150138624895E-05 0.227948679429E-04 436 -0.245878376447E-05 0.393898177504E-04 437 0.329290616185E-03 -0.558849328474E-02 438 -0.113179686508E-05 0.166114585416E-04 439 -0.150190777158E-05 0.227948026079E-04 440 -0.113264128744E-05 0.166113524348E-04 441 0.331061583940E-03 -0.561918282975E-02 442 0.330563935895E-03 -0.571242287603E-02 443 -0.247843013160E-05 0.403149080502E-04 444 -0.151733764600E-05 0.233605640376E-04 445 -0.247703421206E-05 0.403150765232E-04 446 0.330534270097E-03 -0.571218115886E-02 447 -0.114602194900E-05 0.170383386915E-04 448 -0.151788400561E-05 0.233604966913E-04 449 -0.114690671088E-05 0.170382292892E-04 450 0.332309553184E-03 -0.574353552849E-02 451 0.331840764128E-03 -0.583659403568E-02 452 -0.249725389710E-05 0.412471047634E-04 453 -0.153374473905E-05 0.239323239999E-04 454 -0.249579397626E-05 0.412472781131E-04 455 0.331809966983E-03 -0.583634101377E-02 456 -0.116065748463E-05 0.174706304240E-04 457 -0.153431669700E-05 0.239322545973E-04 458 -0.116158383376E-05 0.174705176506E-04 459 0.333589671846E-03 -0.586836184513E-02 460 0.333150109335E-03 -0.596124969177E-02 461 -0.251659817223E-05 0.421864369902E-04 462 -0.155061647208E-05 0.245103202535E-04 463 -0.251507240568E-05 0.421866153165E-04 464 0.333118145581E-03 -0.596098493506E-02 465 -0.117571174962E-05 0.179084891839E-04 466 -0.155121480684E-05 0.245102487481E-04 467 -0.117668096248E-05 0.179083729613E-04 468 0.334902379863E-03 -0.599367390539E-02 469 0.334492425192E-03 -0.608640211012E-02 470 -0.253647266767E-05 0.431331010876E-04 471 -0.156796210234E-05 0.250947286292E-04 472 -0.253487917300E-05 0.431332844939E-04 473 0.334459258678E-03 -0.608612517517E-02 474 -0.119119331303E-05 0.183520735717E-04 475 -0.156858761004E-05 0.250946549732E-04 476 -0.119220669579E-05 0.183519538194E-04 477 0.336248131260E-03 -0.611948400225E-02 478 0.335868179837E-03 -0.621206372898E-02 479 -0.255688742967E-05 0.440872971005E-04 480 -0.158579121042E-05 0.256857284840E-04 481 -0.255522428514E-05 0.440874856935E-04 482 0.335833773495E-03 -0.621177415869E-02 483 -0.120711104475E-05 0.188015454547E-04 484 -0.158644470543E-05 0.256856526278E-04 485 -0.120816993422E-05 0.188014220894E-04 486 0.337627394537E-03 -0.624580460134E-02 487 0.337277856273E-03 -0.633824716460E-02 488 -0.257785285066E-05 0.450492288882E-04 489 -0.160411371068E-05 0.262835028236E-04 490 -0.257611809391E-05 0.450494227785E-04 491 0.337242172078E-03 -0.633794448779E-02 492 -0.122347412529E-05 0.192570700812E-04 493 -0.160479602613E-05 0.262834247164E-04 494 -0.122457988992E-05 0.192569430171E-04 495 0.339040653058E-03 -0.637264834635E-02 496 0.338721952775E-03 -0.646496521683E-02 497 -0.259937968045E-05 0.460191042561E-04 498 -0.162293986213E-05 0.268882384298E-04 499 -0.259757130707E-05 0.460193035578E-04 500 0.338684951713E-03 -0.646464894791E-02 501 -0.124029205601E-05 0.197188161988E-04 502 -0.162365185056E-05 0.268881580188E-04 503 -0.124144609691E-05 0.197186853472E-04 504 0.340488405471E-03 -0.650002806475E-02 505 0.340200983325E-03 -0.659223087489E-02 506 -0.262147903777E-05 0.469971350908E-04 507 -0.164228027984E-05 0.275001259911E-04 508 -0.261959499996E-05 0.469973399220E-04 509 0.340162625353E-03 -0.659190051349E-02 510 -0.125757466977E-05 0.201869561764E-04 511 -0.164302281378E-05 0.275000432222E-04 512 -0.125877842176E-05 0.201868214458E-04 513 0.341971166134E-03 -0.662795677351E-02 514 0.341715478055E-03 -0.672005732336E-02 515 -0.264416242250E-05 0.479835375002E-04 516 -0.166214594678E-05 0.281193602384E-04 517 -0.264220062752E-05 0.479837479829E-04 518 0.341675722063E-03 -0.671971235395E-02 519 -0.127533214211E-05 0.206616661308E-04 520 -0.166291991940E-05 0.281192750555E-04 521 -0.127658707479E-05 0.206615274267E-04 522 0.343489465562E-03 -0.675644768512E-02 523 0.343265983716E-03 -0.684845794833E-02 524 -0.266744172822E-05 0.489785319582E-04 525 -0.168254822628E-05 0.287461400847E-04 526 -0.266540003696E-05 0.489787482185E-04 527 0.343224787489E-03 -0.684809783976E-02 528 -0.129357500284E-05 0.211431260562E-04 529 -0.168335455198E-05 0.287460524302E-04 530 -0.129488262173E-05 0.211429832812E-04 531 0.345043850896E-03 -0.688551421367E-02 532 0.344853064162E-03 -0.697744634363E-02 533 -0.269132925553E-05 0.499823434534E-04 534 -0.170349887494E-05 0.293806687699E-04 535 -0.268920548088E-05 0.499825656217E-04 536 0.344810384334E-03 -0.697707054876E-02 537 -0.131231414824E-05 0.216315199600E-04 538 -0.170433849006E-05 0.293805785844E-04 539 -0.131367599590E-05 0.216313730135E-04 540 0.346634886382E-03 -0.701516998119E-02 541 0.346477300852E-03 -0.710703631738E-02 542 -0.271583772576E-05 0.509952016441E-04 543 -0.172501005613E-05 0.300231540105E-04 544 -0.271362963107E-05 0.509954298551E-04 545 0.346433092866E-03 -0.710664427263E-02 546 -0.133156085370E-05 0.221270360018E-04 547 -0.172588391960E-05 0.300230612327E-04 548 -0.133297851090E-05 0.221268847801E-04 549 0.348263153882E-03 -0.714542882415E-02 550 0.348139293379E-03 -0.723724189866E-02 551 -0.274098029542E-05 0.520173410176E-04 552 -0.174709435418E-05 0.306738081541E-04 553 -0.273868559280E-05 0.520175754105E-04 554 0.348093511440E-03 -0.723683302353E-02 555 -0.135132678701E-05 0.226298666381E-04 556 -0.174800344820E-05 0.306737127207E-04 557 -0.135280187396E-05 0.226297110341E-04 558 0.349929253392E-03 -0.727630480009E-02 559 0.349839660012E-03 -0.736807734438E-02 560 -0.276677057124E-05 0.530490010552E-04 561 -0.176976478902E-05 0.313328483395E-04 562 -0.276438691985E-05 0.530492417740E-04 563 0.349792257043E-03 -0.736765104103E-02 564 -0.137162402214E-05 0.231402087712E-04 565 -0.177071011984E-05 0.313327501855E-04 566 -0.137315819973E-05 0.231400486745E-04 567 0.351633803595E-03 -0.740781219457E-02 568 0.351579038271E-03 -0.749955714637E-02 569 -0.279322262586E-05 0.540904264034E-04 570 -0.179303483169E-05 0.320004966630E-04 571 -0.279074763013E-05 0.540906735968E-04 572 0.351529965860E-03 -0.749911279908E-02 573 -0.139246505378E-05 0.236582639043E-04 574 -0.179401743027E-05 0.320003957212E-04 575 -0.139406002486E-05 0.236580992010E-04 576 0.353377442424E-03 -0.753996552821E-02 577 0.353358085512E-03 -0.763169603869E-02 578 -0.282035101427E-05 0.551418670503E-04 579 -0.181691842034E-05 0.326769803494E-04 580 -0.281778222208E-05 0.551421208719E-04 581 0.353307293865E-03 -0.763123301339E-02 582 -0.141386281237E-05 0.241842383016E-04 583 -0.181793934315E-05 0.326768765507E-04 584 -0.141552032307E-05 0.241840688743E-04 585 0.355160827660E-03 -0.767277956403E-02 586 0.355177479553E-03 -0.776450900519E-02 587 -0.284817079090E-05 0.562035785086E-04 588 -0.184142997711E-05 0.333625319304E-04 589 -0.284550569168E-05 0.562038391175E-04 590 0.355124917440E-03 -0.776402664890E-02 591 -0.143583067990E-05 0.247183431546E-04 592 -0.184249030689E-05 0.333624252035E-04 593 -0.143755252104E-05 0.247181688819E-04 594 0.356984637543E-03 -0.780626931498E-02 595 0.357037919309E-03 -0.789801128723E-02 596 -0.287669752759E-05 0.572758220057E-04 597 -0.186658442566E-05 0.340573894283E-04 598 -0.287393355036E-05 0.572760895660E-04 599 0.356983534008E-03 -0.789750892753E-02 600 -0.145838250645E-05 0.252607947533E-04 601 -0.186768527223E-05 0.340572796997E-04 602 -0.146017051489E-05 0.252606155103E-04 603 0.358849571421E-03 -0.794045005168E-02 604 0.358940125466E-03 -0.803221839172E-02 605 -0.290594733228E-05 0.583588646797E-04 606 -0.189239720952E-05 0.347617965471E-04 607 -0.290308184361E-05 0.583591393611E-04 608 0.358883862709E-03 -0.803169533620E-02 609 -0.148153262739E-05 0.258118146654E-04 610 -0.189353971062E-05 0.347616837411E-04 611 -0.148338868750E-05 0.258116303231E-04 612 0.360756350416E-03 -0.807533731049E-02 613 0.360884841179E-03 -0.816714609939E-02 614 -0.293593686859E-05 0.594529797827E-04 615 -0.191888431136E-05 0.354760028706E-04 616 -0.293296717052E-05 0.594532617607E-04 617 0.360826645090E-03 -0.816660163503E-02 618 -0.150529588142E-05 0.263716299209E-04 619 -0.192006963345E-05 0.354758869093E-04 620 -0.150722192660E-05 0.263714403461E-04 621 0.362705718119E-03 -0.821094690172E-02 622 0.362872832797E-03 -0.830281047330E-02 623 -0.296668337625E-05 0.605584468923E-04 624 -0.194606227296E-05 0.362002640675E-04 625 -0.296360670409E-05 0.605587363482E-04 626 0.362812645829E-03 -0.830224386589E-02 627 -0.152968762943E-05 0.269404732035E-04 628 -0.194729161215E-05 0.362001448705E-04 629 -0.153168564364E-05 0.269402782591E-04 630 0.364698441323E-03 -0.834729491821E-02 631 0.364904890620E-03 -0.843922786770E-02 632 -0.299820469252E-05 0.616755521301E-04 633 -0.197394821629E-05 0.369348421042E-04 634 -0.299501821262E-05 0.616758492515E-04 635 0.364842653495E-03 -0.843863836116E-02 636 -0.155472377424E-05 0.275185830502E-04 637 -0.197522279920E-05 0.369347195888E-04 638 -0.155679579357E-05 0.275183825947E-04 639 0.366735310774E-03 -0.848439774413E-02 640 0.366981829692E-03 -0.857641493707E-02 641 -0.303051927456E-05 0.628045883884E-04 642 -0.200255986542E-05 0.376800054662E-04 643 -0.302722008197E-05 0.628048933691E-04 644 0.366917481330E-03 -0.857580175284E-02 645 -0.158042078118E-05 0.281062040576E-04 646 -0.200388095014E-05 0.376798795470E-04 647 -0.158256889554E-05 0.281059979448E-04 648 0.368817141966E-03 -0.862227206407E-02 649 0.369104490623E-03 -0.871438864558E-02 650 -0.306364622279E-05 0.639458555660E-04 651 -0.203191556953E-05 0.384360293868E-04 652 -0.306023133885E-05 0.639461686065E-04 653 0.369037968072E-03 -0.871375098189E-02 654 -0.160679569973E-05 0.287035870962E-04 655 -0.203328444653E-05 0.384358999758E-04 656 -0.160902205452E-05 0.287033751755E-04 657 0.370944775960E-03 -0.876093487244E-02 658 0.371273740445E-03 -0.885316627675E-02 659 -0.309760530545E-05 0.650996608124E-04 660 -0.206203432691E-05 0.392031960855E-04 661 -0.309407167528E-05 0.650999821200E-04 662 0.371204978811E-03 -0.885250330793E-02 663 -0.163386618608E-05 0.293109895330E-04 664 -0.206345232007E-05 0.392030630923E-04 665 -0.163617298394E-05 0.293107716490E-04 666 0.373119080244E-03 -0.890040348321E-02 667 0.373490473513E-03 -0.899276544352E-02 668 -0.313241698416E-05 0.662663187814E-04 669 -0.209293581015E-05 0.399817950155E-04 670 -0.312876147408E-05 0.662666485703E-04 671 0.373419405881E-03 -0.899207631928E-02 672 -0.166165052681E-05 0.299286754632E-04 673 -0.209440427774E-05 0.399816583467E-04 674 -0.166404002944E-05 0.299284514555E-04 675 0.375340949629E-03 -0.904069553994E-02 676 0.375755612434E-03 -0.913320409865E-02 677 -0.316810244078E-05 0.674461518944E-04 678 -0.212464039250E-05 0.407721231201E-04 679 -0.316432183559E-05 0.674464903863E-04 680 0.375682169789E-03 -0.913248794326E-02 681 -0.169016766362E-05 0.305569159501E-04 682 -0.212616072824E-05 0.407719826796E-04 683 -0.169264219365E-05 0.305566856533E-04 684 0.377611307180E-03 -0.918182902615E-02 685 0.378070109046E-03 -0.927450054543E-02 686 -0.320468360550E-05 0.686394906143E-04 687 -0.215716917543E-05 0.415744850999E-04 688 -0.320077460573E-05 0.686398380385E-04 689 0.377994220191E-03 -0.927375645696E-02 690 -0.171943721930E-05 0.311959892751E-04 691 -0.215874280956E-05 0.415743407886E-04 692 -0.172199916222E-05 0.311957525185E-04 693 0.379931105196E-03 -0.932382227610E-02 694 0.380434945432E-03 -0.941667344880E-02 695 -0.324218318626E-05 0.698466737299E-04 696 -0.219054401755E-05 0.423891936905E-04 697 -0.323814240522E-05 0.698470303235E-04 698 0.380356536899E-03 -0.941590049828E-02 699 -0.174947952486E-05 0.318461811973E-04 700 -0.219217241795E-05 0.423890454063E-04 701 -0.175213133103E-05 0.318459378049E-04 702 0.382301326218E-03 -0.946669398584E-02 703 0.382851134983E-03 -0.955974184685E-02 704 -0.328062469953E-05 0.710680486510E-04 705 -0.222478756488E-05 0.432165699504E-04 706 -0.327644866037E-05 0.710684146595E-04 707 0.382770130946E-03 -0.955893907740E-02 708 -0.178031564807E-05 0.325077852237E-04 709 -0.222647223820E-05 0.432164175881E-04 710 -0.178305983475E-05 0.325075350137E-04 711 0.384722984099E-03 -0.961046322478E-02 712 0.385319723508E-03 -0.970372516273E-02 713 -0.332003250266E-05 0.723039717163E-04 714 -0.225992328259E-05 0.440569435617E-04 715 -0.331571763520E-05 0.723043473934E-04 716 0.385236045687E-03 -0.970289158867E-02 717 -0.181196742321E-05 0.331811028901E-04 718 -0.226166577544E-05 0.440567870130E-04 719 -0.181480657674E-05 0.331808456750E-04 720 0.387197125108E-03 -0.975514944753E-02 721 0.387841790391E-03 -0.984864321699E-02 722 -0.336043182769E-05 0.735548085125E-04 723 -0.229597548825E-05 0.449106531419E-04 724 -0.335597446521E-05 0.735551941209E-04 725 0.387755357951E-03 -0.984777782288E-02 726 -0.184445748242E-05 0.338664440535E-04 727 -0.229777738841E-05 0.449104922950E-04 728 -0.184739426039E-05 0.338661796397E-04 729 0.389724829088E-03 -0.990077250628E-02 730 0.390418449800E-03 -0.999451624031E-02 731 -0.340184881685E-05 0.748209342069E-04 732 -0.233296938672E-05 0.457780465690E-04 733 -0.339724519272E-05 0.748213300186E-04 734 0.390329179252E-03 -0.999361798001E-02 735 -0.187780928849E-05 0.345641271962E-04 736 -0.233483232440E-05 0.457778813088E-04 737 -0.188084642204E-05 0.345638553840E-04 738 0.392307210664E-03 -0.100473526635E-01 739 0.393050851954E-03 -0.101413648868E-01 740 -0.344431055974E-05 0.761027338936E-04 741 -0.237093110673E-05 0.466594813197E-04 742 -0.343955680393E-05 0.761031401900E-04 743 0.392958657041E-03 -0.101404326824E-01 744 -0.191204716925E-05 0.352744797432E-04 745 -0.237285675586E-05 0.466593115276E-04 746 -0.191518746542E-05 0.352742003264E-04 747 0.394945420510E-03 -0.101949106053E-01 748 0.395740184438E-03 -0.102892102475E-01 749 -0.348784513243E-05 0.774006029537E-04 750 -0.240988773923E-05 0.475553248213E-04 751 -0.348293726787E-05 0.774010200260E-04 752 0.395644976029E-03 -0.102882429884E-01 753 -0.194719635369E-05 0.359978383915E-04 754 -0.241187781881E-05 0.475551503750E-04 755 -0.195044269787E-05 0.359975511573E-04 756 0.397640646664E-03 -0.103434674550E-01 757 0.398487673590E-03 -0.104380738650E-01 758 -0.353248163835E-05 0.787149474300E-04 759 -0.244986737771E-05 0.484659548191E-04 760 -0.352741557717E-05 0.787153755799E-04 761 0.398389359557E-03 -0.104370704067E-01 762 -0.198328300988E-05 0.367345494545E-04 763 -0.245192365317E-05 0.484657755926E-04 764 -0.198663836833E-05 0.367342541833E-04 765 0.400394115910E-03 -0.104930447874E-01 766 0.401294585940E-03 -0.105879777478E-01 767 -0.357825025132E-05 0.800461844180E-04 768 -0.249089916044E-05 0.493917597580E-04 769 -0.357302179094E-05 0.800466239579E-04 770 0.401193071036E-03 -0.105869369108E-01 771 -0.202033428470E-05 0.374849692201E-04 772 -0.249302344506E-05 0.493915756216E-04 773 -0.202380170717E-05 0.374846656850E-04 774 0.403207095224E-03 -0.106436646435E-01 775 0.404162229725E-03 -0.107389443858E-01 776 -0.362518226070E-05 0.813947424731E-04 777 -0.253301331486E-05 0.503331391816E-04 778 -0.361978707970E-05 0.813951937264E-04 779 0.404057415453E-03 -0.107378649543E-01 780 -0.205837834564E-05 0.382494643241E-04 781 -0.253520747128E-05 0.503329500013E-04 782 -0.206196096809E-05 0.382491522910E-04 783 0.406080893279E-03 -0.107953495459E-01 784 0.407091956464E-03 -0.108909967660E-01 785 -0.367331011874E-05 0.827610620345E-04 786 -0.257624120422E-05 0.512905041469E-04 787 -0.366774377268E-05 0.827615253362E-04 788 0.406983740944E-03 -0.108898774868E-01 789 -0.209744442471E-05 0.390284121399E-04 790 -0.257850714592E-05 0.512903097847E-04 791 -0.210114547210E-05 0.390280913668E-04 792 0.409016862025E-03 -0.109481225144E-01 793 0.410085162616E-03 -0.110441583893E-01 794 -0.372266749044E-05 0.841455958677E-04 795 -0.262061537658E-05 0.522642776577E-04 796 -0.371692540741E-05 0.841460715649E-04 797 0.409973440441E-03 -0.110429979705E-01 798 -0.213756286453E-05 0.398222011844E-04 799 -0.262295506944E-05 0.522640779714E-04 800 -0.214138565372E-05 0.398218714218E-04 elk-9.6.8/tests/test_004/PaxHeaders/TEST_121.OUT_0000644000000000000000000000013214626155522015775 xustar0030 mtime=1717099346.365999213 30 atime=1717099346.364999208 30 ctime=1717099346.365999213 elk-9.6.8/tests/test_004/TEST_121.OUT_0000644002504400250440000012273714626155522020533 0ustar00dewhurstdewhurst00000000000000'optical conductivity' 3 800 0.100000000000E-01 1 0.324753757193E-03 0.00000000000 2 0.324759260058E-03 -0.121773563136E-03 3 0.324775769455E-03 -0.243551252102E-03 4 0.324803287776E-03 -0.365337193327E-03 5 0.324841819015E-03 -0.487135514437E-03 6 0.324891368763E-03 -0.608950344850E-03 7 0.324951944210E-03 -0.730785816381E-03 8 0.325023554151E-03 -0.852646063841E-03 9 0.325106208988E-03 -0.974535225634E-03 10 0.325199920732E-03 -0.109645744437E-02 11 0.325304703008E-03 -0.121841686744E-02 12 0.325420571059E-03 -0.134041764768E-02 13 0.325547541756E-03 -0.146246394391E-02 14 0.325685633596E-03 -0.158455992159E-02 15 0.325834866715E-03 -0.170670975341E-02 16 0.325995262894E-03 -0.182891761993E-02 17 0.326166845563E-03 -0.195118771015E-02 18 0.326349639813E-03 -0.207352422218E-02 19 0.326543672404E-03 -0.219593136386E-02 20 0.326748971775E-03 -0.231841335332E-02 21 0.326965568052E-03 -0.244097441972E-02 22 0.327193493062E-03 -0.256361880378E-02 23 0.327432780340E-03 -0.268635075850E-02 24 0.327683465144E-03 -0.280917454973E-02 25 0.327945584471E-03 -0.293209445689E-02 26 0.328219177060E-03 -0.305511477358E-02 27 0.328504283418E-03 -0.317823980822E-02 28 0.328800945826E-03 -0.330147388477E-02 29 0.329109208358E-03 -0.342482134336E-02 30 0.329429116897E-03 -0.354828654096E-02 31 0.329760719149E-03 -0.367187385209E-02 32 0.330104064665E-03 -0.379558766947E-02 33 0.330459204854E-03 -0.391943240474E-02 34 0.330826193007E-03 -0.404341248917E-02 35 0.331205084311E-03 -0.416753237432E-02 36 0.331595935875E-03 -0.429179653282E-02 37 0.331998806746E-03 -0.441620945903E-02 38 0.332413757937E-03 -0.454077566982E-02 39 0.332840852443E-03 -0.466549970528E-02 40 0.333280155268E-03 -0.479038612949E-02 41 0.333731733451E-03 -0.491543953125E-02 42 0.334195656089E-03 -0.504066452486E-02 43 0.334671994363E-03 -0.516606575092E-02 44 0.335160821565E-03 -0.529164787708E-02 45 0.335662213130E-03 -0.541741559884E-02 46 0.336176246657E-03 -0.554337364038E-02 47 0.336703001947E-03 -0.566952675537E-02 48 0.337242561029E-03 -0.579587972777E-02 49 0.337795008194E-03 -0.592243737272E-02 50 0.338360430025E-03 -0.604920453736E-02 51 0.338938915435E-03 -0.617618610170E-02 52 0.339530555700E-03 -0.630338697950E-02 53 0.340135444493E-03 -0.643081211917E-02 54 0.340753677926E-03 -0.655846650468E-02 55 0.341385354584E-03 -0.668635515645E-02 56 0.342030575567E-03 -0.681448313232E-02 57 0.342689444530E-03 -0.694285552846E-02 58 0.343362067724E-03 -0.707147748040E-02 59 0.344048554043E-03 -0.720035416392E-02 60 0.344749015063E-03 -0.732949079613E-02 61 0.345463565095E-03 -0.745889263645E-02 62 0.346192321225E-03 -0.758856498762E-02 63 0.346935403368E-03 -0.771851319678E-02 64 0.347692934318E-03 -0.784874265656E-02 65 0.348465039795E-03 -0.797925880610E-02 66 0.349251848507E-03 -0.811006713220E-02 67 0.350053492195E-03 -0.824117317048E-02 68 0.350870105697E-03 -0.837258250644E-02 69 0.351701827005E-03 -0.850430077671E-02 70 0.352548797321E-03 -0.863633367021E-02 71 0.353411161124E-03 -0.876868692936E-02 72 0.354289066229E-03 -0.890136635134E-02 73 0.355182663860E-03 -0.903437778932E-02 74 0.356092108706E-03 -0.916772715378E-02 75 0.357017559003E-03 -0.930142041380E-02 76 0.357959176596E-03 -0.943546359842E-02 77 0.358917127018E-03 -0.956986279797E-02 78 0.359891579566E-03 -0.970462416551E-02 79 0.360882707377E-03 -0.983975391824E-02 80 0.361890687508E-03 -0.997525833892E-02 81 0.362915701023E-03 -0.101111437774E-01 82 0.363957933076E-03 -0.102474166521E-01 83 0.365017573000E-03 -0.103840834516E-01 84 0.366094814394E-03 -0.105211507362E-01 85 0.367189855226E-03 -0.106586251395E-01 86 0.368302897917E-03 -0.107965133700E-01 87 0.369434149453E-03 -0.109348222131E-01 88 0.370583821477E-03 -0.110735585324E-01 89 0.371752130401E-03 -0.112127292717E-01 90 0.372939297512E-03 -0.113523414568E-01 91 0.374145549087E-03 -0.114924021974E-01 92 0.375371116504E-03 -0.116329186886E-01 93 0.376616236366E-03 -0.117738982136E-01 94 0.377881150621E-03 -0.119153481447E-01 95 0.379166106692E-03 -0.120572759463E-01 96 0.380471357603E-03 -0.121996891762E-01 97 0.381797162119E-03 -0.123425954881E-01 98 0.383143784882E-03 -0.124860026338E-01 99 0.384511496557E-03 -0.126299184653E-01 100 0.385900573977E-03 -0.127743509371E-01 101 0.387311300300E-03 -0.129193081085E-01 102 0.388743965163E-03 -0.130647981462E-01 103 0.390198864848E-03 -0.132108293264E-01 104 0.391676302451E-03 -0.133574100377E-01 105 0.393176588050E-03 -0.135045487834E-01 106 0.394700038893E-03 -0.136522541844E-01 107 0.396246979575E-03 -0.138005349816E-01 108 0.397817742236E-03 -0.139494000390E-01 109 0.399412666756E-03 -0.140988583462E-01 110 0.401032100958E-03 -0.142489190219E-01 111 0.402676400824E-03 -0.143995913162E-01 112 0.404345930708E-03 -0.145508846143E-01 113 0.406041063565E-03 -0.147028084394E-01 114 0.407762181184E-03 -0.148553724559E-01 115 0.409509674430E-03 -0.150085864729E-01 116 0.411283943490E-03 -0.151624604477E-01 117 0.413085398138E-03 -0.153170044890E-01 118 0.414914457996E-03 -0.154722288609E-01 119 0.416771552814E-03 -0.156281439866E-01 120 0.418657122758E-03 -0.157847604518E-01 121 0.420571618701E-03 -0.159420890094E-01 122 0.422515502534E-03 -0.161001405829E-01 123 0.424489247484E-03 -0.162589262709E-01 124 0.426493338442E-03 -0.164184573514E-01 125 0.428528272305E-03 -0.165787452860E-01 126 0.430594558328E-03 -0.167398017248E-01 127 0.432692718494E-03 -0.169016385108E-01 128 0.434823287889E-03 -0.170642676850E-01 129 0.436986815102E-03 -0.172277014909E-01 130 0.439183862628E-03 -0.173919523804E-01 131 0.441415007295E-03 -0.175570330182E-01 132 0.443680840702E-03 -0.177229562879E-01 133 0.445981969679E-03 -0.178897352974E-01 134 0.448319016757E-03 -0.180573833844E-01 135 0.450692620661E-03 -0.182259141230E-01 136 0.453103436821E-03 -0.183953413291E-01 137 0.455552137905E-03 -0.185656790675E-01 138 0.458039414368E-03 -0.187369416578E-01 139 0.460565975024E-03 -0.189091436814E-01 140 0.463132547646E-03 -0.190822999887E-01 141 0.465739879583E-03 -0.192564257059E-01 142 0.468388738403E-03 -0.194315362428E-01 143 0.471079912566E-03 -0.196076473003E-01 144 0.473814212121E-03 -0.197847748783E-01 145 0.476592469431E-03 -0.199629352840E-01 146 0.479415539932E-03 -0.201421451404E-01 147 0.482284302915E-03 -0.203224213949E-01 148 0.485199662351E-03 -0.205037813286E-01 149 0.488162547747E-03 -0.206862425655E-01 150 0.491173915030E-03 -0.208698230824E-01 151 0.494234747485E-03 -0.210545412186E-01 152 0.497346056716E-03 -0.212404156869E-01 153 0.500508883662E-03 -0.214274655836E-01 154 0.503724299650E-03 -0.216157104002E-01 155 0.506993407498E-03 -0.218051700351E-01 156 0.510317342662E-03 -0.219958648048E-01 157 0.513697274441E-03 -0.221878154572E-01 158 0.517134407231E-03 -0.223810431838E-01 159 0.520629981834E-03 -0.225755696336E-01 160 0.524185276838E-03 -0.227714169266E-01 161 0.527801610044E-03 -0.229686076681E-01 162 0.531480339974E-03 -0.231671649641E-01 163 0.535222867439E-03 -0.233671124362E-01 164 0.539030637188E-03 -0.235684742382E-01 165 0.542905139633E-03 -0.237712750725E-01 166 0.546847912651E-03 -0.239755402076E-01 167 0.550860543486E-03 -0.241812954963E-01 168 0.554944670728E-03 -0.243885673943E-01 169 0.559101986405E-03 -0.245973829798E-01 170 0.563334238164E-03 -0.248077699737E-01 171 0.567643231572E-03 -0.250197567614E-01 172 0.572030832526E-03 -0.252333724140E-01 173 0.576498969791E-03 -0.254486467119E-01 174 0.581049637666E-03 -0.256656101685E-01 175 0.585684898784E-03 -0.258842940553E-01 176 0.590406887065E-03 -0.261047304277E-01 177 0.595217810824E-03 -0.263269521526E-01 178 0.600119956036E-03 -0.265509929362E-01 179 0.605115689789E-03 -0.267768873541E-01 180 0.610207463915E-03 -0.270046708819E-01 181 0.615397818824E-03 -0.272343799276E-01 182 0.620689387550E-03 -0.274660518655E-01 183 0.626084900017E-03 -0.276997250713E-01 184 0.631587187558E-03 -0.279354389593E-01 185 0.637199187679E-03 -0.281732340207E-01 186 0.642923949105E-03 -0.284131518645E-01 187 0.648764637115E-03 -0.286552352598E-01 188 0.654724539191E-03 -0.288995281802E-01 189 0.660807071008E-03 -0.291460758504E-01 190 0.667015782775E-03 -0.293949247952E-01 191 0.673354365968E-03 -0.296461228909E-01 192 0.679826660468E-03 -0.298997194191E-01 193 0.686436662151E-03 -0.301557651234E-01 194 0.693188530946E-03 -0.304143122688E-01 195 0.700086599410E-03 -0.306754147048E-01 196 0.707135381844E-03 -0.309391279308E-01 197 0.714339584017E-03 -0.312055091657E-01 198 0.721704113506E-03 -0.314746174212E-01 199 0.729234090746E-03 -0.317465135785E-01 200 0.736934860805E-03 -0.320212604701E-01 201 0.744812005972E-03 -0.322989229653E-01 202 0.752871359207E-03 -0.325795680608E-01 203 0.761119018534E-03 -0.328632649768E-01 204 0.769561362449E-03 -0.331500852581E-01 205 0.778205066432E-03 -0.334401028813E-01 206 0.787057120658E-03 -0.337333943685E-01 207 0.796124849010E-03 -0.340300389072E-01 208 0.805415929516E-03 -0.343301184785E-01 209 0.814938416318E-03 -0.346337179923E-01 210 0.824700763342E-03 -0.349409254308E-01 211 0.834711849792E-03 -0.352518320020E-01 212 0.844981007670E-03 -0.355665323019E-01 213 0.855518051490E-03 -0.358851244882E-01 214 0.866333310412E-03 -0.362077104644E-01 215 0.877437663025E-03 -0.365343960773E-01 216 0.888842575046E-03 -0.368652913268E-01 217 0.900560140232E-03 -0.372005105910E-01 218 0.912603124822E-03 -0.375401728663E-01 219 0.924985015895E-03 -0.378844020251E-01 220 0.937720074049E-03 -0.382333270916E-01 221 0.950823390868E-03 -0.385870825382E-01 222 0.964310951701E-03 -0.389458086033E-01 223 0.978199704354E-03 -0.393096516342E-01 224 0.992507634367E-03 -0.396787644551E-01 225 0.100725384762E-02 -0.400533067648E-01 226 0.102245866118E-02 -0.404334455659E-01 227 0.103814370330E-02 -0.408193556285E-01 228 0.105433202379E-02 -0.412112199927E-01 229 0.107104821600E-02 -0.416092305129E-01 230 0.108831855190E-02 -0.420135884493E-01 231 0.110617113192E-02 -0.424245051105E-01 232 0.112463605170E-02 -0.428422025543E-01 233 0.114374558775E-02 -0.432669143512E-01 234 0.116353440492E-02 -0.436988864206E-01 235 0.118403978863E-02 -0.441383779442E-01 236 0.120530190545E-02 -0.445856623703E-01 237 0.122736409635E-02 -0.450410285161E-01 238 0.125027320743E-02 -0.455047817829E-01 239 0.127407996412E-02 -0.459772454971E-01 240 0.129883939568E-02 -0.464587623940E-01 241 0.132461131825E-02 -0.469496962636E-01 242 0.135146088630E-02 -0.474504337799E-01 243 0.137945922421E-02 -0.479613865407E-01 244 0.140868415215E-02 -0.484829933459E-01 245 0.143922102346E-02 -0.490157227531E-01 246 0.147116369412E-02 -0.495600759492E-01 247 0.150461564996E-02 -0.501165899890E-01 248 0.153969132246E-02 -0.506858414593E-01 249 0.157651763176E-02 -0.512684506396E-01 250 0.161523580425E-02 -0.518650862418E-01 251 0.165600352437E-02 -0.524764708318E-01 252 0.169899749483E-02 -0.531033870562E-01 253 0.174441649962E-02 -0.537466848217E-01 254 0.179248508933E-02 -0.544072896127E-01 255 0.184345804203E-02 -0.550862121705E-01 256 0.189762579755E-02 -0.557845598129E-01 257 0.195532112214E-02 -0.565035497428E-01 258 0.201692734080E-02 -0.572445247779E-01 259 0.208288858333E-02 -0.580089720520E-01 260 0.215372263961E-02 -0.587985453823E-01 261 0.223003722718E-02 -0.596150921926E-01 262 0.231255076566E-02 -0.604606861377E-01 263 0.240211916584E-02 -0.613376669135E-01 264 0.249977073628E-02 -0.622486891917E-01 265 0.260675217736E-02 -0.631967832295E-01 266 0.272458991397E-02 -0.641854305335E-01 267 0.285517294287E-02 -0.652186590789E-01 268 0.300086630702E-02 -0.663011641155E-01 269 0.316466887066E-02 -0.674384626675E-01 270 0.335043628871E-02 -0.686370926173E-01 271 0.356320172537E-02 -0.699048709166E-01 272 0.380964612441E-02 -0.712512300005E-01 273 0.409880234539E-02 -0.726876564120E-01 274 0.444313375108E-02 -0.742282589888E-01 275 0.486022772161E-02 -0.758904895393E-01 276 0.537552645346E-02 -0.776960089472E-01 277 0.602685647599E-02 -0.796715861375E-01 278 0.687216162571E-02 -0.818495951584E-01 279 0.800306635658E-02 -0.842667301746E-01 280 0.956911925957E-02 -0.869567890198E-01 281 0.118208715603E-01 -0.899251859164E-01 282 0.151801993943E-01 -0.930687855776E-01 283 0.203127904320E-01 -0.959401219740E-01 284 0.279561507899E-01 -0.971533393641E-01 285 0.374752332749E-01 -0.936380970090E-01 286 0.435851521616E-01 -0.830541547244E-01 287 0.401582774981E-01 -0.712685597101E-01 288 0.312819393805E-01 -0.661824250737E-01 289 0.234744508255E-01 -0.669571071639E-01 290 0.182799389222E-01 -0.702050250922E-01 291 0.150951438198E-01 -0.741562982765E-01 292 0.132050552429E-01 -0.782074984875E-01 293 0.121408168132E-01 -0.822137024541E-01 294 0.116291863205E-01 -0.861823593422E-01 295 0.115167599028E-01 -0.901672141109E-01 296 0.117216049460E-01 -0.942347906362E-01 297 0.122068186348E-01 -0.984555608643E-01 298 0.129673491639E-01 -0.102903534202 299 0.140248945864E-01 -0.107658892061 300 0.154285342174E-01 -0.112811982129 301 0.172607082797E-01 -0.118468222027 302 0.196498702131E-01 -0.124753750490 303 0.227932971765E-01 -0.131821296911 304 0.269970911971E-01 -0.139854205531 305 0.327468559168E-01 -0.149061911671 306 0.408342204663E-01 -0.159646548805 307 0.525824025011E-01 -0.171680105414 308 0.702207641681E-01 -0.184712879904 309 0.973142645685E-01 -0.196609706936 310 0.138127971833 -0.200532811472 311 0.190854856623 -0.180516545008 312 0.229612120909 -0.121296368073 313 0.217595567189 -0.497827412988E-01 314 0.171629058463 -0.130506904711E-01 315 0.130337141141 -0.110263683209E-01 316 0.105617001734 -0.245604267518E-01 317 0.960206768215E-01 -0.424650671956E-01 318 0.997351720830E-01 -0.594184267411E-01 319 0.116692415684 -0.698303336663E-01 320 0.143885794183 -0.630973020108E-01 321 0.163218586151 -0.295485364282E-01 322 0.150272334165 0.128228311257E-01 323 0.115841048356 0.335664358566E-01 324 0.842965283379E-01 0.329815223860E-01 325 0.624702251443E-01 0.233609594854E-01 326 0.483555040053E-01 0.115722811611E-01 327 0.392326683975E-01 0.776182548554E-05 328 0.332685252956E-01 -0.107396760130E-01 329 0.293746127005E-01 -0.206703345059E-01 330 0.269249727532E-01 -0.299551685333E-01 331 0.255724650029E-01 -0.388001816804E-01 332 0.251506733252E-01 -0.474063716210E-01 333 0.256310772767E-01 -0.559565507652E-01 334 0.271164052386E-01 -0.645968064839E-01 335 0.298473097880E-01 -0.733800328065E-01 336 0.341387161946E-01 -0.821491671598E-01 337 0.401056417716E-01 -0.905690471498E-01 338 0.478178508108E-01 -0.987276715081E-01 339 0.586543075502E-01 -0.106455071078 340 0.738864530076E-01 -0.110566593455 341 0.892778773597E-01 -0.106309042267 342 0.955696681883E-01 -0.977149490910E-01 343 0.952044689067E-01 -0.972997519950E-01 344 0.100577670580 -0.106658630110 345 0.119393015828 -0.118300104852 346 0.154987804200 -0.120860787580 347 0.201316987860 -0.959065805790E-01 348 0.226682138411 -0.329461021241E-01 349 0.201015271554 0.323018792242E-01 350 0.150437625335 0.608160089095E-01 351 0.107674506370 0.603318683251E-01 352 0.790354229275E-01 0.485237037006E-01 353 0.609317701266E-01 0.341065261864E-01 354 0.496354140867E-01 0.199915201065E-01 355 0.428124764504E-01 0.689220568096E-02 356 0.392312418619E-01 -0.512598528151E-02 357 0.383900933079E-01 -0.159867719847E-01 358 0.401165853218E-01 -0.250998228335E-01 359 0.434959081574E-01 -0.310326991296E-01 360 0.452745191658E-01 -0.333292747458E-01 361 0.430254919065E-01 -0.358955700813E-01 362 0.396295609495E-01 -0.421925972676E-01 363 0.380916212805E-01 -0.514223804750E-01 364 0.391572663407E-01 -0.621653873173E-01 365 0.429757843824E-01 -0.737599442364E-01 366 0.498702393711E-01 -0.858239538759E-01 367 0.602241707571E-01 -0.980103118319E-01 368 0.749195689115E-01 -0.110478263031 369 0.969814852913E-01 -0.122652683950 370 0.130497805988 -0.130045702257 371 0.177379552338 -0.122112153663 372 0.226974126264 -0.804376279006E-01 373 0.241016897283 -0.431698004977E-02 374 0.202101749295 0.581552641978E-01 375 0.148587837521 0.788425879244E-01 376 0.107882082104 0.736844498536E-01 377 0.821933209465E-01 0.594957477731E-01 378 0.674336389449E-01 0.435298093815E-01 379 0.604562445754E-01 0.282232522661E-01 380 0.597750540180E-01 0.146108713445E-01 381 0.651145931064E-01 0.398453380641E-02 382 0.764612105761E-01 -0.349169611337E-03 383 0.893305000086E-01 0.776321788014E-02 384 0.904036152607E-01 0.273461953286E-01 385 0.752241376900E-01 0.420598698625E-01 386 0.565269656573E-01 0.439763738182E-01 387 0.422829340437E-01 0.385575674676E-01 388 0.327588510835E-01 0.309171718211E-01 389 0.264661364622E-01 0.231617228791E-01 390 0.222097569338E-01 0.159132802327E-01 391 0.192455356920E-01 0.927127300773E-02 392 0.171302012999E-01 0.317726453913E-02 393 0.155974895296E-01 -0.246362464430E-02 394 0.144842489952E-01 -0.774546300150E-02 395 0.136891952638E-01 -0.127521768188E-01 396 0.131501770839E-01 -0.175571851866E-01 397 0.128318893101E-01 -0.222256676368E-01 398 0.127198983690E-01 -0.268173773603E-01 399 0.128191615087E-01 -0.313892864185E-01 400 0.131567882315E-01 -0.359975911755E-01 401 0.137902789325E-01 -0.406980287073E-01 402 0.148244231313E-01 -0.455413391024E-01 403 0.164425157678E-01 -0.505543204432E-01 404 0.189568840780E-01 -0.556782073975E-01 405 0.228538598264E-01 -0.605872390714E-01 406 0.286245373920E-01 -0.642469000177E-01 407 0.355968811890E-01 -0.644811116325E-01 408 0.397891634196E-01 -0.601739849937E-01 409 0.377016784728E-01 -0.561006844441E-01 410 0.330064131185E-01 -0.570877605660E-01 411 0.299966137673E-01 -0.620461582353E-01 412 0.297817669058E-01 -0.687111987932E-01 413 0.325099222935E-01 -0.757053496189E-01 414 0.384922569250E-01 -0.816284050351E-01 415 0.473961083576E-01 -0.838016995378E-01 416 0.551321210832E-01 -0.792096927603E-01 417 0.546955908074E-01 -0.715297314989E-01 418 0.477191780148E-01 -0.696428263623E-01 419 0.413525981042E-01 -0.746613790197E-01 420 0.383139583262E-01 -0.833259702933E-01 421 0.385536865730E-01 -0.936672520737E-01 422 0.418816243278E-01 -0.105058172524 423 0.487125631918E-01 -0.117355096664 424 0.603223585444E-01 -0.130259027949 425 0.791072394296E-01 -0.142393967396 426 0.108249192600 -0.149169558003 427 0.147405387089 -0.139273092806 428 0.179420496986 -0.996044794984E-01 429 0.174358292942 -0.459004149091E-01 430 0.139407791242 -0.160025086272E-01 431 0.105017736189 -0.140852918286E-01 432 0.821582865918E-01 -0.255813862894E-01 433 0.694796872495E-01 -0.414588364071E-01 434 0.642980537094E-01 -0.584511421785E-01 435 0.652425487705E-01 -0.756074308724E-01 436 0.723888083291E-01 -0.923535181474E-01 437 0.869245014658E-01 -0.107041557075 438 0.109459054404 -0.115256675478 439 0.135287102946 -0.111131838752 440 0.155872454918 -0.963052993200E-01 441 0.170534898420 -0.747139614811E-01 442 0.173515359987 -0.450637612623E-01 443 0.157503921684 -0.199735667563E-01 444 0.133635784959 -0.132301509775E-01 445 0.117845324169 -0.218307076869E-01 446 0.116309221720 -0.344142336260E-01 447 0.127175723130 -0.394307098650E-01 448 0.138810574236 -0.280488020908E-01 449 0.134484848739 -0.872287614663E-02 450 0.118889482077 0.163992478899E-04 451 0.106615600104 -0.237350976511E-03 452 0.970892329625E-01 -0.221666353440E-03 453 0.843496394093E-01 -0.201058241831E-02 454 0.717993394623E-01 -0.105945703825E-01 455 0.642214625220E-01 -0.239758991297E-01 456 0.625739290054E-01 -0.388766029296E-01 457 0.667813080052E-01 -0.530505569052E-01 458 0.764590941546E-01 -0.638594736163E-01 459 0.888110177634E-01 -0.685436549871E-01 460 0.100086935550 -0.685687310845E-01 461 0.112243814972 -0.650508506215E-01 462 0.122563151762 -0.517948594786E-01 463 0.118655536383 -0.328459345438E-01 464 0.101988988383 -0.238251387538E-01 465 0.854101886916E-01 -0.282319808943E-01 466 0.758958521210E-01 -0.400380765633E-01 467 0.743377756684E-01 -0.530360857502E-01 468 0.786766578616E-01 -0.621100633868E-01 469 0.826063493385E-01 -0.642949079798E-01 470 0.793075938603E-01 -0.652446952410E-01 471 0.724237560180E-01 -0.731382597950E-01 472 0.686444730733E-01 -0.875913632732E-01 473 0.701473231198E-01 -0.105518823979 474 0.774811914007E-01 -0.125245893977 475 0.919017087359E-01 -0.145648249259 476 0.115834659163 -0.164182964622 477 0.150954608621 -0.173964935672 478 0.189807566244 -0.163880003638 479 0.210890672986 -0.137216299924 480 0.212391479302 -0.121597021427 481 0.221519704782 -0.123254286289 482 0.250798031368 -0.119221977554 483 0.282792080590 -0.883356512442E-01 484 0.290352906875 -0.403606959097E-01 485 0.272212721792 0.122767199806E-02 486 0.238236182877 0.238735587668E-01 487 0.205093375323 0.213095886531E-01 488 0.189477864944 0.369006078707E-02 489 0.193717268867 -0.111040339142E-01 490 0.205735037163 -0.100983262468E-01 491 0.208553887338 0.240520816265E-02 492 0.199437587823 0.124951600129E-01 493 0.185632165070 0.109216679245E-01 494 0.180928820844 -0.193799128134E-02 495 0.192155306117 -0.116958149366E-01 496 0.207485935787 -0.364420754351E-02 497 0.205625760433 0.135775389985E-01 498 0.192716349696 0.163180942401E-01 499 0.190642827242 0.730576612626E-02 500 0.202122302118 0.621860856292E-02 501 0.208239756582 0.223666864706E-01 502 0.193517549144 0.383138489919E-01 503 0.169554983183 0.348150195139E-01 504 0.154343509161 0.133669391099E-01 505 0.155319563647 -0.162287767312E-01 506 0.174839228435 -0.458169022416E-01 507 0.214821463510 -0.652280708532E-01 508 0.269253840536 -0.570701042144E-01 509 0.309362891681 -0.124073774213E-01 510 0.312469251812 0.391156354375E-01 511 0.298616983558 0.744180620224E-01 512 0.278431762750 0.100827421610 513 0.251793570491 0.114584403815 514 0.227283849464 0.115985736858 515 0.205733877514 0.106875092368 516 0.194417487105 0.849861546806E-01 517 0.202693213089 0.583801621781E-01 518 0.231907676204 0.400914561790E-01 519 0.276437773398 0.426428272341E-01 520 0.321480547675 0.782372991155E-01 521 0.337257309926 0.140655833604 522 0.318765536873 0.196512026186 523 0.285388156378 0.234815325217 524 0.247737584073 0.255730853093 525 0.215606347450 0.265933098602 526 0.185394783910 0.274913618682 527 0.150108830713 0.278252114627 528 0.116083416442 0.269136820712 529 0.908728718840E-01 0.252057455373 530 0.747134724655E-01 0.233122903118 531 0.656354855233E-01 0.215301447472 532 0.622007266927E-01 0.200182421324 533 0.629166300027E-01 0.189762071021 534 0.640141071399E-01 0.185584103376 535 0.614297058154E-01 0.184699981762 536 0.562597435471E-01 0.183492774826 537 0.495013118380E-01 0.181885908146 538 0.411160151718E-01 0.178476637768 539 0.332491258146E-01 0.172432966400 540 0.272823159976E-01 0.165130406486 541 0.230294589868E-01 0.157792345629 542 0.199591221370E-01 0.150894512152 543 0.176660376902E-01 0.144537373177 544 0.158932111546E-01 0.138694247191 545 0.144814556637E-01 0.133305996148 546 0.133300231257E-01 0.128311647808 547 0.123729645917E-01 0.123656908092 548 0.115655792102E-01 0.119295532672 549 0.108765795735E-01 0.115188584714 550 0.102834431683E-01 0.111303227521 551 0.976956836305E-02 0.107611563919 552 0.932248058062E-02 0.104089653214 553 0.893266865628E-02 0.100716713241 554 0.859281137876E-02 0.974744800855E-01 555 0.829725331857E-02 0.943466925429E-01 556 0.804164513385E-02 0.913186718346E-01 557 0.782269625556E-02 0.883769723202E-01 558 0.763800757796E-02 0.855090837164E-01 559 0.748596415878E-02 0.827031690160E-01 560 0.736567613784E-02 0.799478248714E-01 561 0.727696198682E-02 0.772318527616E-01 562 0.722037300878E-02 0.745440298932E-01 563 0.719726260610E-02 0.718728685333E-01 564 0.720990905579E-02 0.692063513025E-01 565 0.726170735043E-02 0.665316277435E-01 566 0.735745547049E-02 0.638346540470E-01 567 0.750377545940E-02 0.610997529215E-01 568 0.770973362675E-02 0.583090640668E-01 569 0.798776370962E-02 0.554418478145E-01 570 0.835506387557E-02 0.524735968256E-01 571 0.883575543663E-02 0.493749088549E-01 572 0.946430081027E-02 0.461100940693E-01 573 0.102910637682E-01 0.426355803544E-01 574 0.113916191691E-01 0.388984724570E-01 575 0.128827936807E-01 0.348364963019E-01 576 0.149509766905E-01 0.303831328074E-01 577 0.179024974698E-01 0.254893463177E-01 578 0.222496909139E-01 0.201958290234E-01 579 0.288283266836E-01 0.148533849516E-01 580 0.387794797322E-01 0.107273704110E-01 581 0.524775563578E-01 0.111423813668E-01 582 0.655342968180E-01 0.207433255817E-01 583 0.680588777566E-01 0.363279716216E-01 584 0.604064369938E-01 0.451909219414E-01 585 0.534088072248E-01 0.442696123270E-01 586 0.527393998616E-01 0.390298880950E-01 587 0.592400554815E-01 0.352192597016E-01 588 0.703920725057E-01 0.391133591555E-01 589 0.764712231759E-01 0.539329718930E-01 590 0.686062244435E-01 0.693054385179E-01 591 0.543011437204E-01 0.740056886666E-01 592 0.429443939130E-01 0.702392761055E-01 593 0.364508202374E-01 0.629861334675E-01 594 0.340851775072E-01 0.546590244575E-01 595 0.353406722556E-01 0.460980422924E-01 596 0.405294456753E-01 0.378216942009E-01 597 0.508199447248E-01 0.310977867834E-01 598 0.674644029979E-01 0.296233763561E-01 599 0.875466463987E-01 0.408967212016E-01 600 0.969329412496E-01 0.681107110215E-01 601 0.844349683300E-01 0.945597072093E-01 602 0.626844193470E-01 0.105097540415 603 0.447447440337E-01 0.104077135094 604 0.326670400791E-01 0.987886139603E-01 605 0.248258410668E-01 0.926709659201E-01 606 0.196460851031E-01 0.868556425001E-01 607 0.161166566296E-01 0.816113936148E-01 608 0.136362565356E-01 0.769323083623E-01 609 0.118472269244E-01 0.727389916446E-01 610 0.105322028004E-01 0.689426622199E-01 611 0.955591263970E-02 0.654633387846E-01 612 0.883288275486E-02 0.622330572686E-01 613 0.830946411718E-02 0.591945139053E-01 614 0.795399627491E-02 0.562985968822E-01 615 0.775200560073E-02 0.535019396517E-01 616 0.770513803359E-02 0.507649381741E-01 617 0.783381475386E-02 0.480507503503E-01 618 0.818489911403E-02 0.453267178413E-01 619 0.884724677997E-02 0.425725875433E-01 620 0.997872736922E-02 0.398086151119E-01 621 0.118381758321E-01 0.371805084350E-01 622 0.147417748740E-01 0.351817640677E-01 623 0.185726039568E-01 0.349905853849E-01 624 0.214303544598E-01 0.377890546148E-01 625 0.204825778011E-01 0.416514138934E-01 626 0.168583655430E-01 0.429781687448E-01 627 0.134660562382E-01 0.416821049090E-01 628 0.111940057614E-01 0.391980874416E-01 629 0.984506483862E-02 0.363485655588E-01 630 0.912228076544E-02 0.334182799417E-01 631 0.883514143516E-02 0.304718202672E-01 632 0.889105442615E-02 0.275016818607E-01 633 0.927002970288E-02 0.244877675121E-01 634 0.100092352992E-01 0.214382716383E-01 635 0.111663697013E-01 0.184528664900E-01 636 0.126522856089E-01 0.157706315514E-01 637 0.139686046104E-01 0.134446017104E-01 638 0.147834159317E-01 0.107520604118E-01 639 0.157230816333E-01 0.704374142689E-02 640 0.174868435481E-01 0.240021421819E-02 641 0.204854786193E-01 -0.299684648622E-02 642 0.252203351998E-01 -0.906675061302E-02 643 0.325856346051E-01 -0.156176306750E-01 644 0.440993299411E-01 -0.218362974617E-01 645 0.617849766856E-01 -0.250388665727E-01 646 0.857980203341E-01 -0.184860234100E-01 647 0.106450805421 0.635643489911E-02 648 0.104810731027 0.414717460472E-01 649 0.832923632313E-01 0.630286006559E-01 650 0.610017008823E-01 0.668765839063E-01 651 0.455812199487E-01 0.620250251677E-01 652 0.363469734232E-01 0.544474595264E-01 653 0.314936691408E-01 0.463865716995E-01 654 0.299336551636E-01 0.385259559358E-01 655 0.313834516520E-01 0.312051784227E-01 656 0.361690393315E-01 0.252160160414E-01 657 0.444374710622E-01 0.227695138147E-01 658 0.533395347456E-01 0.274172040743E-01 659 0.554240385512E-01 0.379668290041E-01 660 0.493636487749E-01 0.453450054531E-01 661 0.424009518066E-01 0.467110532690E-01 662 0.371664808873E-01 0.459329645038E-01 663 0.320512288652E-01 0.440708034486E-01 664 0.274549467353E-01 0.400282566883E-01 665 0.246286446052E-01 0.343182357664E-01 666 0.237778327177E-01 0.278504972441E-01 667 0.248136284398E-01 0.210223814735E-01 668 0.279240133192E-01 0.139780107202E-01 669 0.337560619807E-01 0.702841876722E-02 670 0.434036950018E-01 0.132070516849E-02 671 0.574584648155E-01 0.467871166796E-04 672 0.721203952787E-01 0.819966652413E-02 673 0.772238592159E-01 0.238348444845E-01 674 0.717315884733E-01 0.339773127142E-01 675 0.672824567657E-01 0.347750599507E-01 676 0.703428242070E-01 0.337763738571E-01 677 0.781152195552E-01 0.399204305230E-01 678 0.795309495674E-01 0.549479279224E-01 679 0.694513324517E-01 0.671548316787E-01 680 0.570843225559E-01 0.700400492041E-01 681 0.482040862801E-01 0.679610551441E-01 682 0.427274942564E-01 0.641004132737E-01 683 0.409214122179E-01 0.601089420592E-01 684 0.420298806989E-01 0.590364718449E-01 685 0.416050709122E-01 0.624324113255E-01 686 0.360746350670E-01 0.657896376982E-01 687 0.287062116543E-01 0.649232800403E-01 688 0.229412419961E-01 0.610332180858E-01 689 0.192284366879E-01 0.560803855871E-01 690 0.170643517182E-01 0.509385814065E-01 691 0.160152449845E-01 0.458366293386E-01 692 0.158588197895E-01 0.407622734255E-01 693 0.165546617187E-01 0.356265867553E-01 694 0.182337000590E-01 0.303294568606E-01 695 0.212378263337E-01 0.248184828610E-01 696 0.262147169797E-01 0.192266826225E-01 697 0.342096038678E-01 0.142613312792E-01 698 0.463078297105E-01 0.121359716581E-01 699 0.612253700905E-01 0.174299217349E-01 700 0.712367464579E-01 0.325950316140E-01 701 0.698608763158E-01 0.494253941330E-01 702 0.624772395704E-01 0.605793006418E-01 703 0.536711300617E-01 0.676630235389E-01 704 0.433007259754E-01 0.711718947777E-01 705 0.334274211867E-01 0.699760139114E-01 706 0.263753923686E-01 0.657847490339E-01 707 0.222383719481E-01 0.606521453186E-01 708 0.204434951075E-01 0.555824701651E-01 709 0.206507391645E-01 0.510896906825E-01 710 0.227688219568E-01 0.478866601822E-01 711 0.261155073955E-01 0.473872799048E-01 712 0.279936356459E-01 0.502783600667E-01 713 0.261290724506E-01 0.537960066613E-01 714 0.219975410935E-01 0.550886993694E-01 715 0.178441959270E-01 0.538892244982E-01 716 0.148800276092E-01 0.512038378908E-01 717 0.131979083116E-01 0.480504160169E-01 718 0.124592769932E-01 0.448763172610E-01 719 0.124894480074E-01 0.416874038178E-01 720 0.134702856127E-01 0.384918694751E-01 721 0.157705018409E-01 0.355870841925E-01 722 0.197834607480E-01 0.338284439949E-01 723 0.251019022624E-01 0.350760796770E-01 724 0.285167644495E-01 0.408053977888E-01 725 0.261811441235E-01 0.475192184871E-01 726 0.204722993732E-01 0.502898015708E-01 727 0.154335991943E-01 0.495371317556E-01 728 0.120766920505E-01 0.473481259413E-01 729 0.100757967580E-01 0.448493436702E-01 730 0.904181253432E-02 0.424967220253E-01 731 0.868961150871E-02 0.405789522385E-01 732 0.858049682895E-02 0.393643182116E-01 733 0.803823162212E-02 0.386474786841E-01 734 0.700383515394E-02 0.376897335380E-01 735 0.600634278746E-02 0.362933484310E-01 736 0.527344270960E-02 0.347034480650E-01 737 0.477174234153E-02 0.330932028804E-01 738 0.442888515865E-02 0.315224370213E-01 739 0.419225523191E-02 0.300013578338E-01 740 0.402917673840E-02 0.285239938964E-01 741 0.391983554383E-02 0.270801923905E-01 742 0.385214704625E-02 0.256593819002E-01 743 0.381874657459E-02 0.242515495929E-01 744 0.381530345635E-02 0.228473157372E-01 745 0.383959164075E-02 0.214377296176E-01 746 0.389100023721E-02 0.200139863600E-01 747 0.397032081737E-02 0.185671200933E-01 748 0.407973633687E-02 0.170876787134E-01 749 0.422299174234E-02 0.155653669617E-01 750 0.440577024236E-02 0.139886365829E-01 751 0.463634782935E-02 0.123441987291E-01 752 0.492666918002E-02 0.106164355314E-01 753 0.529410691285E-02 0.878670438568E-02 754 0.576438133227E-02 0.683258913850E-02 755 0.637652125228E-02 0.472734000504E-02 756 0.719151061460E-02 0.244029758994E-02 757 0.830766569206E-02 -0.592807114400E-04 758 0.988795831691E-02 -0.278777439392E-02 759 0.122053580116E-01 -0.570076962641E-02 760 0.156952216138E-01 -0.855464021340E-02 761 0.208819564141E-01 -0.105473989937E-01 762 0.275789375922E-01 -0.979184659193E-02 763 0.327673993334E-01 -0.447344069313E-02 764 0.321583509541E-01 0.230471101012E-02 765 0.276402831015E-01 0.516394674066E-02 766 0.234522852521E-01 0.402564376430E-02 767 0.210348870294E-01 0.775485090380E-03 768 0.204926779966E-01 -0.323011939316E-02 769 0.213951680802E-01 -0.712159368608E-02 770 0.230381563150E-01 -0.105937968921E-01 771 0.247478147640E-01 -0.141017785908E-01 772 0.268780191413E-01 -0.187664660203E-01 773 0.309368327851E-01 -0.248326737429E-01 774 0.383964322210E-01 -0.314669646478E-01 775 0.507355323154E-01 -0.368868517030E-01 776 0.687779178746E-01 -0.370999468469E-01 777 0.887224464457E-01 -0.258123121060E-01 778 0.989103017624E-01 -0.264790370171E-02 779 0.931693583134E-01 0.193614792474E-01 780 0.809173076028E-01 0.304187256203E-01 781 0.714582727782E-01 0.347943850071E-01 782 0.630834054623E-01 0.384349837759E-01 783 0.529632748424E-01 0.389500600255E-01 784 0.445572701302E-01 0.343898454616E-01 785 0.405355931522E-01 0.271487578948E-01 786 0.412414261643E-01 0.197978209354E-01 787 0.463480340357E-01 0.147105595891E-01 788 0.540956954194E-01 0.147217918918E-01 789 0.599810636958E-01 0.212750782185E-01 790 0.586181093582E-01 0.309632241685E-01 791 0.504210446783E-01 0.362846849382E-01 792 0.416305039395E-01 0.346299133062E-01 793 0.361162815191E-01 0.286397061353E-01 794 0.344685607944E-01 0.208916399438E-01 795 0.366035039600E-01 0.126395855314E-01 796 0.430221412708E-01 0.477257090685E-02 797 0.549069959398E-01 -0.820837917168E-03 798 0.725679248712E-01 0.514882557739E-03 799 0.902202746975E-01 0.152752992134E-01 800 0.949255847153E-01 0.411038374650E-01 elk-9.6.8/tests/test_004/PaxHeaders/TEST_800.OUT_0000644000000000000000000000013214626155522016001 xustar0030 mtime=1717099346.367999224 30 atime=1717099346.367999224 30 ctime=1717099346.367999224 elk-9.6.8/tests/test_004/TEST_800.OUT_0000644002504400250440000000051714626155522020526 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-9.6.8/tests/test_004/PaxHeaders/TEST_500.OUT_0000644000000000000000000000013214626155522015776 xustar0030 mtime=1717099346.369999235 30 atime=1717099346.369999235 30 ctime=1717099346.369999235 elk-9.6.8/tests/test_004/TEST_500.OUT_0000644002504400250440000000013514626155522020517 0ustar00dewhurstdewhurst00000000000000'DOS at Fermi energy' 2 1 0.500000000000E-02 1 0.508689366102E-12 elk-9.6.8/tests/test_004/PaxHeaders/TEST_510.OUT_0000644000000000000000000000013114626155522015776 xustar0030 mtime=1717099346.371999246 29 atime=1717099346.37099924 30 ctime=1717099346.371999246 elk-9.6.8/tests/test_004/TEST_510.OUT_0000644002504400250440000000014514626155522020521 0ustar00dewhurstdewhurst00000000000000'estimated indirect band gap' 2 1 0.200000000000E-01 1 0.324618597169 elk-9.6.8/tests/test_004/PaxHeaders/TEST_400.OUT_0000644000000000000000000000013214626155522015775 xustar0030 mtime=1717099346.373999257 30 atime=1717099346.372999251 30 ctime=1717099346.373999257 elk-9.6.8/tests/test_004/TEST_400.OUT_0000644002504400250440000000014114626155522020513 0ustar00dewhurstdewhurst00000000000000'calculated total charge' 2 1 0.100000000000E-05 1 12.0280763859 elk-9.6.8/tests/test_004/PaxHeaders/TEST_000.OUT_0000644000000000000000000000013214626155522015771 xustar0030 mtime=1717099346.375999267 30 atime=1717099346.374999262 30 ctime=1717099346.375999267 elk-9.6.8/tests/test_004/TEST_000.OUT_0000644002504400250440000000012614626155522020512 0ustar00dewhurstdewhurst00000000000000'total energy' 2 1 0.100000000000E-04 1 -106.907629060 elk-9.6.8/tests/test_004/PaxHeaders/TEST_705.OUT_0000644000000000000000000000013214626155522016005 xustar0030 mtime=1717099346.377999278 30 atime=1717099346.377999278 30 ctime=1717099346.377999278 elk-9.6.8/tests/test_004/TEST_705.OUT_0000644002504400250440000000010114626155522020517 0ustar00dewhurstdewhurst00000000000000'number of crystal symmetries' 1 1 1 48 elk-9.6.8/tests/test_004/PaxHeaders/TEST_900.OUT_0000644000000000000000000000013214626155522016002 xustar0030 mtime=1717099346.379999289 30 atime=1717099346.379999289 30 ctime=1717099346.379999289 elk-9.6.8/tests/test_004/TEST_900.OUT_0000644002504400250440000000007014626155522020521 0ustar00dewhurstdewhurst00000000000000'number of G-vectors' 1 1 1 3215 elk-9.6.8/tests/test_004/PaxHeaders/TEST_910.OUT_0000644000000000000000000000013214626155522016003 xustar0030 mtime=1717099346.382999305 30 atime=1717099346.382999305 30 ctime=1717099346.382999305 elk-9.6.8/tests/test_004/TEST_910.OUT_0000644002504400250440000000144714626155522020533 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-9.6.8/tests/test_004/PaxHeaders/elk.in0000644000000000000000000000013214626155522015206 xustar0030 mtime=1717099346.384999316 30 atime=1717099346.384999316 30 ctime=1717099346.384999316 elk-9.6.8/tests/test_004/elk.in0000644002504400250440000000134214626155522017730 0ustar00dewhurstdewhurst00000000000000 tasks 0 120 121 180 185 186 187 500 test .true. mixtype 3 nxoapwlo 1 scissor 0.21 lmaxo 5 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-9.6.8/tests/PaxHeaders/test_0080000644000000000000000000000013214626155522014032 xustar0030 mtime=1717099346.402999413 30 atime=1717099346.385999321 30 ctime=1717099346.402999413 elk-9.6.8/tests/test_008/0000755002504400250440000000000014626155522016631 5ustar00dewhurstdewhurst00000000000000elk-9.6.8/tests/test_008/PaxHeaders/TEST_450.OUT_0000644000000000000000000000013214626155522016006 xustar0030 mtime=1717099346.387999332 30 atime=1717099346.387999332 30 ctime=1717099346.387999332 elk-9.6.8/tests/test_008/TEST_450.OUT_0000644002504400250440000000014014626155522020523 0ustar00dewhurstdewhurst00000000000000'total moment magnitude' 2 1 0.100000000000E-02 1 0.527028504666E-17 elk-9.6.8/tests/test_008/PaxHeaders/TEST_400.OUT_0000644000000000000000000000013214626155522016001 xustar0030 mtime=1717099346.389999343 30 atime=1717099346.389999343 30 ctime=1717099346.389999343 elk-9.6.8/tests/test_008/TEST_400.OUT_0000644002504400250440000000014114626155522020517 0ustar00dewhurstdewhurst00000000000000'calculated total charge' 2 1 0.100000000000E-05 1 51.9943490066 elk-9.6.8/tests/test_008/PaxHeaders/TEST_000.OUT_0000644000000000000000000000013214626155522015775 xustar0030 mtime=1717099346.391999354 30 atime=1717099346.391999354 30 ctime=1717099346.391999354 elk-9.6.8/tests/test_008/TEST_000.OUT_0000644002504400250440000000012614626155522020516 0ustar00dewhurstdewhurst00000000000000'total energy' 2 1 0.100000000000E-04 1 -2540.92553106 elk-9.6.8/tests/test_008/PaxHeaders/TEST_500.OUT_0000644000000000000000000000013214626155522016002 xustar0030 mtime=1717099346.393999364 30 atime=1717099346.393999364 30 ctime=1717099346.393999364 elk-9.6.8/tests/test_008/TEST_500.OUT_0000644002504400250440000000013514626155522020523 0ustar00dewhurstdewhurst00000000000000'DOS at Fermi energy' 2 1 0.500000000000E-02 1 238.639965906 elk-9.6.8/tests/test_008/PaxHeaders/TEST_510.OUT_0000644000000000000000000000013214626155522016003 xustar0030 mtime=1717099346.395999375 30 atime=1717099346.395999375 30 ctime=1717099346.395999375 elk-9.6.8/tests/test_008/TEST_510.OUT_0000644002504400250440000000014514626155522020525 0ustar00dewhurstdewhurst00000000000000'estimated indirect band gap' 2 1 0.200000000000E-01 1 0.141901385174E-02 elk-9.6.8/tests/test_008/PaxHeaders/TEST_705.OUT_0000644000000000000000000000013214626155522016011 xustar0030 mtime=1717099346.397999386 30 atime=1717099346.397999386 30 ctime=1717099346.397999386 elk-9.6.8/tests/test_008/TEST_705.OUT_0000644002504400250440000000010114626155522020523 0ustar00dewhurstdewhurst00000000000000'number of crystal symmetries' 1 1 1 96 elk-9.6.8/tests/test_008/PaxHeaders/TEST_900.OUT_0000644000000000000000000000013214626155522016006 xustar0030 mtime=1717099346.399999397 30 atime=1717099346.398999391 30 ctime=1717099346.399999397 elk-9.6.8/tests/test_008/TEST_900.OUT_0000644002504400250440000000007014626155522020525 0ustar00dewhurstdewhurst00000000000000'number of G-vectors' 1 1 1 8385 elk-9.6.8/tests/test_008/PaxHeaders/TEST_910.OUT_0000644000000000000000000000013214626155522016007 xustar0030 mtime=1717099346.401999407 30 atime=1717099346.400999402 30 ctime=1717099346.401999407 elk-9.6.8/tests/test_008/TEST_910.OUT_0000644002504400250440000000174114626155522020534 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-9.6.8/tests/test_008/PaxHeaders/elk.in0000644000000000000000000000013214626155522015212 xustar0030 mtime=1717099346.402999413 30 atime=1717099346.402999413 30 ctime=1717099346.402999413 elk-9.6.8/tests/test_008/elk.in0000644002504400250440000000114314626155522017733 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-9.6.8/tests/PaxHeaders/test_0120000644000000000000000000000013214626155522014025 xustar0030 mtime=1717099346.424999531 30 atime=1717099346.404999424 30 ctime=1717099346.424999531 elk-9.6.8/tests/test_012/0000755002504400250440000000000014626155522016624 5ustar00dewhurstdewhurst00000000000000elk-9.6.8/tests/test_012/PaxHeaders/TEST_400.OUT_0000644000000000000000000000013214626155522015774 xustar0030 mtime=1717099346.406999434 30 atime=1717099346.405999429 30 ctime=1717099346.406999434 elk-9.6.8/tests/test_012/TEST_400.OUT_0000644002504400250440000000014114626155522020512 0ustar00dewhurstdewhurst00000000000000'calculated total charge' 2 1 0.100000000000E-05 1 25.9808139623 elk-9.6.8/tests/test_012/PaxHeaders/TEST_000.OUT_0000644000000000000000000000013214626155522015770 xustar0030 mtime=1717099346.408999445 30 atime=1717099346.408999445 30 ctime=1717099346.408999445 elk-9.6.8/tests/test_012/TEST_000.OUT_0000644002504400250440000000012614626155522020511 0ustar00dewhurstdewhurst00000000000000'total energy' 2 1 0.100000000000E-04 1 -483.830347536 elk-9.6.8/tests/test_012/PaxHeaders/TEST_500.OUT_0000644000000000000000000000013214626155522015775 xustar0030 mtime=1717099346.411999461 30 atime=1717099346.410999456 30 ctime=1717099346.411999461 elk-9.6.8/tests/test_012/TEST_500.OUT_0000644002504400250440000000013514626155522020516 0ustar00dewhurstdewhurst00000000000000'DOS at Fermi energy' 2 1 0.500000000000E-02 1 126.871475643 elk-9.6.8/tests/test_012/PaxHeaders/TEST_510.OUT_0000644000000000000000000000013214626155522015776 xustar0030 mtime=1717099346.413999472 30 atime=1717099346.412999467 30 ctime=1717099346.413999472 elk-9.6.8/tests/test_012/TEST_510.OUT_0000644002504400250440000000014514626155522020520 0ustar00dewhurstdewhurst00000000000000'estimated indirect band gap' 2 1 0.200000000000E-01 1 0.361959500059E-01 elk-9.6.8/tests/test_012/PaxHeaders/TEST_705.OUT_0000644000000000000000000000013214626155522016004 xustar0030 mtime=1717099346.414999478 30 atime=1717099346.414999478 30 ctime=1717099346.414999478 elk-9.6.8/tests/test_012/TEST_705.OUT_0000644002504400250440000000010114626155522020516 0ustar00dewhurstdewhurst00000000000000'number of crystal symmetries' 1 1 1 48 elk-9.6.8/tests/test_012/PaxHeaders/TEST_900.OUT_0000644000000000000000000000013214626155522016001 xustar0030 mtime=1717099346.417999494 30 atime=1717099346.416999488 30 ctime=1717099346.417999494 elk-9.6.8/tests/test_012/TEST_900.OUT_0000644002504400250440000000007014626155522020520 0ustar00dewhurstdewhurst00000000000000'number of G-vectors' 1 1 1 3287 elk-9.6.8/tests/test_012/PaxHeaders/TEST_910.OUT_0000644000000000000000000000013214626155522016002 xustar0030 mtime=1717099346.419999504 30 atime=1717099346.418999499 30 ctime=1717099346.419999504 elk-9.6.8/tests/test_012/TEST_910.OUT_0000644002504400250440000000144714626155522020532 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-9.6.8/tests/test_012/PaxHeaders/TEST_750.OUT_0000644000000000000000000000013114626155522016003 xustar0030 mtime=1717099346.421999515 29 atime=1717099346.42099951 30 ctime=1717099346.421999515 elk-9.6.8/tests/test_012/TEST_750.OUT_0000644002504400250440000000036114626155522020526 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-9.6.8/tests/test_012/PaxHeaders/elk.in0000644000000000000000000000013214626155522015205 xustar0030 mtime=1717099346.422999521 30 atime=1717099346.422999521 30 ctime=1717099346.422999521 elk-9.6.8/tests/test_012/elk.in0000644002504400250440000000126014626155522017726 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-9.6.8/tests/test_012/PaxHeaders/TEST_251.OUT_0000644000000000000000000000013214626155522016000 xustar0030 mtime=1717099346.424999531 30 atime=1717099346.424999531 30 ctime=1717099346.424999531 elk-9.6.8/tests/test_012/TEST_251.OUT_0000644002504400250440000000016314626155522020522 0ustar00dewhurstdewhurst00000000000000'electron-phonon coupling constant, lambda' 2 1 0.500000000000E-01 1 11.8815590731 elk-9.6.8/tests/PaxHeaders/test_0160000644000000000000000000000013214626155522014031 xustar0030 mtime=1717099346.449999666 30 atime=1717099346.426999542 30 ctime=1717099346.449999666 elk-9.6.8/tests/test_016/0000755002504400250440000000000014626155522016630 5ustar00dewhurstdewhurst00000000000000elk-9.6.8/tests/test_016/PaxHeaders/TEST_000.OUT_0000644000000000000000000000013214626155522015774 xustar0030 mtime=1717099346.428999553 30 atime=1717099346.428999553 30 ctime=1717099346.428999553 elk-9.6.8/tests/test_016/TEST_000.OUT_0000644002504400250440000000012614626155522020515 0ustar00dewhurstdewhurst00000000000000'total energy' 2 1 0.100000000000E-04 1 -28308.8794010 elk-9.6.8/tests/test_016/PaxHeaders/TEST_820.OUT_0000644000000000000000000000013214626155522016006 xustar0030 mtime=1717099346.430999564 30 atime=1717099346.430999564 30 ctime=1717099346.430999564 elk-9.6.8/tests/test_016/TEST_820.OUT_0000644002504400250440000000210014626155522020521 0ustar00dewhurstdewhurst00000000000000'Coupled tensor moments' 2 33 0.500000000000E-03 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.761024995100E-03 11 -0.285514589377E-02 12 -0.463285733046E-03 13 -0.781142868638E-02 14 -0.420534104094E-02 15 -0.117330835350E-02 16 0.527877624614E-03 17 0.425649685564E-02 18 0.592524012343E-02 19 0.333733539883E-02 20 0.214608552835E-02 21 -0.781142868631E-02 22 -0.150644176940E-01 23 0.129404288333E-02 24 -0.142164837490E-02 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 elk-9.6.8/tests/test_016/PaxHeaders/TEST_400.OUT_0000644000000000000000000000013214626155522016000 xustar0030 mtime=1717099346.432999574 30 atime=1717099346.432999574 30 ctime=1717099346.432999574 elk-9.6.8/tests/test_016/TEST_400.OUT_0000644002504400250440000000014114626155522020516 0ustar00dewhurstdewhurst00000000000000'calculated total charge' 2 1 0.100000000000E-05 1 107.994703140 elk-9.6.8/tests/test_016/PaxHeaders/TEST_450.OUT_0000644000000000000000000000013214626155522016005 xustar0030 mtime=1717099346.434999585 30 atime=1717099346.434999585 30 ctime=1717099346.434999585 elk-9.6.8/tests/test_016/TEST_450.OUT_0000644002504400250440000000014014626155522020522 0ustar00dewhurstdewhurst00000000000000'total moment magnitude' 2 1 0.100000000000E-02 1 4.01747505116 elk-9.6.8/tests/test_016/PaxHeaders/TEST_800.OUT_0000644000000000000000000000013214626155522016004 xustar0030 mtime=1717099346.436999596 30 atime=1717099346.436999596 30 ctime=1717099346.436999596 elk-9.6.8/tests/test_016/TEST_800.OUT_0000644002504400250440000000014414626155522020525 0ustar00dewhurstdewhurst00000000000000'DFT+U energy for each atom' 2 1 0.100000000000E-03 1 0.507071414860E-02 elk-9.6.8/tests/test_016/PaxHeaders/TEST_810.OUT_0000644000000000000000000000013214626155522016005 xustar0030 mtime=1717099346.438999607 30 atime=1717099346.438999607 30 ctime=1717099346.438999607 elk-9.6.8/tests/test_016/TEST_810.OUT_0000644002504400250440000000017314626155522020530 0ustar00dewhurstdewhurst00000000000000'U and J parameters' 2 2 0.100000000000E-03 1 0.146997200004 2 0.226190643052E-01 elk-9.6.8/tests/test_016/PaxHeaders/TEST_500.OUT_0000644000000000000000000000013214626155522016001 xustar0030 mtime=1717099346.440999617 30 atime=1717099346.440999617 30 ctime=1717099346.440999617 elk-9.6.8/tests/test_016/TEST_500.OUT_0000644002504400250440000000013514626155522020522 0ustar00dewhurstdewhurst00000000000000'DOS at Fermi energy' 2 1 0.500000000000E-02 1 23.8077270054 elk-9.6.8/tests/test_016/PaxHeaders/TEST_510.OUT_0000644000000000000000000000013214626155522016002 xustar0030 mtime=1717099346.442999628 30 atime=1717099346.442999628 30 ctime=1717099346.442999628 elk-9.6.8/tests/test_016/TEST_510.OUT_0000644002504400250440000000014514626155522020524 0ustar00dewhurstdewhurst00000000000000'estimated indirect band gap' 2 1 0.200000000000E-01 1 0.108270738008E-01 elk-9.6.8/tests/test_016/PaxHeaders/TEST_705.OUT_0000644000000000000000000000013214626155522016010 xustar0030 mtime=1717099346.444999639 30 atime=1717099346.444999639 30 ctime=1717099346.444999639 elk-9.6.8/tests/test_016/TEST_705.OUT_0000644002504400250440000000010114626155522020522 0ustar00dewhurstdewhurst00000000000000'number of crystal symmetries' 1 1 1 6 elk-9.6.8/tests/test_016/PaxHeaders/TEST_900.OUT_0000644000000000000000000000012714626155522016011 xustar0029 mtime=1717099346.44699965 29 atime=1717099346.44699965 29 ctime=1717099346.44699965 elk-9.6.8/tests/test_016/TEST_900.OUT_0000644002504400250440000000007014626155522020524 0ustar00dewhurstdewhurst00000000000000'number of G-vectors' 1 1 1 7991 elk-9.6.8/tests/test_016/PaxHeaders/TEST_910.OUT_0000644000000000000000000000013214626155522016006 xustar0030 mtime=1717099346.448999661 30 atime=1717099346.448999661 30 ctime=1717099346.448999661 elk-9.6.8/tests/test_016/TEST_910.OUT_0000644002504400250440000000144714626155522020536 0ustar00dewhurstdewhurst00000000000000'k-points (Cartesian)' 2 24 0.100000000000E-07 1 0.265292393961 2 0.113696740269 3 0.378989134229E-01 4 -0.378989134229E-01 5 0.416888047652 6 0.341090220806 7 0.568483701344 8 -0.189494567115 9 0.341090220806 10 0.265292393961 11 0.113696740269 12 0.644281528190 13 0.568483701344 14 0.416888047652 15 -0.265292393961 16 0.265292393961 17 0.720079355036 18 0.378989134229E-01 19 0.871675008728 20 0.113696740269 21 0.378989134229E-01 22 0.568483701344 23 0.416888047652 24 0.341090220806 elk-9.6.8/tests/test_016/PaxHeaders/elk.in0000644000000000000000000000013214626155522015211 xustar0030 mtime=1717099346.450999671 30 atime=1717099346.450999671 30 ctime=1717099346.450999671 elk-9.6.8/tests/test_016/elk.in0000644002504400250440000000132614626155522017735 0ustar00dewhurstdewhurst00000000000000 ! DFT+U test tasks 0 400 500 maxscl 10 test .true. swidth 0.01 dft+u 1 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 2 2 2 vkloff 0.25 0.5 0.625 elk-9.6.8/tests/PaxHeaders/test_0200000644000000000000000000000013214626155522014024 xustar0030 mtime=1717099346.476999812 30 atime=1717099346.452999682 30 ctime=1717099346.476999812 elk-9.6.8/tests/test_020/0000755002504400250440000000000014626155522016623 5ustar00dewhurstdewhurst00000000000000elk-9.6.8/tests/test_020/PaxHeaders/TEST_800.OUT_0000644000000000000000000000013214626155522015777 xustar0030 mtime=1717099346.454999693 30 atime=1717099346.454999693 30 ctime=1717099346.454999693 elk-9.6.8/tests/test_020/TEST_800.OUT_0000644002504400250440000000026414626155522020523 0ustar00dewhurstdewhurst00000000000000'regularised Coulomb Green''s function (gclq)' 2 3 0.100000000000E-07 1 216.963990922 2 28.1249542511 3 19.7640709318 elk-9.6.8/tests/test_020/PaxHeaders/TEST_500.OUT_0000644000000000000000000000013214626155522015774 xustar0030 mtime=1717099346.457999709 30 atime=1717099346.456999704 30 ctime=1717099346.457999709 elk-9.6.8/tests/test_020/TEST_500.OUT_0000644002504400250440000000013514626155522020515 0ustar00dewhurstdewhurst00000000000000'DOS at Fermi energy' 2 1 0.500000000000E-02 1 0.935181238167E-03 elk-9.6.8/tests/test_020/PaxHeaders/TEST_510.OUT_0000644000000000000000000000012714626155522016001 xustar0029 mtime=1717099346.45999972 29 atime=1717099346.45999972 29 ctime=1717099346.45999972 elk-9.6.8/tests/test_020/TEST_510.OUT_0000644002504400250440000000014514626155522020517 0ustar00dewhurstdewhurst00000000000000'estimated indirect band gap' 2 1 0.200000000000E-01 1 0.330143484426 elk-9.6.8/tests/test_020/PaxHeaders/TEST_400.OUT_0000644000000000000000000000013214626155522015773 xustar0030 mtime=1717099346.461999731 30 atime=1717099346.461999731 30 ctime=1717099346.461999731 elk-9.6.8/tests/test_020/TEST_400.OUT_0000644002504400250440000000014114626155522020511 0ustar00dewhurstdewhurst00000000000000'calculated total charge' 2 1 0.100000000000E-05 1 12.0277004366 elk-9.6.8/tests/test_020/PaxHeaders/TEST_000.OUT_0000644000000000000000000000013214626155522015767 xustar0030 mtime=1717099346.464999747 30 atime=1717099346.463999741 30 ctime=1717099346.464999747 elk-9.6.8/tests/test_020/TEST_000.OUT_0000644002504400250440000000012614626155522020510 0ustar00dewhurstdewhurst00000000000000'total energy' 2 1 0.100000000000E-04 1 -107.002994835 elk-9.6.8/tests/test_020/PaxHeaders/TEST_705.OUT_0000644000000000000000000000013214626155522016003 xustar0030 mtime=1717099346.466999758 30 atime=1717099346.466999758 30 ctime=1717099346.466999758 elk-9.6.8/tests/test_020/TEST_705.OUT_0000644002504400250440000000010114626155522020515 0ustar00dewhurstdewhurst00000000000000'number of crystal symmetries' 1 1 1 48 elk-9.6.8/tests/test_020/PaxHeaders/TEST_900.OUT_0000644000000000000000000000013214626155522016000 xustar0030 mtime=1717099346.469999774 30 atime=1717099346.468999768 30 ctime=1717099346.469999774 elk-9.6.8/tests/test_020/TEST_900.OUT_0000644002504400250440000000007014626155522020517 0ustar00dewhurstdewhurst00000000000000'number of G-vectors' 1 1 1 3215 elk-9.6.8/tests/test_020/PaxHeaders/TEST_910.OUT_0000644000000000000000000000013214626155522016001 xustar0030 mtime=1717099346.471999785 30 atime=1717099346.471999785 30 ctime=1717099346.471999785 elk-9.6.8/tests/test_020/TEST_910.OUT_0000644002504400250440000000144714626155522020531 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-9.6.8/tests/test_020/PaxHeaders/TEST_610.OUT_0000644000000000000000000000013214626155522015776 xustar0030 mtime=1717099346.474999801 30 atime=1717099346.473999795 30 ctime=1717099346.474999801 elk-9.6.8/tests/test_020/TEST_610.OUT_0000644002504400250440000001417514626155522020530 0ustar00dewhurstdewhurst00000000000000'total GW spectral function' 2 200 0.500000000000E-01 1 0.591980484369 2 0.584736781023 3 0.577709851810 4 0.570915903362 5 0.564338502934 6 0.557970742492 7 0.551805495909 8 0.545835287458 9 0.540054391610 10 0.534456594209 11 0.529035113492 12 0.523784730955 13 0.518700808423 14 0.513777635792 15 0.509009522029 16 0.504392683827 17 0.499922875568 18 0.495595799056 19 0.491406136193 20 0.487350977855 21 0.483428826358 22 0.479632168070 23 0.475958267815 24 0.472399621432 25 0.468970069055 26 0.465648393190 27 0.462437179707 28 0.459336372451 29 0.456341876573 30 0.453449660819 31 0.450658897678 32 0.447967210846 33 0.445370773456 34 0.442868123900 35 0.440462907419 36 0.438143149086 37 0.435912946830 38 0.433770252203 39 0.431713931091 40 0.429738009041 41 0.427847185313 42 0.426036936843 43 0.424306746868 44 0.422655530982 45 0.421078868504 46 0.419581748371 47 0.418156475041 48 0.416806727197 49 0.415529513672 50 0.414325633864 51 0.413191240362 52 0.412125913184 53 0.411133613162 54 0.410207955441 55 0.409351252271 56 0.408562049270 57 0.407840328484 58 0.407184599065 59 0.406595143816 60 0.406071607792 61 0.405613282797 62 0.405220334331 63 0.404893626787 64 0.404629452809 65 0.404431156471 66 0.404297031861 67 0.404225871699 68 0.404220244638 69 0.404281102065 70 0.404401960259 71 0.404592346252 72 0.404845715801 73 0.405162558792 74 0.405547229664 75 0.405995872692 76 0.406515241716 77 0.407093653043 78 0.407743030326 79 0.408460764292 80 0.409245912838 81 0.410101124037 82 0.411024661430 83 0.412021115835 84 0.413088099446 85 0.414228088606 86 0.415443267452 87 0.416732372271 88 0.418097758241 89 0.419541728440 90 0.421064315703 91 0.422667667501 92 0.424352718625 93 0.426122587760 94 0.427978144743 95 0.429921200557 96 0.431953735477 97 0.434078300855 98 0.436297679904 99 0.438613627845 100 0.441028787809 101 0.443547212145 102 0.446170262759 103 0.448902548306 104 0.451745267169 105 0.454702881142 106 0.457781795887 107 0.460983643484 108 0.464313012524 109 0.467774553534 110 0.471372274377 111 0.475114997370 112 0.479005374191 113 0.483048699760 114 0.487255340612 115 0.491628549607 116 0.496176887478 117 0.500909686786 118 0.505834192632 119 0.510956661738 120 0.516294857733 121 0.521853771545 122 0.527648918535 123 0.533692610429 124 0.539996462004 125 0.546570505461 126 0.553450434702 127 0.560633628448 128 0.568154434373 129 0.576027541402 130 0.584273744223 131 0.592933512338 132 0.602033598212 133 0.611589603852 134 0.621663076219 135 0.632288375694 136 0.643509095948 137 0.655378634950 138 0.667966624153 139 0.681346078162 140 0.695599914036 141 0.710814700961 142 0.727103425451 143 0.744603815766 144 0.763459977231 145 0.783851904869 146 0.806002073486 147 0.830165606236 148 0.856684109003 149 0.885852163275 150 0.918199922573 151 0.954248992369 152 0.994639966407 153 1.04016095841 154 1.09170210424 155 1.15018912932 156 1.21653132382 157 1.29126385138 158 1.37429652562 159 1.46403802351 160 1.55664367827 161 1.64559977030 162 1.72255997717 163 1.78003699442 164 1.81500739242 165 1.83080008151 166 1.83566038446 167 1.83914241241 168 1.84927085957 169 1.87153322372 170 1.90926681211 171 1.96450860710 172 2.03881741634 173 2.13383797107 174 2.25158926126 175 2.39482827727 176 2.56717724608 177 2.77328884670 178 3.01890539845 179 3.31083477615 180 3.65665064520 181 4.06378920043 182 4.53767266949 183 5.07816863298 184 5.67410016701 185 6.29661170577 186 6.89519235080 187 7.40339056997 188 7.75933612651 189 7.93357474740 190 7.94285424849 191 7.83556123262 192 7.66052765460 193 7.44425068212 194 7.19028658702 195 6.89581168788 196 6.56918308825 197 6.23466275298 198 5.92410179230 199 5.66600157558 200 5.48008971392 elk-9.6.8/tests/test_020/PaxHeaders/elk.in0000644000000000000000000000013214626155522015204 xustar0030 mtime=1717099346.476999812 30 atime=1717099346.476999812 30 ctime=1717099346.476999812 elk-9.6.8/tests/test_020/elk.in0000644002504400250440000000054414626155522017731 0ustar00dewhurstdewhurst00000000000000 tasks 0 600 610 500 test .true. xctype 30 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-9.6.8/tests/PaxHeaders/test_0350000644000000000000000000000013214626155522014032 xustar0030 mtime=1717099346.495999914 30 atime=1717099346.477999817 30 ctime=1717099346.495999914 elk-9.6.8/tests/test_035/0000755002504400250440000000000014626155522016631 5ustar00dewhurstdewhurst00000000000000elk-9.6.8/tests/test_035/PaxHeaders/TEST_705.OUT_0000644000000000000000000000013214626155522016011 xustar0030 mtime=1717099346.479999828 30 atime=1717099346.479999828 30 ctime=1717099346.479999828 elk-9.6.8/tests/test_035/TEST_705.OUT_0000644002504400250440000000010114626155522020523 0ustar00dewhurstdewhurst00000000000000'number of crystal symmetries' 1 1 1 6 elk-9.6.8/tests/test_035/PaxHeaders/TEST_900.OUT_0000644000000000000000000000013214626155522016006 xustar0030 mtime=1717099346.481999838 30 atime=1717099346.481999838 30 ctime=1717099346.481999838 elk-9.6.8/tests/test_035/TEST_900.OUT_0000644002504400250440000000007014626155522020525 0ustar00dewhurstdewhurst00000000000000'number of G-vectors' 1 1 1 330827 elk-9.6.8/tests/test_035/PaxHeaders/TEST_910.OUT_0000644000000000000000000000013214626155522016007 xustar0030 mtime=1717099346.483999849 30 atime=1717099346.483999849 30 ctime=1717099346.483999849 elk-9.6.8/tests/test_035/TEST_910.OUT_0000644002504400250440000000037114626155522020532 0ustar00dewhurstdewhurst00000000000000'k-points (Cartesian)' 2 6 0.100000000000E-07 1 0.00000000000 2 0.00000000000 3 0.00000000000 4 0.506538463806 5 -0.292450118433 6 0.00000000000 elk-9.6.8/tests/test_035/PaxHeaders/TEST_500.OUT_0000644000000000000000000000012714626155522016006 xustar0029 mtime=1717099346.48599986 29 atime=1717099346.48599986 29 ctime=1717099346.48599986 elk-9.6.8/tests/test_035/TEST_500.OUT_0000644002504400250440000000013514626155522020523 0ustar00dewhurstdewhurst00000000000000'DOS at Fermi energy' 2 1 0.500000000000E-02 1 93.9386231619 elk-9.6.8/tests/test_035/PaxHeaders/TEST_510.OUT_0000644000000000000000000000013214626155522016003 xustar0030 mtime=1717099346.487999871 30 atime=1717099346.487999871 30 ctime=1717099346.487999871 elk-9.6.8/tests/test_035/TEST_510.OUT_0000644002504400250440000000014514626155522020525 0ustar00dewhurstdewhurst00000000000000'estimated indirect band gap' 2 1 0.200000000000E-01 1 0.902071581665E-02 elk-9.6.8/tests/test_035/PaxHeaders/TEST_400.OUT_0000644000000000000000000000013214626155522016001 xustar0030 mtime=1717099346.489999882 30 atime=1717099346.489999882 30 ctime=1717099346.489999882 elk-9.6.8/tests/test_035/TEST_400.OUT_0000644002504400250440000000014114626155522020517 0ustar00dewhurstdewhurst00000000000000'calculated total charge' 2 1 0.100000000000E-05 1 283.953103044 elk-9.6.8/tests/test_035/PaxHeaders/TEST_450.OUT_0000644000000000000000000000013214626155522016006 xustar0030 mtime=1717099346.491999892 30 atime=1717099346.491999892 30 ctime=1717099346.491999892 elk-9.6.8/tests/test_035/TEST_450.OUT_0000644002504400250440000000014014626155522020523 0ustar00dewhurstdewhurst00000000000000'total moment magnitude' 2 1 0.100000000000E-02 1 0.343928551388E-22 elk-9.6.8/tests/test_035/PaxHeaders/TEST_000.OUT_0000644000000000000000000000013214626155522015775 xustar0030 mtime=1717099346.493999903 30 atime=1717099346.493999903 30 ctime=1717099346.493999903 elk-9.6.8/tests/test_035/TEST_000.OUT_0000644002504400250440000000012614626155522020516 0ustar00dewhurstdewhurst00000000000000'total energy' 2 1 0.100000000000E-04 1 -41690.8734281 elk-9.6.8/tests/test_035/PaxHeaders/elk.in0000644000000000000000000000013214626155522015212 xustar0030 mtime=1717099346.495999914 30 atime=1717099346.495999914 30 ctime=1717099346.495999914 elk-9.6.8/tests/test_035/elk.in0000644002504400250440000000121614626155522017734 0ustar00dewhurstdewhurst00000000000000 ! Electric field applied to WeS2 bilayers. tasks 0 500 test .true. maxscl 4 efieldc 0.0 0.0 0.04 dmaxefc 15.0 gmaxvr 20.0 spinorb .true. nempty 4 xctype 21 ngridk 2 2 1 swidth 0.01 avec 0.5 -0.866025403784 0.0 0.5 0.866025403784 0.0 0.0 0.0 3.0 scale 6.20208114106 scale3 3.94881170018 sppath '../../species/' atoms 2 'W.in' 2 -0.333333333333 0.333333333333 0.417 0.333333333333 -0.333333333333 0.583 'Se.in' 4 0.333333333333 -0.333333333333 0.3740 0.333333333333 -0.333333333333 0.4600 -0.333333333333 0.333333333333 0.5400 -0.333333333333 0.333333333333 0.6260 elk-9.6.8/tests/PaxHeaders/test_0240000644000000000000000000000013214626155522014030 xustar0030 mtime=1717099346.513000005 30 atime=1717099346.497999925 30 ctime=1717099346.513000005 elk-9.6.8/tests/test_024/0000755002504400250440000000000014626155522016627 5ustar00dewhurstdewhurst00000000000000elk-9.6.8/tests/test_024/PaxHeaders/TEST_705.OUT_0000644000000000000000000000013114626155522016006 xustar0030 mtime=1717099346.499999935 29 atime=1717099346.49899993 30 ctime=1717099346.499999935 elk-9.6.8/tests/test_024/TEST_705.OUT_0000644002504400250440000000010114626155522020521 0ustar00dewhurstdewhurst00000000000000'number of crystal symmetries' 1 1 1 2 elk-9.6.8/tests/test_024/PaxHeaders/TEST_900.OUT_0000644000000000000000000000013214626155522016004 xustar0030 mtime=1717099346.501999946 30 atime=1717099346.500999941 30 ctime=1717099346.501999946 elk-9.6.8/tests/test_024/TEST_900.OUT_0000644002504400250440000000007014626155522020523 0ustar00dewhurstdewhurst00000000000000'number of G-vectors' 1 1 1 22257 elk-9.6.8/tests/test_024/PaxHeaders/TEST_910.OUT_0000644000000000000000000000013214626155522016005 xustar0030 mtime=1717099346.503999957 30 atime=1717099346.502999952 30 ctime=1717099346.503999957 elk-9.6.8/tests/test_024/TEST_910.OUT_0000644002504400250440000000052614626155522020532 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-9.6.8/tests/test_024/PaxHeaders/elk.in0000644000000000000000000000013214626155522015210 xustar0030 mtime=1717099346.505999968 30 atime=1717099346.504999962 30 ctime=1717099346.505999968 elk-9.6.8/tests/test_024/elk.in0000644002504400250440000000100514626155522017726 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-9.6.8/tests/test_024/PaxHeaders/TEST_500.OUT_0000644000000000000000000000013214626155522016000 xustar0030 mtime=1717099346.507999979 30 atime=1717099346.506999973 30 ctime=1717099346.507999979 elk-9.6.8/tests/test_024/TEST_500.OUT_0000644002504400250440000000013514626155522020521 0ustar00dewhurstdewhurst00000000000000'DOS at Fermi energy' 2 1 0.500000000000E-02 1 0.551687336395E-11 elk-9.6.8/tests/test_024/PaxHeaders/TEST_510.OUT_0000644000000000000000000000013214626155522016001 xustar0030 mtime=1717099346.509999989 30 atime=1717099346.508999984 30 ctime=1717099346.509999989 elk-9.6.8/tests/test_024/TEST_510.OUT_0000644002504400250440000000014514626155522020523 0ustar00dewhurstdewhurst00000000000000'estimated indirect band gap' 2 1 0.200000000000E-01 1 0.287221680212 elk-9.6.8/tests/test_024/PaxHeaders/TEST_400.OUT_0000644000000000000000000000011614626155522016001 xustar0024 mtime=1717099346.512 30 atime=1717099346.510999995 24 ctime=1717099346.512 elk-9.6.8/tests/test_024/TEST_400.OUT_0000644002504400250440000000014114626155522020515 0ustar00dewhurstdewhurst00000000000000'calculated total charge' 2 1 0.100000000000E-05 1 89.9132297484 elk-9.6.8/tests/test_024/PaxHeaders/TEST_000.OUT_0000644000000000000000000000013214626155522015773 xustar0030 mtime=1717099346.513000005 30 atime=1717099346.513000005 30 ctime=1717099346.513000005 elk-9.6.8/tests/test_024/TEST_000.OUT_0000644002504400250440000000012614626155522020514 0ustar00dewhurstdewhurst00000000000000'total energy' 2 1 0.100000000000E-04 1 -1334.11020656 elk-9.6.8/tests/PaxHeaders/test_0260000644000000000000000000000013214626155522014032 xustar0030 mtime=1717099346.537000135 30 atime=1717099346.515000016 30 ctime=1717099346.537000135 elk-9.6.8/tests/test_026/0000755002504400250440000000000014626155522016631 5ustar00dewhurstdewhurst00000000000000elk-9.6.8/tests/test_026/PaxHeaders/TEST_705.OUT_0000644000000000000000000000013214626155522016011 xustar0030 mtime=1717099346.517000027 30 atime=1717099346.517000027 30 ctime=1717099346.517000027 elk-9.6.8/tests/test_026/TEST_705.OUT_0000644002504400250440000000010114626155522020523 0ustar00dewhurstdewhurst00000000000000'number of crystal symmetries' 1 1 1 48 elk-9.6.8/tests/test_026/PaxHeaders/TEST_900.OUT_0000644000000000000000000000013214626155522016006 xustar0030 mtime=1717099346.519000038 30 atime=1717099346.519000038 30 ctime=1717099346.519000038 elk-9.6.8/tests/test_026/TEST_900.OUT_0000644002504400250440000000007014626155522020525 0ustar00dewhurstdewhurst00000000000000'number of G-vectors' 1 1 1 2109 elk-9.6.8/tests/test_026/PaxHeaders/TEST_910.OUT_0000644000000000000000000000013214626155522016007 xustar0030 mtime=1717099346.521000049 30 atime=1717099346.521000049 30 ctime=1717099346.521000049 elk-9.6.8/tests/test_026/TEST_910.OUT_0000644002504400250440000000531014626155522020530 0ustar00dewhurstdewhurst00000000000000'k-points (Cartesian)' 2 87 0.100000000000E-07 1 0.00000000000 2 0.00000000000 3 0.00000000000 4 0.118211644100 5 0.118211644100 6 -0.118211644100 7 0.236423288199 8 0.236423288199 9 -0.236423288199 10 0.354634932299 11 0.354634932299 12 -0.354634932299 13 0.472846576398 14 0.472846576398 15 -0.472846576398 16 0.236423288199 17 0.00000000000 18 0.00000000000 19 0.354634932299 20 0.118211644100 21 -0.118211644100 22 0.472846576398 23 0.236423288199 24 -0.236423288199 25 0.591058220498 26 0.354634932299 27 -0.354634932299 28 0.709269864597 29 0.472846576398 30 -0.472846576398 31 0.827481508697 32 0.591058220498 33 -0.591058220498 34 0.945693152796 35 0.709269864597 36 -0.709269864597 37 0.472846576398 38 0.00000000000 39 0.00000000000 40 0.591058220498 41 0.118211644100 42 -0.118211644100 43 0.709269864597 44 0.236423288199 45 -0.236423288199 46 0.827481508697 47 0.354634932299 48 -0.354634932299 49 0.945693152796 50 0.472846576398 51 -0.472846576398 52 0.709269864597 53 0.138777878078E-16 54 -0.138777878078E-16 55 0.827481508697 56 0.118211644100 57 -0.118211644100 58 0.945693152796 59 0.236423288199 60 -0.236423288199 61 0.945693152796 62 0.00000000000 63 0.00000000000 64 0.472846576398 65 0.236423288199 66 0.00000000000 67 0.591058220498 68 0.354634932299 69 -0.118211644100 70 0.709269864597 71 0.472846576398 72 -0.236423288199 73 0.709269864597 74 0.236423288199 75 -0.138777878078E-16 76 0.827481508697 77 0.354634932299 78 -0.118211644100 79 0.945693152796 80 0.472846576398 81 -0.236423288199 82 0.945693152796 83 0.236423288199 84 0.00000000000 85 0.945693152796 86 0.472846576398 87 0.00000000000 elk-9.6.8/tests/test_026/PaxHeaders/TEST_500.OUT_0000644000000000000000000000013214626155522016002 xustar0030 mtime=1717099346.523000059 30 atime=1717099346.523000059 30 ctime=1717099346.523000059 elk-9.6.8/tests/test_026/TEST_500.OUT_0000644002504400250440000000013514626155522020523 0ustar00dewhurstdewhurst00000000000000'DOS at Fermi energy' 2 1 0.500000000000E-02 1 50.8032293605 elk-9.6.8/tests/test_026/PaxHeaders/TEST_510.OUT_0000644000000000000000000000012714626155522016007 xustar0029 mtime=1717099346.52500007 29 atime=1717099346.52500007 29 ctime=1717099346.52500007 elk-9.6.8/tests/test_026/TEST_510.OUT_0000644002504400250440000000014514626155522020525 0ustar00dewhurstdewhurst00000000000000'estimated indirect band gap' 2 1 0.200000000000E-01 1 0.137844901758E-02 elk-9.6.8/tests/test_026/PaxHeaders/TEST_400.OUT_0000644000000000000000000000013214626155522016001 xustar0030 mtime=1717099346.527000081 30 atime=1717099346.527000081 30 ctime=1717099346.527000081 elk-9.6.8/tests/test_026/TEST_400.OUT_0000644002504400250440000000014114626155522020517 0ustar00dewhurstdewhurst00000000000000'calculated total charge' 2 1 0.100000000000E-05 1 27.9938370153 elk-9.6.8/tests/test_026/PaxHeaders/TEST_450.OUT_0000644000000000000000000000013214626155522016006 xustar0030 mtime=1717099346.529000092 30 atime=1717099346.529000092 30 ctime=1717099346.529000092 elk-9.6.8/tests/test_026/TEST_450.OUT_0000644002504400250440000000014014626155522020523 0ustar00dewhurstdewhurst00000000000000'total moment magnitude' 2 1 0.100000000000E-02 1 0.698965619590 elk-9.6.8/tests/test_026/PaxHeaders/TEST_000.OUT_0000644000000000000000000000013214626155522015775 xustar0030 mtime=1717099346.531000103 30 atime=1717099346.531000103 30 ctime=1717099346.531000103 elk-9.6.8/tests/test_026/TEST_000.OUT_0000644002504400250440000000012614626155522020516 0ustar00dewhurstdewhurst00000000000000'total energy' 2 1 0.100000000000E-04 1 -1518.39244484 elk-9.6.8/tests/test_026/PaxHeaders/TEST_170.OUT_0000644000000000000000000000013214626155522016005 xustar0030 mtime=1717099346.533000113 30 atime=1717099346.533000113 30 ctime=1717099346.533000113 elk-9.6.8/tests/test_026/TEST_170.OUT_0000644002504400250440000000516014626155522020531 0ustar00dewhurstdewhurst00000000000000'electron momentum density' 2 84 0.100000000000E-03 1 0.628155227109 2 0.152156326404 3 0.628155078283 4 0.398370943223 5 0.152153804938 6 0.398370955229 7 0.228536907203 8 0.628155009213 9 0.228536028498 10 0.228538242656 11 0.113953004154 12 0.228534890343 13 0.628155022653 14 0.398370956842 15 0.182033938887 16 0.597159086839E-01 17 0.182033929796 18 0.426971880524E-01 19 0.228534654176 20 0.946583126009E-01 21 0.228538177484 22 0.597162837918E-01 23 0.956073707246E-01 24 0.152155558351 25 0.398370950340 26 0.946598474232E-01 27 0.152154386837 28 0.597167217745E-01 29 0.152153860479 30 0.392638016315E-01 31 0.496020841428E-01 32 0.113953006332 33 0.781273769120E-01 34 0.946580464962E-01 35 0.496018489285E-01 36 0.388402053272E-01 37 0.388410035525E-01 38 0.113953014596 39 0.228536931038 40 0.152156133512 41 0.956073718446E-01 42 0.956073691258E-01 43 0.182033931042 44 0.392637251948E-01 45 0.182033947103 46 0.946600267928E-01 47 0.228536091377 48 0.597154319108E-01 49 0.781273783036E-01 50 0.152154485279 51 0.496021330475E-01 52 0.496017171916E-01 53 0.152155721428 54 0.946582817378E-01 55 0.946597655292E-01 56 0.392641108245E-01 57 0.781273751618E-01 58 0.113953014983 59 0.392634285343E-01 60 0.946580495171E-01 61 0.426971978642E-01 62 0.388409815711E-01 63 0.496017574796E-01 64 0.496020626659E-01 65 0.426971937545E-01 66 0.388402097774E-01 67 0.597154381144E-01 68 0.946600670819E-01 69 0.597167481602E-01 70 0.392641018015E-01 71 0.388409728531E-01 72 0.426971955346E-01 73 0.388402148476E-01 74 0.392634118442E-01 75 0.781273755063E-01 76 0.597158342041E-01 77 0.597163126358E-01 78 0.956073629729E-01 79 0.388402235737E-01 80 0.496021664533E-01 81 0.496017345445E-01 82 0.388409952477E-01 83 0.392637943868E-01 84 0.392637323771E-01 elk-9.6.8/tests/test_026/PaxHeaders/TEST_171.OUT_0000644000000000000000000000013214626155522016006 xustar0030 mtime=1717099346.535000124 30 atime=1717099346.535000124 30 ctime=1717099346.535000124 elk-9.6.8/tests/test_026/TEST_171.OUT_0000644002504400250440000000573114626155522020536 0ustar00dewhurstdewhurst00000000000000'integrated EMD' 2 96 0.100000000000E-03 1 0.220450188966E-01 2 0.632822736079E-01 3 0.101418092319 4 0.134024627071 5 0.165793396471 6 0.196798804493 7 0.228647537225 8 0.259312813369 9 0.286260427901 10 0.310402684616 11 0.336895491263 12 0.366555334169 13 0.399440404884 14 0.433417190825 15 0.470217953828 16 0.516556624979 17 0.571068771624 18 0.631663657141 19 0.698729761839 20 0.775592035969 21 0.859946485672 22 0.946926754507 23 1.03539601073 24 1.11971033387 25 1.20491933051 26 1.29394257517 27 1.38907919300 28 1.48575766088 29 1.57748264892 30 1.64724954945 31 1.71426855245 32 1.78646037952 33 1.87576582484 34 1.97764164151 35 2.07410414027 36 2.16699884633 37 2.28049745166 38 2.47844706528 39 2.74661558258 40 3.05487156133 41 3.32859093939 42 3.58952255163 43 3.82725393856 44 3.97780905522 45 4.09759777493 46 4.18996578277 47 4.27143765666 48 4.35528864360 49 4.35528864164 50 4.27143757287 51 4.18996515294 52 4.09759636393 53 3.97780768401 54 3.82725359914 55 3.58952261387 56 3.32859110107 57 3.05487190477 58 2.74661572596 59 2.47844713270 60 2.28049743066 61 2.16699888121 62 2.07410410363 63 1.97764169035 64 1.87576593162 65 1.78646046204 66 1.71426820927 67 1.64724935190 68 1.57748260763 69 1.48575819972 70 1.38908198614 71 1.29394805204 72 1.20492212250 73 1.11971117362 74 1.03539655484 75 0.946927610026 76 0.859947095566 77 0.775592026835 78 0.698729689588 79 0.631663547668 80 0.571068706503 81 0.516556590277 82 0.470217955946 83 0.433417200063 84 0.399440416189 85 0.366555354474 86 0.336895510023 87 0.310402713165 88 0.286260327368 89 0.259312499939 90 0.228647226555 91 0.196798669159 92 0.165793249132 93 0.134024303954 94 0.101417771795 95 0.632821322910E-01 96 0.220449912645E-01 elk-9.6.8/tests/test_026/PaxHeaders/elk.in0000644000000000000000000000013214626155522015212 xustar0030 mtime=1717099346.537000135 30 atime=1717099346.537000135 30 ctime=1717099346.537000135 elk-9.6.8/tests/test_026/elk.in0000644002504400250440000000104414626155522017733 0ustar00dewhurstdewhurst00000000000000 ! Twice-integrated electron momentum density (EMD) plot for ferromagnetic Ni. tasks 0 170 171 500 test .true. plot1d 2 10 0.0 0.0 0.0 1.0 1.0 0.0 hkmax 4.d0 ngridk 8 8 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.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-9.6.8/tests/PaxHeaders/test_0300000644000000000000000000000013214626155522014025 xustar0030 mtime=1717099346.560000259 30 atime=1717099346.539000146 30 ctime=1717099346.560000259 elk-9.6.8/tests/test_030/0000755002504400250440000000000014626155522016624 5ustar00dewhurstdewhurst00000000000000elk-9.6.8/tests/test_030/PaxHeaders/TEST_910.OUT_0000644000000000000000000000013214626155522016002 xustar0030 mtime=1717099346.541000156 30 atime=1717099346.540000151 30 ctime=1717099346.541000156 elk-9.6.8/tests/test_030/TEST_910.OUT_0000644002504400250440000000331114626155522020522 0ustar00dewhurstdewhurst00000000000000'k-points (Cartesian)' 2 54 0.100000000000E-07 1 0.00000000000 2 0.00000000000 3 0.00000000000 4 0.192059413696 5 0.192059413696 6 -0.192059413696 7 0.384118827392 8 0.384118827392 9 -0.384118827392 10 0.576178241088 11 0.576178241088 12 -0.576178241088 13 0.384118827392 14 0.00000000000 15 0.00000000000 16 0.576178241088 17 0.192059413696 18 -0.192059413696 19 0.768237654784 20 0.384118827392 21 -0.384118827392 22 0.576178241088 23 -0.192059413696 24 0.192059413696 25 0.768237654784 26 0.00000000000 27 0.00000000000 28 0.768237654784 29 -0.384118827392 30 0.384118827392 31 0.00000000000 32 0.00000000000 33 0.384118827392 34 0.384118827392 35 0.384118827392 36 0.00000000000 37 0.576178241088 38 0.576178241088 39 -0.192059413696 40 0.768237654784 41 0.384118827392 42 0.00000000000 43 0.768237654784 44 -0.277555756156E-16 45 0.384118827392 46 0.00000000000 47 0.00000000000 48 0.768237654784 49 0.576178241088 50 0.576178241088 51 0.192059413696 52 0.277555756156E-16 53 -0.277555756156E-16 54 1.15235648218 elk-9.6.8/tests/test_030/PaxHeaders/TEST_705.OUT_0000644000000000000000000000013214626155522016004 xustar0030 mtime=1717099346.543000167 30 atime=1717099346.542000162 30 ctime=1717099346.543000167 elk-9.6.8/tests/test_030/TEST_705.OUT_0000644002504400250440000000010114626155522020516 0ustar00dewhurstdewhurst00000000000000'number of crystal symmetries' 1 1 1 8 elk-9.6.8/tests/test_030/PaxHeaders/TEST_900.OUT_0000644000000000000000000000013214626155522016001 xustar0030 mtime=1717099346.545000178 30 atime=1717099346.544000173 30 ctime=1717099346.545000178 elk-9.6.8/tests/test_030/TEST_900.OUT_0000644002504400250440000000007014626155522020520 0ustar00dewhurstdewhurst00000000000000'number of G-vectors' 1 1 1 3943 elk-9.6.8/tests/test_030/PaxHeaders/TEST_500.OUT_0000644000000000000000000000013214626155522015775 xustar0030 mtime=1717099346.547000189 30 atime=1717099346.546000183 30 ctime=1717099346.547000189 elk-9.6.8/tests/test_030/TEST_500.OUT_0000644002504400250440000000013514626155522020516 0ustar00dewhurstdewhurst00000000000000'DOS at Fermi energy' 2 1 0.500000000000E-02 1 76.5199307682 elk-9.6.8/tests/test_030/PaxHeaders/TEST_510.OUT_0000644000000000000000000000013214626155522015776 xustar0030 mtime=1717099346.549000199 30 atime=1717099346.548000194 30 ctime=1717099346.549000199 elk-9.6.8/tests/test_030/TEST_510.OUT_0000644002504400250440000000014514626155522020520 0ustar00dewhurstdewhurst00000000000000'estimated indirect band gap' 2 1 0.200000000000E-01 1 0.196786382869E-02 elk-9.6.8/tests/test_030/PaxHeaders/TEST_400.OUT_0000644000000000000000000000013014626155522015772 xustar0029 mtime=1717099346.55100021 30 atime=1717099346.550000205 29 ctime=1717099346.55100021 elk-9.6.8/tests/test_030/TEST_400.OUT_0000644002504400250440000000014114626155522020512 0ustar00dewhurstdewhurst00000000000000'calculated total charge' 2 1 0.100000000000E-05 1 28.0028447594 elk-9.6.8/tests/test_030/PaxHeaders/TEST_800.OUT_0000644000000000000000000000013214626155522016000 xustar0030 mtime=1717099346.553000221 30 atime=1717099346.552000216 30 ctime=1717099346.553000221 elk-9.6.8/tests/test_030/TEST_800.OUT_0000644002504400250440000000014414626155522020521 0ustar00dewhurstdewhurst00000000000000'DFT+U energy for each atom' 2 1 0.100000000000E-03 1 0.160964472194E-01 elk-9.6.8/tests/test_030/PaxHeaders/TEST_810.OUT_0000644000000000000000000000013214626155522016001 xustar0030 mtime=1717099346.555000232 30 atime=1717099346.554000226 30 ctime=1717099346.555000232 elk-9.6.8/tests/test_030/TEST_810.OUT_0000644002504400250440000000017314626155522020524 0ustar00dewhurstdewhurst00000000000000'U and J parameters' 2 2 0.100000000000E-03 1 0.183000000000 2 0.349119670000E-01 elk-9.6.8/tests/test_030/PaxHeaders/TEST_000.OUT_0000644000000000000000000000013214626155522015770 xustar0030 mtime=1717099346.557000242 30 atime=1717099346.556000237 30 ctime=1717099346.557000242 elk-9.6.8/tests/test_030/TEST_000.OUT_0000644002504400250440000000012614626155522020511 0ustar00dewhurstdewhurst00000000000000'total energy' 2 1 0.100000000000E-04 1 -884.069609247 elk-9.6.8/tests/test_030/PaxHeaders/TEST_460.OUT_0000644000000000000000000000013214626155522016002 xustar0030 mtime=1717099346.559000253 30 atime=1717099346.558000248 30 ctime=1717099346.559000253 elk-9.6.8/tests/test_030/TEST_460.OUT_0000644002504400250440000000024714626155522020527 0ustar00dewhurstdewhurst00000000000000'total current of last time step' 2 3 0.500000000000E-03 1 0.00000000000 2 -0.346944695195E-17 3 -0.722975536625E-01 elk-9.6.8/tests/test_030/PaxHeaders/elk.in0000644000000000000000000000013214626155522015205 xustar0030 mtime=1717099346.561000264 30 atime=1717099346.560000259 30 ctime=1717099346.561000264 elk-9.6.8/tests/test_030/elk.in0000644002504400250440000000114614626155522017731 0ustar00dewhurstdewhurst00000000000000 ! Spin-unpolarised TDDFT+U time evolution test tasks 0 450 460 500 test .true. dft+u 1 1 1 2 0.183 0.034911967 tshift .false. rgkmax 7.5 epspot 1.d-7 ngridk 4 4 4 nempty 8 tstime 40.0 dtimes 0.2 pulse 1 0.0 0.0 250.0 0.03 0.0 0.0 20.0 10.0 ntswrite 0 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 elk-9.6.8/tests/PaxHeaders/test_0320000644000000000000000000000013114626155522014026 xustar0030 mtime=1717099346.581000372 29 atime=1717099346.56200027 30 ctime=1717099346.581000372 elk-9.6.8/tests/test_032/0000755002504400250440000000000014626155522016626 5ustar00dewhurstdewhurst00000000000000elk-9.6.8/tests/test_032/PaxHeaders/TEST_028.OUT_0000644000000000000000000000013014626155522016002 xustar0029 mtime=1717099346.56400028 30 atime=1717099346.563000275 29 ctime=1717099346.56400028 elk-9.6.8/tests/test_032/TEST_028.OUT_0000644002504400250440000000014414626155522020525 0ustar00dewhurstdewhurst00000000000000'magnetic anisotropy energy' 2 1 0.100000000000E-04 1 0.155565403475E-04 elk-9.6.8/tests/test_032/PaxHeaders/TEST_705.OUT_0000644000000000000000000000013214626155522016006 xustar0030 mtime=1717099346.566000291 30 atime=1717099346.566000291 30 ctime=1717099346.566000291 elk-9.6.8/tests/test_032/TEST_705.OUT_0000644002504400250440000000010114626155522020520 0ustar00dewhurstdewhurst00000000000000'number of crystal symmetries' 1 1 1 4 elk-9.6.8/tests/test_032/PaxHeaders/TEST_900.OUT_0000644000000000000000000000013214626155522016003 xustar0030 mtime=1717099346.568000302 30 atime=1717099346.568000302 30 ctime=1717099346.568000302 elk-9.6.8/tests/test_032/TEST_900.OUT_0000644002504400250440000000007014626155522020522 0ustar00dewhurstdewhurst00000000000000'number of G-vectors' 1 1 1 4735 elk-9.6.8/tests/test_032/PaxHeaders/TEST_910.OUT_0000644000000000000000000000013214626155522016004 xustar0030 mtime=1717099346.570000313 30 atime=1717099346.570000313 30 ctime=1717099346.570000313 elk-9.6.8/tests/test_032/TEST_910.OUT_0000644002504400250440000000544514626155522020536 0ustar00dewhurstdewhurst00000000000000'k-points (Cartesian)' 2 90 0.100000000000E-07 1 0.00000000000 2 0.00000000000 3 0.00000000000 4 0.461998919646 5 0.00000000000 6 0.00000000000 7 0.923997839291 8 0.00000000000 9 0.00000000000 10 -0.230999459823 11 0.230999459823 12 0.00000000000 13 0.230999459823 14 0.230999459823 15 0.00000000000 16 0.692998379468 17 0.230999459823 18 0.00000000000 19 1.15499729911 20 0.230999459823 21 0.00000000000 22 -0.461998919646 23 0.461998919646 24 0.00000000000 25 0.00000000000 26 0.461998919646 27 0.00000000000 28 0.461998919646 29 0.461998919646 30 0.00000000000 31 0.00000000000 32 0.00000000000 33 0.224399475256 34 0.461998919646 35 0.00000000000 36 0.224399475256 37 0.923997839291 38 0.00000000000 39 0.224399475256 40 -0.230999459823 41 0.230999459823 42 0.224399475256 43 0.230999459823 44 0.230999459823 45 0.224399475256 46 0.692998379468 47 0.230999459823 48 0.224399475256 49 1.15499729911 50 0.230999459823 51 0.224399475256 52 -0.461998919646 53 0.461998919646 54 0.224399475256 55 0.00000000000 56 0.461998919646 57 0.224399475256 58 0.461998919646 59 0.461998919646 60 0.224399475256 61 0.00000000000 62 0.00000000000 63 0.448798950513 64 0.461998919646 65 0.00000000000 66 0.448798950513 67 0.923997839291 68 0.00000000000 69 0.448798950513 70 -0.230999459823 71 0.230999459823 72 0.448798950513 73 0.230999459823 74 0.230999459823 75 0.448798950513 76 0.692998379468 77 0.230999459823 78 0.448798950513 79 1.15499729911 80 0.230999459823 81 0.448798950513 82 -0.461998919646 83 0.461998919646 84 0.448798950513 85 0.00000000000 86 0.461998919646 87 0.448798950513 88 0.461998919646 89 0.461998919646 90 0.448798950513 elk-9.6.8/tests/test_032/PaxHeaders/TEST_500.OUT_0000644000000000000000000000013214626155522015777 xustar0030 mtime=1717099346.572000323 30 atime=1717099346.572000323 30 ctime=1717099346.572000323 elk-9.6.8/tests/test_032/TEST_500.OUT_0000644002504400250440000000013514626155522020520 0ustar00dewhurstdewhurst00000000000000'DOS at Fermi energy' 2 1 0.500000000000E-02 1 94.7399972950 elk-9.6.8/tests/test_032/PaxHeaders/TEST_510.OUT_0000644000000000000000000000013214626155522016000 xustar0030 mtime=1717099346.574000334 30 atime=1717099346.574000334 30 ctime=1717099346.574000334 elk-9.6.8/tests/test_032/TEST_510.OUT_0000644002504400250440000000014514626155522020522 0ustar00dewhurstdewhurst00000000000000'estimated indirect band gap' 2 1 0.200000000000E-01 1 0.355211920181E-03 elk-9.6.8/tests/test_032/PaxHeaders/TEST_400.OUT_0000644000000000000000000000013214626155522015776 xustar0030 mtime=1717099346.576000345 30 atime=1717099346.576000345 30 ctime=1717099346.576000345 elk-9.6.8/tests/test_032/TEST_400.OUT_0000644002504400250440000000014114626155522020514 0ustar00dewhurstdewhurst00000000000000'calculated total charge' 2 1 0.100000000000E-05 1 52.9928739538 elk-9.6.8/tests/test_032/PaxHeaders/TEST_450.OUT_0000644000000000000000000000013214626155522016003 xustar0030 mtime=1717099346.578000356 30 atime=1717099346.578000356 30 ctime=1717099346.578000356 elk-9.6.8/tests/test_032/TEST_450.OUT_0000644002504400250440000000014014626155522020520 0ustar00dewhurstdewhurst00000000000000'total moment magnitude' 2 1 0.100000000000E-02 1 3.19534484024 elk-9.6.8/tests/test_032/PaxHeaders/TEST_000.OUT_0000644000000000000000000000013214626155522015772 xustar0030 mtime=1717099346.580000366 30 atime=1717099346.580000366 30 ctime=1717099346.580000366 elk-9.6.8/tests/test_032/TEST_000.OUT_0000644002504400250440000000012614626155522020513 0ustar00dewhurstdewhurst00000000000000'total energy' 2 1 0.100000000000E-04 1 -2661.73430227 elk-9.6.8/tests/test_032/PaxHeaders/elk.in0000644000000000000000000000013214626155522015207 xustar0030 mtime=1717099346.582000377 30 atime=1717099346.582000377 30 ctime=1717099346.582000377 elk-9.6.8/tests/test_032/elk.in0000644002504400250440000000122614626155522017732 0ustar00dewhurstdewhurst00000000000000 ! Test 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. tasks 28 500 test .true. 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-9.6.8/tests/PaxHeaders/test_0220000644000000000000000000000013214626155522014026 xustar0030 mtime=1717099346.605000501 30 atime=1717099346.583000383 30 ctime=1717099346.605000501 elk-9.6.8/tests/test_022/0000755002504400250440000000000014626155522016625 5ustar00dewhurstdewhurst00000000000000elk-9.6.8/tests/test_022/PaxHeaders/elk.in0000644000000000000000000000013214626155522015206 xustar0030 mtime=1717099346.585000393 30 atime=1717099346.585000393 30 ctime=1717099346.585000393 elk-9.6.8/tests/test_022/elk.in0000644002504400250440000000110514626155522017725 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-9.6.8/tests/test_022/PaxHeaders/TEST_330.OUT_0000644000000000000000000000013214626155522015777 xustar0030 mtime=1717099346.587000404 30 atime=1717099346.587000404 30 ctime=1717099346.587000404 elk-9.6.8/tests/test_022/TEST_330.OUT_0000644002504400250440000000626314626155522020530 0ustar00dewhurstdewhurst00000000000000'transverse response function' 3 60 0.100000000000E-01 1 0.996575344454 -0.469416043871E-01 2 0.983388984402 -0.497241521626E-01 3 0.971173142720 -0.523158405753E-01 4 0.959250474657 -0.539796564760E-01 5 0.946498547284 -0.552510254986E-01 6 0.932993164173 -0.573236050640E-01 7 0.919464661198 -0.606748700433E-01 8 0.906439034547 -0.655764407592E-01 9 0.895164057964 -0.724962075583E-01 10 0.887963066039 -0.801900928285E-01 11 0.884886592900 -0.847013074615E-01 12 0.881833101375 -0.844519440085E-01 13 0.877005405969 -0.820249375283E-01 14 0.871217096345 -0.777112322168E-01 15 0.862758032720 -0.711724930958E-01 16 0.850488025025 -0.647989827911E-01 17 0.835691536497 -0.604362872532E-01 18 0.819734898970 -0.583241922929E-01 19 0.803284390988 -0.582752465584E-01 20 0.786661188847 -0.602703160407E-01 21 0.770222747708 -0.645635660110E-01 22 0.754747661288 -0.715804765232E-01 23 0.741873314705 -0.813887473841E-01 24 0.733788813809 -0.922299349154E-01 25 0.730236367787 -0.100060797432 26 0.727223210245 -0.103100347043 27 0.721989004536 -0.103024672603 28 0.712973829766 -0.101696390410 29 0.699619874997 -0.102598681667 30 0.684514754254 -0.108773779235 31 0.671131273152 -0.120756503038 32 0.662669648769 -0.137869852450 33 0.662700727158 -0.157643785825 34 0.673290036190 -0.175171287461 35 0.694352030304 -0.183283112817 36 0.717440287586 -0.173011357736 37 0.726975130991 -0.148579645749 38 0.720122819192 -0.124504412495 39 0.704018140592 -0.108193183920 40 0.684882976204 -0.100282931355 41 0.666526664205 -0.995679208485E-01 42 0.651925265187 -0.104187743544 43 0.643040179964 -0.110584675182 44 0.638471384734 -0.114553811922 45 0.634301046100 -0.115228261179 46 0.629023670868 -0.114934431310 47 0.623552880135 -0.114401325073 48 0.617582706605 -0.113393187276 49 0.611239571784 -0.112813542818 50 0.605610630397 -0.111895750867 51 0.599069490266 -0.109462385321 52 0.590239214934 -0.107556647214 53 0.580702111235 -0.107784746690 54 0.571985946673 -0.109490879421 55 0.563950959933 -0.111737510923 56 0.556465044944 -0.115143976053 57 0.551437579756 -0.119348991216 58 0.548604392139 -0.121128099269 59 0.544147622274 -0.120217936883 60 0.537116623966 -0.120062613643 elk-9.6.8/tests/test_022/PaxHeaders/TEST_400.OUT_0000644000000000000000000000013214626155522015775 xustar0030 mtime=1717099346.589000415 30 atime=1717099346.589000415 30 ctime=1717099346.589000415 elk-9.6.8/tests/test_022/TEST_400.OUT_0000644002504400250440000000014114626155522020513 0ustar00dewhurstdewhurst00000000000000'calculated total charge' 2 1 0.100000000000E-05 1 27.9937748968 elk-9.6.8/tests/test_022/PaxHeaders/TEST_450.OUT_0000644000000000000000000000013214626155522016002 xustar0030 mtime=1717099346.591000426 30 atime=1717099346.591000426 30 ctime=1717099346.591000426 elk-9.6.8/tests/test_022/TEST_450.OUT_0000644002504400250440000000014014626155522020517 0ustar00dewhurstdewhurst00000000000000'total moment magnitude' 2 1 0.100000000000E-02 1 0.721296356516 elk-9.6.8/tests/test_022/PaxHeaders/TEST_000.OUT_0000644000000000000000000000013214626155522015771 xustar0030 mtime=1717099346.593000437 30 atime=1717099346.593000437 30 ctime=1717099346.593000437 elk-9.6.8/tests/test_022/TEST_000.OUT_0000644002504400250440000000012614626155522020512 0ustar00dewhurstdewhurst00000000000000'total energy' 2 1 0.100000000000E-04 1 -1518.39249446 elk-9.6.8/tests/test_022/PaxHeaders/TEST_800.OUT_0000644000000000000000000000013214626155522016001 xustar0030 mtime=1717099346.596000453 30 atime=1717099346.595000447 30 ctime=1717099346.596000453 elk-9.6.8/tests/test_022/TEST_800.OUT_0000644002504400250440000000301014626155522020515 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-9.6.8/tests/test_022/PaxHeaders/TEST_500.OUT_0000644000000000000000000000013214626155522015776 xustar0030 mtime=1717099346.598000463 30 atime=1717099346.597000458 30 ctime=1717099346.598000463 elk-9.6.8/tests/test_022/TEST_500.OUT_0000644002504400250440000000013514626155522020517 0ustar00dewhurstdewhurst00000000000000'DOS at Fermi energy' 2 1 0.500000000000E-02 1 52.6834232497 elk-9.6.8/tests/test_022/PaxHeaders/TEST_510.OUT_0000644000000000000000000000013214626155522015777 xustar0030 mtime=1717099346.599000469 30 atime=1717099346.599000469 30 ctime=1717099346.599000469 elk-9.6.8/tests/test_022/TEST_510.OUT_0000644002504400250440000000014514626155522020521 0ustar00dewhurstdewhurst00000000000000'estimated indirect band gap' 2 1 0.200000000000E-01 1 0.728570619425E-03 elk-9.6.8/tests/test_022/PaxHeaders/TEST_705.OUT_0000644000000000000000000000013114626155522016004 xustar0030 mtime=1717099346.602000485 29 atime=1717099346.60100048 30 ctime=1717099346.602000485 elk-9.6.8/tests/test_022/TEST_705.OUT_0000644002504400250440000000010114626155522020517 0ustar00dewhurstdewhurst00000000000000'number of crystal symmetries' 1 1 1 48 elk-9.6.8/tests/test_022/PaxHeaders/TEST_900.OUT_0000644000000000000000000000013114626155522016001 xustar0030 mtime=1717099346.604000496 29 atime=1717099346.60300049 30 ctime=1717099346.604000496 elk-9.6.8/tests/test_022/TEST_900.OUT_0000644002504400250440000000007014626155522020521 0ustar00dewhurstdewhurst00000000000000'number of G-vectors' 1 1 1 2109 elk-9.6.8/tests/test_022/PaxHeaders/TEST_910.OUT_0000644000000000000000000000013214626155522016003 xustar0030 mtime=1717099346.606000507 30 atime=1717099346.605000501 30 ctime=1717099346.606000507 elk-9.6.8/tests/test_022/TEST_910.OUT_0000644002504400250440000001052214626155522020525 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.215763098199E-16 69 0.215763098199E-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.385437305256E-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.308963289789E-17 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.246659427177E-16 133 0.754736973835 134 0.377368486918 135 0.770874610511E-16 136 0.849079095565 137 0.471710608647 138 -0.943421217294E-01 139 0.943421217294 140 0.377368486918 141 0.493318854355E-16 elk-9.6.8/tests/PaxHeaders/test_0340000644000000000000000000000013014626155522014027 xustar0029 mtime=1717099346.62700062 30 atime=1717099346.607000512 29 ctime=1717099346.62700062 elk-9.6.8/tests/test_034/0000755002504400250440000000000014626155522016630 5ustar00dewhurstdewhurst00000000000000elk-9.6.8/tests/test_034/PaxHeaders/TEST_510.OUT_0000644000000000000000000000013214626155522016002 xustar0030 mtime=1717099346.609000523 30 atime=1717099346.609000523 30 ctime=1717099346.609000523 elk-9.6.8/tests/test_034/TEST_510.OUT_0000644002504400250440000000014514626155522020524 0ustar00dewhurstdewhurst00000000000000'estimated indirect band gap' 2 1 0.200000000000E-01 1 0.125664514483 elk-9.6.8/tests/test_034/PaxHeaders/TEST_400.OUT_0000644000000000000000000000013214626155522016000 xustar0030 mtime=1717099346.612000539 30 atime=1717099346.611000533 30 ctime=1717099346.612000539 elk-9.6.8/tests/test_034/TEST_400.OUT_0000644002504400250440000000014114626155522020516 0ustar00dewhurstdewhurst00000000000000'calculated total charge' 2 1 0.100000000000E-05 1 102.043487762 elk-9.6.8/tests/test_034/PaxHeaders/TEST_450.OUT_0000644000000000000000000000012714626155522016011 xustar0029 mtime=1717099346.61400055 29 atime=1717099346.61400055 29 ctime=1717099346.61400055 elk-9.6.8/tests/test_034/TEST_450.OUT_0000644002504400250440000000014014626155522020522 0ustar00dewhurstdewhurst00000000000000'total moment magnitude' 2 1 0.100000000000E-02 1 0.294980409687E-04 elk-9.6.8/tests/test_034/PaxHeaders/TEST_000.OUT_0000644000000000000000000000012714626155522016000 xustar0029 mtime=1717099346.61600056 29 atime=1717099346.61600056 29 ctime=1717099346.61600056 elk-9.6.8/tests/test_034/TEST_000.OUT_0000644002504400250440000000012614626155522020515 0ustar00dewhurstdewhurst00000000000000'total energy' 2 1 0.100000000000E-04 1 -9209.85404261 elk-9.6.8/tests/test_034/PaxHeaders/TEST_390.OUT_0000644000000000000000000000013214626155522016010 xustar0030 mtime=1717099346.618000571 30 atime=1717099346.618000571 30 ctime=1717099346.618000571 elk-9.6.8/tests/test_034/TEST_390.OUT_0000644002504400250440000000053014626155522020530 0ustar00dewhurstdewhurst00000000000000'Magnetoelectric tensor' 2 9 0.100000000000E-04 1 0.676742699046E-09 2 0.637115910291E-08 3 -0.263296918380E-10 4 0.462888248587E-06 5 0.154631048386E-06 6 -0.137130000214E-05 7 -0.174879115394E-05 8 0.135142718121E-05 9 -0.887877181354E-06 elk-9.6.8/tests/test_034/PaxHeaders/TEST_705.OUT_0000644000000000000000000000013214626155522016010 xustar0030 mtime=1717099346.620000582 30 atime=1717099346.620000582 30 ctime=1717099346.620000582 elk-9.6.8/tests/test_034/TEST_705.OUT_0000644002504400250440000000010114626155522020522 0ustar00dewhurstdewhurst00000000000000'number of crystal symmetries' 1 1 1 6 elk-9.6.8/tests/test_034/PaxHeaders/TEST_900.OUT_0000644000000000000000000000013214626155522016005 xustar0030 mtime=1717099346.622000593 30 atime=1717099346.622000593 30 ctime=1717099346.622000593 elk-9.6.8/tests/test_034/TEST_900.OUT_0000644002504400250440000000007014626155522020524 0ustar00dewhurstdewhurst00000000000000'number of G-vectors' 1 1 1 101505 elk-9.6.8/tests/test_034/PaxHeaders/TEST_910.OUT_0000644000000000000000000000013214626155522016006 xustar0030 mtime=1717099346.624000604 30 atime=1717099346.623000598 30 ctime=1717099346.624000604 elk-9.6.8/tests/test_034/TEST_910.OUT_0000644002504400250440000000144714626155522020536 0ustar00dewhurstdewhurst00000000000000'k-points (Cartesian)' 2 24 0.100000000000E-07 1 0.207338480306 2 0.207338480306 3 0.103669240153 4 0.622015440917 5 0.207338480306 6 0.103669240153 7 0.207338480306 8 0.622015440917 9 0.103669240153 10 0.622015440917 11 0.622015440917 12 0.103669240153 13 0.207338480306 14 0.207338480306 15 0.311007720458 16 0.622015440917 17 0.207338480306 18 0.311007720458 19 0.207338480306 20 0.622015440917 21 0.311007720458 22 0.622015440917 23 0.622015440917 24 0.311007720458 elk-9.6.8/tests/test_034/PaxHeaders/elk.in0000644000000000000000000000013214626155522015211 xustar0030 mtime=1717099346.626000614 30 atime=1717099346.625000609 30 ctime=1717099346.626000614 elk-9.6.8/tests/test_034/elk.in0000644002504400250440000000103014626155522017725 0ustar00dewhurstdewhurst00000000000000 ! Test of the magnetoelectric tensor for BaTiO3. tasks 0 390 500 test .true. spinorb .true. lowq .true. nkspolar 2 stable .true. ngridk 2 2 2 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-9.6.8/tests/test_034/PaxHeaders/TEST_500.OUT_0000644000000000000000000000013114626155522016000 xustar0030 mtime=1717099346.628000625 29 atime=1717099346.62700062 30 ctime=1717099346.628000625 elk-9.6.8/tests/test_034/TEST_500.OUT_0000644002504400250440000000013514626155522020522 0ustar00dewhurstdewhurst00000000000000'DOS at Fermi energy' 2 1 0.500000000000E-02 1 0.133033981543E-10 elk-9.6.8/tests/PaxHeaders/test_0010000644000000000000000000000013114626155522014022 xustar0030 mtime=1717099346.650000744 29 atime=1717099346.62900063 30 ctime=1717099346.650000744 elk-9.6.8/tests/test_001/0000755002504400250440000000000014626155522016622 5ustar00dewhurstdewhurst00000000000000elk-9.6.8/tests/test_001/PaxHeaders/elk.in0000644000000000000000000000013214626155522015203 xustar0030 mtime=1717099346.631000641 30 atime=1717099346.631000641 30 ctime=1717099346.631000641 elk-9.6.8/tests/test_001/elk.in0000644002504400250440000000222314626155522017724 0ustar00dewhurstdewhurst00000000000000 tasks 0 1 115 500 test .true. lmaxi 2 stype 1 swidth 0.01 mixtype 3 ! small cut-off for testing purposes rgkmax 6.0 maxscl 4 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-9.6.8/tests/test_001/PaxHeaders/TEST_115.OUT_0000644000000000000000000000013214626155522015775 xustar0030 mtime=1717099346.633000652 30 atime=1717099346.633000652 30 ctime=1717099346.633000652 elk-9.6.8/tests/test_001/TEST_115.OUT_0000644002504400250440000000053114626155522020516 0ustar00dewhurstdewhurst00000000000000'electric field gradient' 2 9 0.100000000000E-02 1 0.375596494836 2 0.668950486377E-16 3 0.224919942018E-15 4 0.668950486377E-16 5 0.495525131571 6 -0.740858348516E-17 7 0.224919942018E-15 8 -0.740858348516E-17 9 -0.871121626407 elk-9.6.8/tests/test_001/PaxHeaders/TEST_000.OUT_0000644000000000000000000000013214626155522015766 xustar0030 mtime=1717099346.636000668 30 atime=1717099346.635000663 30 ctime=1717099346.636000668 elk-9.6.8/tests/test_001/TEST_000.OUT_0000644002504400250440000000012614626155522020507 0ustar00dewhurstdewhurst00000000000000'total energy' 2 1 0.100000000000E-04 1 -25089.4686956 elk-9.6.8/tests/test_001/PaxHeaders/TEST_400.OUT_0000644000000000000000000000013214626155522015772 xustar0030 mtime=1717099346.638000679 30 atime=1717099346.638000679 30 ctime=1717099346.638000679 elk-9.6.8/tests/test_001/TEST_400.OUT_0000644002504400250440000000014114626155522020510 0ustar00dewhurstdewhurst00000000000000'calculated total charge' 2 1 0.100000000000E-05 1 294.004371530 elk-9.6.8/tests/test_001/PaxHeaders/TEST_910.OUT_0000644000000000000000000000013114626155522015777 xustar0030 mtime=1717099346.641000695 29 atime=1717099346.64000069 30 ctime=1717099346.641000695 elk-9.6.8/tests/test_001/TEST_910.OUT_0000644002504400250440000000037114626155522020523 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-9.6.8/tests/test_001/PaxHeaders/TEST_500.OUT_0000644000000000000000000000013214626155522015773 xustar0030 mtime=1717099346.643000706 30 atime=1717099346.643000706 30 ctime=1717099346.643000706 elk-9.6.8/tests/test_001/TEST_500.OUT_0000644002504400250440000000013514626155522020514 0ustar00dewhurstdewhurst00000000000000'DOS at Fermi energy' 2 1 0.500000000000E-02 1 32.4724642300 elk-9.6.8/tests/test_001/PaxHeaders/TEST_510.OUT_0000644000000000000000000000013214626155522015774 xustar0030 mtime=1717099346.646000722 30 atime=1717099346.645000717 30 ctime=1717099346.646000722 elk-9.6.8/tests/test_001/TEST_510.OUT_0000644002504400250440000000014514626155522020516 0ustar00dewhurstdewhurst00000000000000'estimated indirect band gap' 2 1 0.200000000000E-01 1 0.216262785430E-01 elk-9.6.8/tests/test_001/PaxHeaders/TEST_705.OUT_0000644000000000000000000000013214626155522016002 xustar0030 mtime=1717099346.648000733 30 atime=1717099346.648000733 30 ctime=1717099346.648000733 elk-9.6.8/tests/test_001/TEST_705.OUT_0000644002504400250440000000010114626155522020514 0ustar00dewhurstdewhurst00000000000000'number of crystal symmetries' 1 1 1 8 elk-9.6.8/tests/test_001/PaxHeaders/TEST_900.OUT_0000644000000000000000000000013214626155522015777 xustar0030 mtime=1717099346.651000749 30 atime=1717099346.651000749 30 ctime=1717099346.651000749 elk-9.6.8/tests/test_001/TEST_900.OUT_0000644002504400250440000000007014626155522020516 0ustar00dewhurstdewhurst00000000000000'number of G-vectors' 1 1 1 34171 elk-9.6.8/tests/PaxHeaders/test_0050000644000000000000000000000013214626155522014027 xustar0030 mtime=1717099346.668000841 30 atime=1717099346.652000754 30 ctime=1717099346.668000841 elk-9.6.8/tests/test_005/0000755002504400250440000000000014626155522016626 5ustar00dewhurstdewhurst00000000000000elk-9.6.8/tests/test_005/PaxHeaders/TEST_400.OUT_0000644000000000000000000000013114626155522015775 xustar0030 mtime=1717099346.654000765 29 atime=1717099346.65300076 30 ctime=1717099346.654000765 elk-9.6.8/tests/test_005/TEST_400.OUT_0000644002504400250440000000014114626155522020514 0ustar00dewhurstdewhurst00000000000000'calculated total charge' 2 1 0.100000000000E-05 1 25.9973369932 elk-9.6.8/tests/test_005/PaxHeaders/TEST_450.OUT_0000644000000000000000000000013214626155522016003 xustar0030 mtime=1717099346.656000776 30 atime=1717099346.655000771 30 ctime=1717099346.656000776 elk-9.6.8/tests/test_005/TEST_450.OUT_0000644002504400250440000000014014626155522020520 0ustar00dewhurstdewhurst00000000000000'total moment magnitude' 2 1 0.100000000000E-02 1 2.46697520890 elk-9.6.8/tests/test_005/PaxHeaders/TEST_705.OUT_0000644000000000000000000000013214626155522016006 xustar0030 mtime=1717099346.657000781 30 atime=1717099346.657000781 30 ctime=1717099346.657000781 elk-9.6.8/tests/test_005/TEST_705.OUT_0000644002504400250440000000010114626155522020520 0ustar00dewhurstdewhurst00000000000000'number of crystal symmetries' 1 1 1 8 elk-9.6.8/tests/test_005/PaxHeaders/TEST_900.OUT_0000644000000000000000000000013214626155522016003 xustar0030 mtime=1717099346.659000792 30 atime=1717099346.659000792 30 ctime=1717099346.659000792 elk-9.6.8/tests/test_005/TEST_900.OUT_0000644002504400250440000000007014626155522020522 0ustar00dewhurstdewhurst00000000000000'number of G-vectors' 1 1 1 2229 elk-9.6.8/tests/test_005/PaxHeaders/TEST_910.OUT_0000644000000000000000000000013214626155522016004 xustar0030 mtime=1717099346.661000803 30 atime=1717099346.661000803 30 ctime=1717099346.661000803 elk-9.6.8/tests/test_005/TEST_910.OUT_0000644002504400250440000000144714626155522020534 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-9.6.8/tests/test_005/PaxHeaders/TEST_500.OUT_0000644000000000000000000000013214626155522015777 xustar0030 mtime=1717099346.663000814 30 atime=1717099346.663000814 30 ctime=1717099346.663000814 elk-9.6.8/tests/test_005/TEST_500.OUT_0000644002504400250440000000013514626155522020520 0ustar00dewhurstdewhurst00000000000000'DOS at Fermi energy' 2 1 0.500000000000E-02 1 33.8210410795 elk-9.6.8/tests/test_005/PaxHeaders/TEST_510.OUT_0000644000000000000000000000013214626155522016000 xustar0030 mtime=1717099346.665000824 30 atime=1717099346.665000824 30 ctime=1717099346.665000824 elk-9.6.8/tests/test_005/TEST_510.OUT_0000644002504400250440000000014514626155522020522 0ustar00dewhurstdewhurst00000000000000'estimated indirect band gap' 2 1 0.200000000000E-01 1 0.374459363500E-02 elk-9.6.8/tests/test_005/PaxHeaders/TEST_000.OUT_0000644000000000000000000000013214626155522015772 xustar0030 mtime=1717099346.667000835 30 atime=1717099346.667000835 30 ctime=1717099346.667000835 elk-9.6.8/tests/test_005/TEST_000.OUT_0000644002504400250440000000012614626155522020513 0ustar00dewhurstdewhurst00000000000000'total energy' 2 1 0.100000000000E-04 1 -1270.46613782 elk-9.6.8/tests/test_005/PaxHeaders/elk.in0000644000000000000000000000013214626155522015207 xustar0030 mtime=1717099346.669000846 30 atime=1717099346.669000846 30 ctime=1717099346.669000846 elk-9.6.8/tests/test_005/elk.in0000644002504400250440000000076514626155522017741 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-9.6.8/tests/PaxHeaders/test_0090000644000000000000000000000013214626155522014033 xustar0030 mtime=1717099346.693000975 30 atime=1717099346.670000851 30 ctime=1717099346.693000975 elk-9.6.8/tests/test_009/0000755002504400250440000000000014626155522016632 5ustar00dewhurstdewhurst00000000000000elk-9.6.8/tests/test_009/PaxHeaders/elk.in0000644000000000000000000000013214626155522015213 xustar0030 mtime=1717099346.672000862 30 atime=1717099346.672000862 30 ctime=1717099346.672000862 elk-9.6.8/tests/test_009/elk.in0000644002504400250440000000064614626155522017743 0ustar00dewhurstdewhurst00000000000000 ! Electron loss near-edge spectroscopy (ELNES) for boron nitride. tasks 0 140 500 test .true. xctype 5 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-9.6.8/tests/test_009/PaxHeaders/TEST_400.OUT_0000644000000000000000000000013214626155522016002 xustar0030 mtime=1717099346.674000873 30 atime=1717099346.674000873 30 ctime=1717099346.674000873 elk-9.6.8/tests/test_009/TEST_400.OUT_0000644002504400250440000000014114626155522020520 0ustar00dewhurstdewhurst00000000000000'calculated total charge' 2 1 0.100000000000E-05 1 12.5000314213 elk-9.6.8/tests/test_009/PaxHeaders/TEST_450.OUT_0000644000000000000000000000013214626155522016007 xustar0030 mtime=1717099346.676000884 30 atime=1717099346.676000884 30 ctime=1717099346.676000884 elk-9.6.8/tests/test_009/TEST_450.OUT_0000644002504400250440000000014014626155522020524 0ustar00dewhurstdewhurst00000000000000'total moment magnitude' 2 1 0.100000000000E-02 1 0.110342563412E-25 elk-9.6.8/tests/test_009/PaxHeaders/TEST_000.OUT_0000644000000000000000000000013214626155522015776 xustar0030 mtime=1717099346.678000895 30 atime=1717099346.678000895 30 ctime=1717099346.678000895 elk-9.6.8/tests/test_009/TEST_000.OUT_0000644002504400250440000000012614626155522020517 0ustar00dewhurstdewhurst00000000000000'total energy' 2 1 0.100000000000E-04 1 -99.9816724970 elk-9.6.8/tests/test_009/PaxHeaders/TEST_705.OUT_0000644000000000000000000000013014626155522016010 xustar0030 mtime=1717099346.680000905 28 atime=1717099346.6790009 30 ctime=1717099346.680000905 elk-9.6.8/tests/test_009/TEST_705.OUT_0000644002504400250440000000010114626155522020524 0ustar00dewhurstdewhurst00000000000000'number of crystal symmetries' 1 1 1 24 elk-9.6.8/tests/test_009/PaxHeaders/TEST_900.OUT_0000644000000000000000000000013214626155522016007 xustar0030 mtime=1717099346.682000916 30 atime=1717099346.681000911 30 ctime=1717099346.682000916 elk-9.6.8/tests/test_009/TEST_900.OUT_0000644002504400250440000000007014626155522020526 0ustar00dewhurstdewhurst00000000000000'number of G-vectors' 1 1 1 2277 elk-9.6.8/tests/test_009/PaxHeaders/TEST_910.OUT_0000644000000000000000000000013214626155522016010 xustar0030 mtime=1717099346.684000927 30 atime=1717099346.683000921 30 ctime=1717099346.684000927 elk-9.6.8/tests/test_009/TEST_910.OUT_0000644002504400250440000000052614626155522020535 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-9.6.8/tests/test_009/PaxHeaders/TEST_500.OUT_0000644000000000000000000000013214626155522016003 xustar0030 mtime=1717099346.686000938 30 atime=1717099346.685000932 30 ctime=1717099346.686000938 elk-9.6.8/tests/test_009/TEST_500.OUT_0000644002504400250440000000013514626155522020524 0ustar00dewhurstdewhurst00000000000000'DOS at Fermi energy' 2 1 0.500000000000E-02 1 166.666666676 elk-9.6.8/tests/test_009/PaxHeaders/TEST_510.OUT_0000644000000000000000000000013214626155522016004 xustar0030 mtime=1717099346.687000943 30 atime=1717099346.687000943 30 ctime=1717099346.687000943 elk-9.6.8/tests/test_009/TEST_510.OUT_0000644002504400250440000000014514626155522020526 0ustar00dewhurstdewhurst00000000000000'estimated indirect band gap' 2 1 0.200000000000E-01 1 0.484306017189E-01 elk-9.6.8/tests/test_009/PaxHeaders/TEST_140.OUT_0000644000000000000000000000013214626155522016003 xustar0030 mtime=1717099346.689000954 30 atime=1717099346.689000954 30 ctime=1717099346.689000954 elk-9.6.8/tests/test_009/TEST_140.OUT_0000644002504400250440000000311414626155522020524 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.119955737552E-10 12 0.296035148117E-09 13 0.314274617984E-08 14 0.160129709690E-07 15 0.589467660054E-07 16 0.176259078931E-06 17 0.478896816194E-06 18 0.139546856224E-05 19 0.377658002637E-05 20 0.789545099619E-05 21 0.125242028308E-04 22 0.148947676654E-04 23 0.134749669526E-04 24 0.917979614130E-05 25 0.473294838765E-05 26 0.187000700280E-05 27 0.621109776232E-06 28 0.204699943636E-06 29 0.536838200249E-07 30 0.183398356302E-07 31 0.278337298476E-06 32 0.220712412930E-05 33 0.134279026551E-04 34 0.856203269293E-04 35 0.221408788378E-03 36 0.402754610488E-03 37 0.480338463887E-03 38 0.448076142724E-03 39 0.327815730279E-03 40 0.273030316601E-03 41 0.295985213640E-03 42 0.394269105172E-03 43 0.528618660320E-03 44 0.699587992018E-03 45 0.891704471866E-03 46 0.106304262255E-02 47 0.118816988134E-02 48 0.128673385194E-02 49 0.140576017529E-02 50 0.155992040513E-02 elk-9.6.8/tests/test_009/PaxHeaders/B.in0000644000000000000000000000013014626155522014617 xustar0029 mtime=1717099346.69200097 30 atime=1717099346.691000965 29 ctime=1717099346.69200097 elk-9.6.8/tests/test_009/B.in0000644002504400250440000000172214626155522017345 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-9.6.8/tests/test_009/PaxHeaders/N+.in0000644000000000000000000000013214626155522014710 xustar0030 mtime=1717099346.694000981 30 atime=1717099346.694000981 30 ctime=1717099346.694000981 elk-9.6.8/tests/test_009/N+.in0000644002504400250440000000253414626155522017436 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-9.6.8/tests/PaxHeaders/test_0130000644000000000000000000000013214626155522014026 xustar0030 mtime=1717099346.714001088 30 atime=1717099346.696000991 30 ctime=1717099346.714001088 elk-9.6.8/tests/test_013/0000755002504400250440000000000014626155522016625 5ustar00dewhurstdewhurst00000000000000elk-9.6.8/tests/test_013/PaxHeaders/TEST_400.OUT_0000644000000000000000000000013214626155522015775 xustar0030 mtime=1717099346.698001002 30 atime=1717099346.697000997 30 ctime=1717099346.698001002 elk-9.6.8/tests/test_013/TEST_400.OUT_0000644002504400250440000000014114626155522020513 0ustar00dewhurstdewhurst00000000000000'calculated total charge' 2 1 0.100000000000E-05 1 38.9880861498 elk-9.6.8/tests/test_013/PaxHeaders/TEST_450.OUT_0000644000000000000000000000013214626155522016002 xustar0030 mtime=1717099346.699001008 30 atime=1717099346.699001008 30 ctime=1717099346.699001008 elk-9.6.8/tests/test_013/TEST_450.OUT_0000644002504400250440000000014014626155522020517 0ustar00dewhurstdewhurst00000000000000'total moment magnitude' 2 1 0.100000000000E-02 1 1.37800867953 elk-9.6.8/tests/test_013/PaxHeaders/TEST_000.OUT_0000644000000000000000000000013214626155522015771 xustar0030 mtime=1717099346.701001018 30 atime=1717099346.701001018 30 ctime=1717099346.701001018 elk-9.6.8/tests/test_013/TEST_000.OUT_0000644002504400250440000000012614626155522020512 0ustar00dewhurstdewhurst00000000000000'total energy' 2 1 0.100000000000E-04 1 -1515.93867012 elk-9.6.8/tests/test_013/PaxHeaders/TEST_750.OUT_0000644000000000000000000000013214626155522016005 xustar0030 mtime=1717099346.703001029 30 atime=1717099346.703001029 30 ctime=1717099346.703001029 elk-9.6.8/tests/test_013/TEST_750.OUT_0000644002504400250440000000036114626155522020527 0ustar00dewhurstdewhurst00000000000000'total forces' 2 6 0.100000000000E-02 1 -0.168645160471E-01 2 -0.383560695167E-01 3 0.295291795551E-01 4 0.168645160471E-01 5 0.383560695167E-01 6 -0.295291795551E-01 elk-9.6.8/tests/test_013/PaxHeaders/TEST_500.OUT_0000644000000000000000000000012714626155522016002 xustar0029 mtime=1717099346.70500104 29 atime=1717099346.70500104 29 ctime=1717099346.70500104 elk-9.6.8/tests/test_013/TEST_500.OUT_0000644002504400250440000000013514626155522020517 0ustar00dewhurstdewhurst00000000000000'DOS at Fermi energy' 2 1 0.500000000000E-02 1 117.907739142 elk-9.6.8/tests/test_013/PaxHeaders/TEST_510.OUT_0000644000000000000000000000013214626155522015777 xustar0030 mtime=1717099346.707001051 30 atime=1717099346.707001051 30 ctime=1717099346.707001051 elk-9.6.8/tests/test_013/TEST_510.OUT_0000644002504400250440000000014514626155522020521 0ustar00dewhurstdewhurst00000000000000'estimated indirect band gap' 2 1 0.200000000000E-01 1 0.416311297179E-04 elk-9.6.8/tests/test_013/PaxHeaders/TEST_910.OUT_0000644000000000000000000000013214626155522016003 xustar0030 mtime=1717099346.709001062 30 atime=1717099346.709001062 30 ctime=1717099346.709001062 elk-9.6.8/tests/test_013/TEST_910.OUT_0000644002504400250440000001357714626155522020542 0ustar00dewhurstdewhurst00000000000000'k-points (Cartesian)' 2 192 0.100000000000E-07 1 0.714517979801E-01 2 0.142903595960 3 0.178629494950 4 0.357258989901 5 0.142903595960 6 0.178629494950 7 0.643066181821 8 0.142903595960 9 0.178629494950 10 0.928873373742 11 0.142903595960 12 0.178629494950 13 0.714517979801E-01 14 0.428710787881 15 0.178629494950 16 0.357258989901 17 0.428710787881 18 0.178629494950 19 0.643066181821 20 0.428710787881 21 0.178629494950 22 0.928873373742 23 0.428710787881 24 0.178629494950 25 0.714517979801E-01 26 0.714517979801 27 0.178629494950 28 0.357258989901 29 0.714517979801 30 0.178629494950 31 0.643066181821 32 0.714517979801 33 0.178629494950 34 0.928873373742 35 0.714517979801 36 0.178629494950 37 0.714517979801E-01 38 1.00032517172 39 0.178629494950 40 0.357258989901 41 1.00032517172 42 0.178629494950 43 0.643066181821 44 1.00032517172 45 0.178629494950 46 0.928873373742 47 1.00032517172 48 0.178629494950 49 0.714517979801E-01 50 0.142903595960 51 0.464436686871 52 0.357258989901 53 0.142903595960 54 0.464436686871 55 0.643066181821 56 0.142903595960 57 0.464436686871 58 0.928873373742 59 0.142903595960 60 0.464436686871 61 0.714517979801E-01 62 0.428710787881 63 0.464436686871 64 0.357258989901 65 0.428710787881 66 0.464436686871 67 0.643066181821 68 0.428710787881 69 0.464436686871 70 0.928873373742 71 0.428710787881 72 0.464436686871 73 0.714517979801E-01 74 0.714517979801 75 0.464436686871 76 0.357258989901 77 0.714517979801 78 0.464436686871 79 0.643066181821 80 0.714517979801 81 0.464436686871 82 0.928873373742 83 0.714517979801 84 0.464436686871 85 0.714517979801E-01 86 1.00032517172 87 0.464436686871 88 0.357258989901 89 1.00032517172 90 0.464436686871 91 0.643066181821 92 1.00032517172 93 0.464436686871 94 0.928873373742 95 1.00032517172 96 0.464436686871 97 0.714517979801E-01 98 0.142903595960 99 0.750243878791 100 0.357258989901 101 0.142903595960 102 0.750243878791 103 0.643066181821 104 0.142903595960 105 0.750243878791 106 0.928873373742 107 0.142903595960 108 0.750243878791 109 0.714517979801E-01 110 0.428710787881 111 0.750243878791 112 0.357258989901 113 0.428710787881 114 0.750243878791 115 0.643066181821 116 0.428710787881 117 0.750243878791 118 0.928873373742 119 0.428710787881 120 0.750243878791 121 0.714517979801E-01 122 0.714517979801 123 0.750243878791 124 0.357258989901 125 0.714517979801 126 0.750243878791 127 0.643066181821 128 0.714517979801 129 0.750243878791 130 0.928873373742 131 0.714517979801 132 0.750243878791 133 0.714517979801E-01 134 1.00032517172 135 0.750243878791 136 0.357258989901 137 1.00032517172 138 0.750243878791 139 0.643066181821 140 1.00032517172 141 0.750243878791 142 0.928873373742 143 1.00032517172 144 0.750243878791 145 0.714517979801E-01 146 0.142903595960 147 1.03605107071 148 0.357258989901 149 0.142903595960 150 1.03605107071 151 0.643066181821 152 0.142903595960 153 1.03605107071 154 0.928873373742 155 0.142903595960 156 1.03605107071 157 0.714517979801E-01 158 0.428710787881 159 1.03605107071 160 0.357258989901 161 0.428710787881 162 1.03605107071 163 0.643066181821 164 0.428710787881 165 1.03605107071 166 0.928873373742 167 0.428710787881 168 1.03605107071 169 0.714517979801E-01 170 0.714517979801 171 1.03605107071 172 0.357258989901 173 0.714517979801 174 1.03605107071 175 0.643066181821 176 0.714517979801 177 1.03605107071 178 0.928873373742 179 0.714517979801 180 1.03605107071 181 0.714517979801E-01 182 1.00032517172 183 1.03605107071 184 0.357258989901 185 1.00032517172 186 1.03605107071 187 0.643066181821 188 1.00032517172 189 1.03605107071 190 0.928873373742 191 1.00032517172 192 1.03605107071 elk-9.6.8/tests/test_013/PaxHeaders/TEST_705.OUT_0000644000000000000000000000013214626155522016005 xustar0030 mtime=1717099346.711001072 30 atime=1717099346.711001072 30 ctime=1717099346.711001072 elk-9.6.8/tests/test_013/TEST_705.OUT_0000644002504400250440000000010114626155522020517 0ustar00dewhurstdewhurst00000000000000'number of crystal symmetries' 1 1 1 1 elk-9.6.8/tests/test_013/PaxHeaders/TEST_900.OUT_0000644000000000000000000000013214626155522016002 xustar0030 mtime=1717099346.713001083 30 atime=1717099346.712001078 30 ctime=1717099346.713001083 elk-9.6.8/tests/test_013/TEST_900.OUT_0000644002504400250440000000007014626155522020521 0ustar00dewhurstdewhurst00000000000000'number of G-vectors' 1 1 1 4945 elk-9.6.8/tests/test_013/PaxHeaders/elk.in0000644000000000000000000000013214626155522015206 xustar0030 mtime=1717099346.715001094 30 atime=1717099346.714001088 30 ctime=1717099346.715001094 elk-9.6.8/tests/test_013/elk.in0000644002504400250440000000125014626155522017726 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 4 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.1 0.2 0.3 : atposl, bfcmt 'Al.in' 1 0.51 0.52 0.485 0.4 0.4 -0.4 : atposl, bfcmt sppath '../../species/' ngridk 4 4 4 vkloff 0.25 0.5 0.625 elk-9.6.8/tests/PaxHeaders/test_0170000644000000000000000000000013214626155522014032 xustar0030 mtime=1717099346.741001234 30 atime=1717099346.716001099 30 ctime=1717099346.741001234 elk-9.6.8/tests/test_017/0000755002504400250440000000000014626155522016631 5ustar00dewhurstdewhurst00000000000000elk-9.6.8/tests/test_017/PaxHeaders/TEST_800.OUT_0000644000000000000000000000012714626155522016011 xustar0029 mtime=1717099346.71800111 29 atime=1717099346.71800111 29 ctime=1717099346.71800111 elk-9.6.8/tests/test_017/TEST_800.OUT_0000644002504400250440000000022514626155522020526 0ustar00dewhurstdewhurst00000000000000'regularised Coulomb Green''s function (gclq)' 2 2 0.100000000000E-07 1 159.645293857 2 40.1466806379 elk-9.6.8/tests/test_017/PaxHeaders/TEST_000.OUT_0000644000000000000000000000013214626155522015775 xustar0030 mtime=1717099346.721001126 30 atime=1717099346.720001121 30 ctime=1717099346.721001126 elk-9.6.8/tests/test_017/TEST_000.OUT_0000644002504400250440000000012614626155522020516 0ustar00dewhurstdewhurst00000000000000'total energy' 2 1 0.100000000000E-04 1 -4199.45149260 elk-9.6.8/tests/test_017/PaxHeaders/TEST_500.OUT_0000644000000000000000000000013214626155522016002 xustar0030 mtime=1717099346.723001137 30 atime=1717099346.723001137 30 ctime=1717099346.723001137 elk-9.6.8/tests/test_017/TEST_500.OUT_0000644002504400250440000000013514626155522020523 0ustar00dewhurstdewhurst00000000000000'DOS at Fermi energy' 2 1 0.500000000000E-02 1 0.188737914117E-11 elk-9.6.8/tests/test_017/PaxHeaders/TEST_510.OUT_0000644000000000000000000000013214626155522016003 xustar0030 mtime=1717099346.726001153 30 atime=1717099346.726001153 30 ctime=1717099346.726001153 elk-9.6.8/tests/test_017/TEST_510.OUT_0000644002504400250440000000014514626155522020525 0ustar00dewhurstdewhurst00000000000000'estimated indirect band gap' 2 1 0.200000000000E-01 1 0.117164643531 elk-9.6.8/tests/test_017/PaxHeaders/TEST_400.OUT_0000644000000000000000000000013214626155522016001 xustar0030 mtime=1717099346.728001164 30 atime=1717099346.728001164 30 ctime=1717099346.728001164 elk-9.6.8/tests/test_017/TEST_400.OUT_0000644002504400250440000000014114626155522020517 0ustar00dewhurstdewhurst00000000000000'calculated total charge' 2 1 0.100000000000E-05 1 63.9848896137 elk-9.6.8/tests/test_017/PaxHeaders/TEST_705.OUT_0000644000000000000000000000012714626155522016015 xustar0029 mtime=1717099346.73100118 29 atime=1717099346.73100118 29 ctime=1717099346.73100118 elk-9.6.8/tests/test_017/TEST_705.OUT_0000644002504400250440000000010114626155522020523 0ustar00dewhurstdewhurst00000000000000'number of crystal symmetries' 1 1 1 24 elk-9.6.8/tests/test_017/PaxHeaders/TEST_900.OUT_0000644000000000000000000000013214626155522016006 xustar0030 mtime=1717099346.734001196 30 atime=1717099346.733001191 30 ctime=1717099346.734001196 elk-9.6.8/tests/test_017/TEST_900.OUT_0000644002504400250440000000007014626155522020525 0ustar00dewhurstdewhurst00000000000000'number of G-vectors' 1 1 1 725 elk-9.6.8/tests/test_017/PaxHeaders/TEST_910.OUT_0000644000000000000000000000013214626155522016007 xustar0030 mtime=1717099346.736001207 30 atime=1717099346.736001207 30 ctime=1717099346.736001207 elk-9.6.8/tests/test_017/TEST_910.OUT_0000644002504400250440000000037114626155522020532 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-9.6.8/tests/test_017/PaxHeaders/elk.in0000644000000000000000000000013214626155522015212 xustar0030 mtime=1717099346.739001223 30 atime=1717099346.739001223 30 ctime=1717099346.739001223 elk-9.6.8/tests/test_017/elk.in0000644002504400250440000000120314626155522017730 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-9.6.8/tests/test_017/PaxHeaders/TEST_300.OUT_0000644000000000000000000000013214626155522016000 xustar0030 mtime=1717099346.742001239 30 atime=1717099346.741001234 30 ctime=1717099346.742001239 elk-9.6.8/tests/test_017/TEST_300.OUT_0000644002504400250440000000013414626155522020520 0ustar00dewhurstdewhurst00000000000000'RDMFT total energy' 2 1 0.100000000000E-05 1 -4060.82279671 elk-9.6.8/tests/PaxHeaders/test_0210000644000000000000000000000013214626155522014025 xustar0030 mtime=1717099346.763001352 30 atime=1717099346.743001245 30 ctime=1717099346.763001352 elk-9.6.8/tests/test_021/0000755002504400250440000000000014626155522016624 5ustar00dewhurstdewhurst00000000000000elk-9.6.8/tests/test_021/PaxHeaders/TEST_450.OUT_0000644000000000000000000000012714626155522016005 xustar0029 mtime=1717099346.74400125 29 atime=1717099346.74400125 29 ctime=1717099346.74400125 elk-9.6.8/tests/test_021/TEST_450.OUT_0000644002504400250440000000014014626155522020516 0ustar00dewhurstdewhurst00000000000000'total moment magnitude' 2 1 0.100000000000E-02 1 0.709321368797E-16 elk-9.6.8/tests/test_021/PaxHeaders/TEST_400.OUT_0000644000000000000000000000013214626155522015774 xustar0030 mtime=1717099346.746001261 30 atime=1717099346.746001261 30 ctime=1717099346.746001261 elk-9.6.8/tests/test_021/TEST_400.OUT_0000644002504400250440000000014114626155522020512 0ustar00dewhurstdewhurst00000000000000'calculated total charge' 2 1 0.100000000000E-05 1 66.0189750690 elk-9.6.8/tests/test_021/PaxHeaders/TEST_000.OUT_0000644000000000000000000000013214626155522015770 xustar0030 mtime=1717099346.748001272 30 atime=1717099346.748001272 30 ctime=1717099346.748001272 elk-9.6.8/tests/test_021/TEST_000.OUT_0000644002504400250440000000012614626155522020511 0ustar00dewhurstdewhurst00000000000000'total energy' 2 1 0.100000000000E-04 1 -2462.70042304 elk-9.6.8/tests/test_021/PaxHeaders/TEST_500.OUT_0000644000000000000000000000013214626155522015775 xustar0030 mtime=1717099346.750001282 30 atime=1717099346.750001282 30 ctime=1717099346.750001282 elk-9.6.8/tests/test_021/TEST_500.OUT_0000644002504400250440000000013514626155522020516 0ustar00dewhurstdewhurst00000000000000'DOS at Fermi energy' 2 1 0.500000000000E-02 1 0.364761304452E-04 elk-9.6.8/tests/test_021/PaxHeaders/TEST_510.OUT_0000644000000000000000000000013214626155522015776 xustar0030 mtime=1717099346.752001293 30 atime=1717099346.752001293 30 ctime=1717099346.752001293 elk-9.6.8/tests/test_021/TEST_510.OUT_0000644002504400250440000000014514626155522020520 0ustar00dewhurstdewhurst00000000000000'estimated indirect band gap' 2 1 0.200000000000E-01 1 0.297118873854E-01 elk-9.6.8/tests/test_021/PaxHeaders/TEST_705.OUT_0000644000000000000000000000013214626155522016004 xustar0030 mtime=1717099346.754001304 30 atime=1717099346.754001304 30 ctime=1717099346.754001304 elk-9.6.8/tests/test_021/TEST_705.OUT_0000644002504400250440000000010114626155522020516 0ustar00dewhurstdewhurst00000000000000'number of crystal symmetries' 1 1 1 24 elk-9.6.8/tests/test_021/PaxHeaders/TEST_900.OUT_0000644000000000000000000000013214626155522016001 xustar0030 mtime=1717099346.756001315 30 atime=1717099346.756001315 30 ctime=1717099346.756001315 elk-9.6.8/tests/test_021/TEST_900.OUT_0000644002504400250440000000007014626155522020520 0ustar00dewhurstdewhurst00000000000000'number of G-vectors' 1 1 1 8623 elk-9.6.8/tests/test_021/PaxHeaders/TEST_910.OUT_0000644000000000000000000000013214626155522016002 xustar0030 mtime=1717099346.758001325 30 atime=1717099346.758001325 30 ctime=1717099346.758001325 elk-9.6.8/tests/test_021/TEST_910.OUT_0000644002504400250440000000237014626155522020526 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-9.6.8/tests/test_021/PaxHeaders/TEST_195.OUT_0000644000000000000000000000013214626155522016007 xustar0030 mtime=1717099346.760001336 30 atime=1717099346.759001331 30 ctime=1717099346.760001336 elk-9.6.8/tests/test_021/TEST_195.OUT_0000644002504400250440000000477714626155522020550 0ustar00dewhurstdewhurst00000000000000'density structure factors' 3 47 0.100000000000E-04 1 0.222781435220 -0.402294370090E-18 2 0.275815234521E-16 0.100613961607E-15 3 -0.175114278730E-16 0.763278329430E-16 4 0.897769008683E-01 0.180150825661E-15 5 0.897007448850E-01 -0.409044587545E-16 6 0.159095637832 -0.818747805988E-16 7 -0.217912097008E-16 -0.693889390391E-16 8 -0.379402887333E-16 0.131838984174E-15 9 0.403163194665E-16 -0.147451495458E-15 10 0.129015042924 -0.131756036673E-15 11 0.128978012062 -0.348021392935E-16 12 0.190101283975E-16 -0.728583859910E-16 13 -0.695150774089E-17 -0.346944695195E-16 14 0.709477772117E-01 -0.132276418829E-15 15 0.709436664690E-01 0.309012800987E-16 16 0.709341105957E-01 0.272320003318E-15 17 0.110367566625 -0.224520750959E-16 18 0.110427103260 0.252076281928E-15 19 0.251475606153E-16 0.954097911787E-16 20 -0.126133241328E-16 0.520417042793E-16 21 -0.565063300947E-16 -0.248065457065E-15 22 0.259069297327E-16 -0.111022302463E-15 23 0.980833900216E-01 0.245886325269E-15 24 -0.807399189918E-16 0.355618312575E-15 25 0.116958815703E-16 0.537764277553E-16 26 0.150256045879E-16 0.641847686111E-16 27 0.582951481884E-01 0.465442540362E-15 28 0.583608607929E-01 0.428258485983E-16 29 0.583174084690E-01 0.873448595961E-16 30 0.886390713657E-01 -0.464861911253E-15 31 0.886603914846E-01 -0.466643095403E-16 32 0.169727389030E-16 0.780625564190E-16 33 -0.367549472150E-16 0.168268177170E-15 34 0.198568313913E-16 -0.919403442268E-16 35 0.816397396140E-01 -0.868344003574E-16 36 0.816176026341E-01 0.172820187636E-15 37 0.816032034679E-01 -0.464241417373E-16 38 0.101444544622E-16 0.468375338514E-16 39 -0.126676069703E-16 -0.650521303491E-16 40 -0.102181017348E-16 0.121430643318E-16 41 0.105125114080E-16 0.537764277553E-16 42 -0.582680934570E-16 0.274953670942E-15 43 0.502376966305E-01 -0.156622654592E-15 44 0.505039326473E-01 0.301775673869E-15 45 0.505015257031E-01 -0.203903328096E-15 46 0.504649553592E-01 -0.171856536781E-15 47 0.502809230417E-01 -0.899598822379E-16 elk-9.6.8/tests/test_021/PaxHeaders/TEST_196.OUT_0000644000000000000000000000013214626155522016010 xustar0030 mtime=1717099346.762001347 30 atime=1717099346.761001342 30 ctime=1717099346.762001347 elk-9.6.8/tests/test_021/TEST_196.OUT_0000644002504400250440000000500014626155522020525 0ustar00dewhurstdewhurst00000000000000'magnetic structure factors' 3 47 0.100000000000E-03 1 0.362412261985E-17 0.769127070269E-20 2 0.268159754176E-01 -0.173084048356E-16 3 0.204349361687E-01 -0.113701330526E-16 4 0.176612619537E-17 -0.270915017850E-16 5 -0.114107815731E-18 0.601223985961E-17 6 0.166503642473E-17 0.111401773223E-16 7 0.158944879365E-01 0.921486872462E-17 8 0.125662646208E-01 -0.156683580165E-16 9 0.123650427775E-01 0.166490022687E-16 10 0.679313637272E-18 0.137287100091E-16 11 0.101175482889E-17 0.389786014903E-17 12 0.101549475052E-01 0.704111977415E-17 13 0.837997839547E-02 0.344426010154E-17 14 0.828943663359E-19 0.114213922608E-16 15 -0.126781248458E-18 -0.251907598513E-17 16 0.226682870158E-18 -0.239405392212E-16 17 -0.462852252539E-19 0.228868302348E-17 18 0.144841806854E-17 -0.208708918203E-16 19 0.692620770444E-02 -0.656866801252E-17 20 0.648560805092E-02 -0.359077017616E-17 21 0.542642231824E-02 0.168549744010E-16 22 0.583535034013E-02 0.732857079021E-17 23 -0.111265018538E-17 -0.152940268956E-16 24 0.450095425846E-02 -0.207353340892E-16 25 0.391282219676E-02 -0.328725969754E-17 26 0.406516440792E-02 -0.303238504452E-17 27 0.578385071529E-18 -0.238524477947E-16 28 0.464766663963E-18 -0.234628126389E-17 29 0.168810396270E-18 -0.407931067398E-17 30 -0.182264157104E-18 0.222735783810E-16 31 0.222132000869E-18 0.218873313571E-17 32 0.328095043637E-02 -0.312437624347E-17 33 0.329522459826E-02 -0.779496157590E-17 34 0.277976839616E-02 0.336309841414E-17 35 0.108621783796E-18 0.307642366443E-17 36 -0.430918648387E-19 -0.624093875537E-17 37 0.250492951131E-18 0.182535600133E-17 38 0.234877820923E-02 -0.171333994456E-17 39 0.221389453121E-02 0.202218261896E-17 40 0.239281723704E-02 -0.482928014902E-18 41 0.198785703331E-02 -0.142069058430E-17 42 0.179402268361E-02 -0.810309439502E-17 43 0.408276789466E-18 0.479759461325E-17 44 0.568903478480E-18 -0.858552595337E-17 45 0.644498452269E-20 0.588179678573E-17 46 0.530263016523E-18 0.462818802380E-17 47 0.340754363809E-19 0.278673839647E-17 elk-9.6.8/tests/test_021/PaxHeaders/elk.in0000644000000000000000000000013214626155522015205 xustar0030 mtime=1717099346.764001358 30 atime=1717099346.763001352 30 ctime=1717099346.764001358 elk-9.6.8/tests/test_021/elk.in0000644002504400250440000000060314626155522017726 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-9.6.8/tests/PaxHeaders/test_0230000644000000000000000000000013214626155522014027 xustar0030 mtime=1717099346.794001519 30 atime=1717099346.765001363 30 ctime=1717099346.794001519 elk-9.6.8/tests/test_023/0000755002504400250440000000000014626155522016626 5ustar00dewhurstdewhurst00000000000000elk-9.6.8/tests/test_023/PaxHeaders/TEST_705.OUT_0000644000000000000000000000013214626155522016006 xustar0030 mtime=1717099346.767001374 30 atime=1717099346.767001374 30 ctime=1717099346.767001374 elk-9.6.8/tests/test_023/TEST_705.OUT_0000644002504400250440000000010114626155522020520 0ustar00dewhurstdewhurst00000000000000'number of crystal symmetries' 1 1 1 48 elk-9.6.8/tests/test_023/PaxHeaders/TEST_900.OUT_0000644000000000000000000000013214626155522016003 xustar0030 mtime=1717099346.769001385 30 atime=1717099346.769001385 30 ctime=1717099346.769001385 elk-9.6.8/tests/test_023/TEST_900.OUT_0000644002504400250440000000007014626155522020522 0ustar00dewhurstdewhurst00000000000000'number of G-vectors' 1 1 1 3215 elk-9.6.8/tests/test_023/PaxHeaders/TEST_910.OUT_0000644000000000000000000000013214626155522016004 xustar0030 mtime=1717099346.771001396 30 atime=1717099346.771001396 30 ctime=1717099346.771001396 elk-9.6.8/tests/test_023/TEST_910.OUT_0000644002504400250440000000531014626155522020525 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-9.6.8/tests/test_023/PaxHeaders/TEST_500.OUT_0000644000000000000000000000013214626155522015777 xustar0030 mtime=1717099346.773001406 30 atime=1717099346.773001406 30 ctime=1717099346.773001406 elk-9.6.8/tests/test_023/TEST_500.OUT_0000644002504400250440000000013514626155522020520 0ustar00dewhurstdewhurst00000000000000'DOS at Fermi energy' 2 1 0.500000000000E-02 1 0.192540375316E-05 elk-9.6.8/tests/test_023/PaxHeaders/TEST_510.OUT_0000644000000000000000000000013214626155522016000 xustar0030 mtime=1717099346.775001417 30 atime=1717099346.775001417 30 ctime=1717099346.775001417 elk-9.6.8/tests/test_023/TEST_510.OUT_0000644002504400250440000000014514626155522020522 0ustar00dewhurstdewhurst00000000000000'estimated indirect band gap' 2 1 0.200000000000E-01 1 0.323126315162 elk-9.6.8/tests/test_023/PaxHeaders/TEST_400.OUT_0000644000000000000000000000013214626155522015776 xustar0030 mtime=1717099346.777001428 30 atime=1717099346.776001423 30 ctime=1717099346.777001428 elk-9.6.8/tests/test_023/TEST_400.OUT_0000644002504400250440000000014114626155522020514 0ustar00dewhurstdewhurst00000000000000'calculated total charge' 2 1 0.100000000000E-05 1 12.0281690167 elk-9.6.8/tests/test_023/PaxHeaders/TEST_450.OUT_0000644000000000000000000000013214626155522016003 xustar0030 mtime=1717099346.779001439 30 atime=1717099346.778001433 30 ctime=1717099346.779001439 elk-9.6.8/tests/test_023/TEST_450.OUT_0000644002504400250440000000014014626155522020520 0ustar00dewhurstdewhurst00000000000000'total moment magnitude' 2 1 0.100000000000E-02 1 0.212291342803E-23 elk-9.6.8/tests/test_023/PaxHeaders/TEST_000.OUT_0000644000000000000000000000013214626155522015772 xustar0030 mtime=1717099346.781001449 30 atime=1717099346.780001444 30 ctime=1717099346.781001449 elk-9.6.8/tests/test_023/TEST_000.OUT_0000644002504400250440000000012614626155522020513 0ustar00dewhurstdewhurst00000000000000'total energy' 2 1 0.100000000000E-04 1 -106.905945855 elk-9.6.8/tests/test_023/PaxHeaders/TEST_121.OUT_0000644000000000000000000000013014626155522015774 xustar0029 mtime=1717099346.78300146 30 atime=1717099346.782001455 29 ctime=1717099346.78300146 elk-9.6.8/tests/test_023/TEST_121.OUT_0000644002504400250440000000523114626155522020521 0ustar00dewhurstdewhurst00000000000000'optical conductivity' 3 50 0.100000000000E-01 1 0.580602037548E-03 0.00000000000 2 0.583360013906E-03 -0.174394344266E-02 3 0.591744905968E-03 -0.350452166851E-02 4 0.606098509374E-03 -0.529903985214E-02 5 0.627028290147E-03 -0.714620989663E-02 6 0.655470516540E-03 -0.906702967299E-02 7 0.692796987850E-03 -0.110859110125E-01 8 0.740987854055E-03 -0.132322149246E-01 9 0.802915417463E-03 -0.155424506112E-01 10 0.882823544024E-03 -0.180635774718E-01 11 0.987172239731E-03 -0.208582061957E-01 12 0.112621460813E-02 -0.240132411607E-01 13 0.131716654743E-02 -0.276551704507E-01 14 0.159123804766E-02 -0.319793472100E-01 15 0.201151940275E-02 -0.373123001225E-01 16 0.272902268905E-02 -0.442659895269E-01 17 0.423822543560E-02 -0.542232983676E-01 18 0.102332656802E-01 -0.709409151855E-01 19 0.322594404938E-01 -0.853734356638E-01 20 0.651085018531E-01 -0.952925695980E-01 21 0.981858723047E-01 -0.784054759993E-01 22 0.769866582981E-01 -0.630845555910E-02 23 0.784852724505E-01 -0.116295645603E-01 24 0.493340996812E-01 -0.616033222035E-02 25 0.453311556300E-01 -0.214179751451E-01 26 0.363505791095E-01 -0.352990737942E-01 27 0.609881560941E-01 -0.644139244517E-01 28 0.124505999384 -0.230163851758E-01 29 0.754441604382E-01 -0.149204226352E-01 30 0.104801347820 -0.740888462258E-01 31 0.193499498846 -0.138582794620E-01 32 0.145549431809 0.408364511459E-01 33 0.164607685574 0.985172525384E-01 34 0.675811177514E-01 0.133528010788 35 0.286453119487E-01 0.101780624648 36 0.286455435520E-01 0.698003062570E-01 37 0.202342487467E-01 0.588956368726E-01 38 0.184717944913E-01 0.455354793761E-01 39 0.333892129430E-01 0.381548934780E-01 40 0.232588609951E-01 0.505097680017E-01 41 0.144278358319E-01 0.361255011629E-01 42 0.299203353296E-01 0.360913199546E-01 43 0.166582352086E-01 0.346532314773E-01 44 0.245061665943E-01 0.298293686918E-01 45 0.206225369427E-01 0.331456120104E-01 46 0.232748562758E-01 0.330117029760E-01 47 0.174502204309E-01 0.298999474337E-01 48 0.160139481205E-01 0.269734597212E-01 49 0.178178746029E-01 0.234669435893E-01 50 0.170695783464E-01 0.231148741257E-01 elk-9.6.8/tests/test_023/PaxHeaders/TEST_125.OUT_0000644000000000000000000000013214626155522016002 xustar0030 mtime=1717099346.784001466 30 atime=1717099346.784001466 30 ctime=1717099346.784001466 elk-9.6.8/tests/test_023/TEST_125.OUT_0000644002504400250440000000523614626155522020532 0ustar00dewhurstdewhurst00000000000000'non-linear susceptibility' 3 50 0.100000000000E-01 1 0.872967039972E-06 0.860886386491E-06 2 0.644006842239E-06 0.107361147695E-06 3 0.415029240895E-06 -0.666651113553E-06 4 0.170009602193E-06 -0.151562383078E-05 5 -0.115250513355E-06 -0.251575420377E-05 6 -0.485876133661E-06 -0.379384020574E-05 7 -0.104466377703E-05 -0.559776565264E-05 8 -0.209111397168E-05 -0.850779341216E-05 9 -0.490270907261E-05 -0.142441454036E-04 10 -0.197595108008E-04 -0.281205878263E-04 11 -0.451543048133E-04 0.470188102116E-04 12 -0.577053273558E-05 0.236628907098E-04 13 0.679717760960E-06 0.164844266496E-04 14 0.439364701607E-05 0.149108103560E-04 15 0.350985257203E-05 0.227031730600E-05 16 0.653799656075E-05 -0.375402912753E-05 17 -0.142791848859E-05 -0.272287542789E-05 18 -0.288564249610E-05 -0.552480257228E-05 19 -0.676658838299E-05 -0.118084011735E-04 20 -0.388382317490E-04 -0.283614912755E-04 21 -0.232786611146E-04 0.512069719322E-04 22 -0.573042585178E-05 0.198557813365E-04 23 -0.274484591469E-05 0.233861756520E-04 24 0.212151861561E-04 0.424671479095E-05 25 -0.781964200740E-05 0.777422694946E-05 26 0.553451768833E-05 0.148177154495E-04 27 -0.102906841370E-04 0.311996278910E-04 28 0.579606445854E-04 -0.224815636503E-04 29 0.555608898688E-05 0.378461228736E-05 30 -0.109113017637E-04 -0.520160990824E-05 31 0.143612653352E-04 0.560816903423E-05 32 0.271044543066E-05 0.152396923056E-05 33 0.550914536630E-05 -0.162263893067E-05 34 -0.708176350180E-06 -0.477095311834E-05 35 0.942098920378E-05 0.148187140377E-05 36 0.141598083607E-05 -0.898081288045E-05 37 0.784057758366E-05 -0.809098972517E-05 38 -0.142589276844E-04 0.114972366517E-04 39 -0.154283110321E-04 0.741862885638E-05 40 0.658093472212E-06 0.302215558502E-05 41 0.669703359518E-06 0.378521293737E-05 42 -0.118168357152E-05 0.150888752629E-05 43 -0.383708862408E-07 0.378520061243E-05 44 -0.163240201734E-06 0.605823013039E-06 45 0.429833274634E-05 -0.128186750408E-05 46 0.691582716294E-05 0.317855378969E-05 47 -0.127585618450E-04 -0.576744602580E-05 48 0.240789930807E-04 0.149621237027E-04 49 0.247042926437E-05 0.109045619866E-05 50 -0.384050832228E-05 0.128672561501E-05 elk-9.6.8/tests/test_023/PaxHeaders/TEST_800.OUT_0000644000000000000000000000013214626155522016002 xustar0030 mtime=1717099346.786001476 30 atime=1717099346.786001476 30 ctime=1717099346.786001476 elk-9.6.8/tests/test_023/TEST_800.OUT_0000644002504400250440000000173214626155522020527 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-9.6.8/tests/test_023/PaxHeaders/TEST_320.OUT_0000644000000000000000000000013214626155522015777 xustar0030 mtime=1717099346.792001509 30 atime=1717099346.788001487 30 ctime=1717099346.792001509 elk-9.6.8/tests/test_023/TEST_320.OUT_0000644002504400250440000116230414626155522020530 0ustar00dewhurstdewhurst00000000000000'inverse epsilon' 3 6050 0.100000000000E-01 1 0.447756642202 -0.100703924599E-07 2 -0.307609490257E-05 -0.206856579679E-11 3 0.200737979369E-05 0.384088705353E-12 4 -0.381865246028E-01 0.537824266482E-05 5 0.381865246242E-01 0.537511216017E-05 6 0.381935007079E-01 0.173704927653E-05 7 0.381856327704E-01 -0.809968276928E-05 8 -0.381935006905E-01 0.174016719229E-05 9 -0.381856327723E-01 -0.809656861251E-05 10 0.381753711365E-01 -0.584441377909E-05 11 -0.381753711276E-01 -0.584127320544E-05 12 -0.307595330434E-05 0.248743336406E-11 13 0.447757094141 -0.100703879311E-07 14 0.535228403624E-06 0.154808825677E-11 15 -0.381900067699E-01 0.398879942764E-05 16 0.381900067687E-01 0.398569457236E-05 17 -0.381828821333E-01 -0.720905987081E-05 18 -0.381904837763E-01 0.453858840501E-05 19 0.381828821118E-01 -0.721218850950E-05 20 0.381904837720E-01 0.453547508327E-05 21 0.381812400896E-01 -0.534914665888E-05 22 -0.381812401037E-01 -0.534602294910E-05 23 0.200725263276E-05 -0.596794722017E-12 24 0.535285931447E-06 -0.140645968521E-11 25 0.447754887774 -0.100703553864E-07 26 -0.381761416533E-01 0.287812788708E-05 27 0.381761416528E-01 0.287499139879E-05 28 0.381928020237E-01 0.626330502167E-06 29 -0.381880957854E-01 0.475718571560E-06 30 -0.381928020181E-01 0.629468341617E-06 31 0.381880957743E-01 0.472581754166E-06 32 -0.381702382970E-01 -0.612666633568E-05 33 0.381702382971E-01 -0.612980147593E-05 34 -0.381865246038E-01 -0.537539200928E-05 35 -0.381900067711E-01 -0.398588787604E-05 36 -0.381761416586E-01 -0.287475100169E-05 37 0.819710237652 0.611768182004E-08 38 -0.366284645322E-01 -0.168518160881E-04 39 -0.493516381684E-01 0.299889167421E-06 40 -0.639503479478E-01 0.650681295301E-05 41 -0.639570807082E-01 0.148187642686E-04 42 -0.493578843082E-01 -0.711787328532E-05 43 -0.494013220653E-01 -0.609788026403E-05 44 -0.639125523255E-01 0.167421062234E-04 45 0.381865246244E-01 -0.537851646973E-05 46 0.381900067688E-01 -0.398903881075E-05 47 0.381761416573E-01 -0.287786876716E-05 48 -0.366284645317E-01 0.168529054844E-04 49 0.819710237627 -0.258086303904E-08 50 -0.639570807030E-01 -0.148169818324E-04 51 -0.493578843284E-01 0.711929914751E-05 52 -0.493516381688E-01 -0.298461947290E-06 53 -0.639503479646E-01 -0.650499809989E-05 54 -0.639125523390E-01 -0.167403014285E-04 55 -0.494013220803E-01 0.609930363593E-05 56 0.381935006908E-01 -0.173918916074E-05 57 -0.381828821242E-01 0.721263843477E-05 58 0.381928020279E-01 -0.629987089175E-06 59 -0.493516381273E-01 -0.299014331973E-06 60 -0.639570806750E-01 0.148205892466E-04 61 0.819782833562 0.179748697835E-08 62 -0.639878785882E-01 -0.124785770404E-06 63 -0.367180750146E-01 0.323505832864E-04 64 -0.493283341918E-01 0.737350372397E-06 65 -0.493318382596E-01 -0.316613515104E-04 66 -0.639679631159E-01 -0.105567942457E-04 67 0.381856327673E-01 0.809619747394E-05 68 -0.381904837984E-01 -0.453509238160E-05 69 -0.381880957741E-01 -0.473157214366E-06 70 -0.639503480401E-01 -0.650682711093E-05 71 -0.493578843906E-01 -0.711776570502E-05 72 -0.639878785733E-01 0.128338311860E-06 73 0.819799507343 -0.640993961557E-09 74 -0.493283341437E-01 0.738319621325E-06 75 -0.367227004274E-01 -0.445200249329E-04 76 -0.639806577604E-01 0.276033157638E-04 77 -0.493284101445E-01 0.251235371610E-04 78 -0.381935006736E-01 -0.173604931612E-05 79 0.381828821038E-01 0.720951191551E-05 80 -0.381928020225E-01 -0.626868553505E-06 81 -0.639570806809E-01 -0.148187721629E-04 82 -0.493516381277E-01 0.300429783232E-06 83 -0.367180750154E-01 -0.323494915881E-04 84 -0.493283341673E-01 -0.735935048058E-06 85 0.819782833582 0.173740787493E-08 86 -0.639878785941E-01 0.126594792045E-06 87 -0.639679631034E-01 0.105585882153E-04 88 -0.493318382641E-01 0.316627817773E-04 89 -0.381856327683E-01 0.809933825119E-05 90 0.381904837933E-01 -0.453823498919E-05 91 0.381880957627E-01 -0.476274950485E-06 92 -0.493578843701E-01 0.711918255012E-05 93 -0.639503480566E-01 0.650861077003E-05 94 -0.493283341680E-01 -0.736893855544E-06 95 -0.367227004263E-01 0.445211164725E-04 96 -0.639878785791E-01 -0.126546392904E-06 97 0.819799507316 0.417534881014E-08 98 -0.493284101549E-01 -0.251221168870E-04 99 -0.639806577648E-01 -0.276015159711E-04 100 0.381753711512E-01 0.584170807422E-05 101 0.381812400601E-01 0.534590149437E-05 102 -0.381702382977E-01 0.613045022131E-05 103 -0.494013220392E-01 0.609874025362E-05 104 -0.639125523889E-01 0.167484581245E-04 105 -0.493318382519E-01 0.316644241152E-04 106 -0.639806577911E-01 -0.275967435592E-04 107 -0.639679630595E-01 -0.105533532213E-04 108 -0.493284102597E-01 0.251238185030E-04 109 0.819636118639 -0.474410747308E-08 110 -0.365685274019E-01 -0.258779666057E-04 111 -0.381753711418E-01 0.584482130831E-05 112 -0.381812400733E-01 0.534903246913E-05 113 0.381702382988E-01 0.612733010006E-05 114 -0.639125523761E-01 -0.167466663592E-04 115 -0.494013220546E-01 -0.609731886582E-05 116 -0.639679630716E-01 0.105551587050E-04 117 -0.493284102504E-01 -0.251223980363E-04 118 -0.493318382579E-01 -0.316630128931E-04 119 -0.639806577942E-01 0.275985438709E-04 120 -0.365685274012E-01 0.258790543305E-04 121 0.819636118609 0.828245768021E-08 122 0.447087988828 -0.446814363169E-03 123 -0.307263607312E-05 0.222130090370E-08 124 0.201084393057E-05 0.240069044776E-08 125 -0.382094337827E-01 -0.987092209414E-05 126 0.382094088878E-01 0.206603965654E-04 127 0.382164022424E-01 0.170216682670E-04 128 0.382085104794E-01 0.714196288357E-05 129 -0.382164131665E-01 -0.135234360494E-04 130 -0.382084993712E-01 -0.233565033065E-04 131 0.381982466727E-01 0.939598577890E-05 132 -0.381982339359E-01 -0.210984588401E-04 133 -0.307267114862E-05 0.228377798676E-08 134 0.447088441443 -0.446813908278E-03 135 0.539215355005E-06 0.264264110633E-08 136 -0.382129248025E-01 -0.112808394812E-04 137 0.382129134172E-01 0.192714347672E-04 138 -0.382057421781E-01 -0.224654277035E-04 139 -0.382133993522E-01 -0.107275164595E-04 140 0.382057558028E-01 0.802590904913E-05 141 0.382133873720E-01 0.198210723521E-04 142 0.382041178111E-01 0.989049568255E-05 143 -0.382041042368E-01 -0.206062678294E-04 144 0.201087665149E-05 0.234474506507E-08 145 0.539203957527E-06 0.265708973169E-08 146 0.447086231422 -0.446816357929E-03 147 -0.381990049129E-01 -0.123588692887E-04 148 0.381989983183E-01 0.181232760745E-04 149 0.382157042770E-01 0.158852560637E-04 150 -0.382110009800E-01 -0.147843850595E-04 151 -0.382156943356E-01 -0.146467784468E-04 152 0.382109878238E-01 0.157494826396E-04 153 -0.381930896911E-01 -0.213837141692E-04 154 0.381931095793E-01 0.910030401152E-05 155 -0.382094096227E-01 -0.206606787393E-04 156 -0.382129140361E-01 -0.192716089247E-04 157 -0.381989973618E-01 -0.181230362241E-04 158 0.819598349356 -0.747024568257E-04 159 -0.366684928305E-01 -0.435812340316E-04 160 -0.494036757142E-01 -0.344504180659E-04 161 -0.639998698594E-01 -0.265432803166E-04 162 -0.640066063364E-01 -0.182328360697E-04 163 -0.494099197137E-01 -0.418761414415E-04 164 -0.494533875250E-01 -0.408808375859E-04 165 -0.639620470678E-01 -0.162950709199E-04 166 0.382094330479E-01 0.987065055506E-05 167 0.382129241913E-01 0.112805808060E-04 168 0.381990058737E-01 0.123591254542E-04 169 -0.366684901824E-01 -0.988046887057E-05 170 0.819598322909 -0.747111592590E-04 171 -0.640065874139E-01 -0.478885887788E-04 172 -0.494099252316E-01 -0.276299409705E-04 173 -0.494036718173E-01 -0.350519363968E-04 174 -0.639998516637E-01 -0.395739834630E-04 175 -0.639620241272E-01 -0.497826259069E-04 176 -0.494533966480E-01 -0.286675306483E-04 177 0.382164162962E-01 0.135244130371E-04 178 -0.382057543820E-01 -0.802550567433E-05 179 0.382156926817E-01 0.146462838620E-04 180 -0.494036735584E-01 -0.350526105173E-04 181 -0.640066007466E-01 -0.182310918793E-04 182 0.819670972599 -0.746797711683E-04 183 -0.640374216684E-01 -0.332031893724E-04 184 -0.367581608395E-01 0.559260367930E-05 185 -0.493803447213E-01 -0.339991532241E-04 186 -0.493838574721E-01 -0.664302874530E-04 187 -0.640174859623E-01 -0.436258586191E-04 188 0.382084982470E-01 0.233561407112E-04 189 -0.382133863321E-01 -0.198206604686E-04 190 -0.382109897359E-01 -0.157500535631E-04 191 -0.639998573350E-01 -0.395755302322E-04 192 -0.494099192666E-01 -0.418758434978E-04 193 -0.640374188978E-01 -0.329542396562E-04 194 0.819687653351 -0.746725856681E-04 195 -0.493803417192E-01 -0.339982573361E-04 196 -0.367627742090E-01 -0.713065704602E-04 197 -0.640301800143E-01 -0.545156004799E-05 198 -0.493804502570E-01 -0.961403734119E-05 199 -0.382163990988E-01 -0.170206661559E-04 200 0.382057435753E-01 0.224659264959E-04 201 -0.382157059258E-01 -0.158858186782E-04 202 -0.640065929479E-01 -0.478904607834E-04 203 -0.494036738912E-01 -0.344499992230E-04 204 -0.367581491018E-01 -0.591250616975E-04 205 -0.493803438830E-01 -0.354692338395E-04 206 0.819670972415 -0.746798311654E-04 207 -0.640374242966E-01 -0.329559377471E-04 208 -0.640174814745E-01 -0.225014295051E-04 209 -0.493838868628E-01 -0.306991515730E-05 210 -0.382085115975E-01 -0.714231423933E-05 211 0.382134004209E-01 0.107278427282E-04 212 0.382109990586E-01 0.147838259370E-04 213 -0.494099258027E-01 -0.276298663564E-04 214 -0.639998643724E-01 -0.265411994368E-04 215 -0.493803468369E-01 -0.354702670028E-04 216 -0.367627962697E-01 0.177676243094E-04 217 -0.640374270382E-01 -0.332049963857E-04 218 0.819687668006 -0.746677673958E-04 219 -0.493804333821E-01 -0.598835292147E-04 220 -0.640301800897E-01 -0.606781911885E-04 221 0.381982354523E-01 0.210989029400E-04 222 0.382041040085E-01 0.206061999727E-04 223 -0.381931077156E-01 -0.909963793823E-05 224 -0.494533982690E-01 -0.286681694796E-04 225 -0.639620276100E-01 -0.162885577431E-04 226 -0.493838816621E-01 -0.306829006837E-05 227 -0.640301654950E-01 -0.606733233135E-04 228 -0.640174753899E-01 -0.436225499541E-04 229 -0.493804494012E-01 -0.961343190484E-05 230 0.819524163261 -0.747360606509E-04 231 -0.366085224375E-01 -0.526141845287E-04 232 -0.381982451651E-01 -0.939558889695E-05 233 -0.382041179940E-01 -0.989066548216E-05 234 0.381930915627E-01 0.213843629695E-04 235 -0.639620436858E-01 -0.497888329656E-04 236 -0.494533858519E-01 -0.408803508761E-04 237 -0.640174919574E-01 -0.225049934379E-04 238 -0.493804344477E-01 -0.598834860148E-04 239 -0.493838626601E-01 -0.664319668869E-04 240 -0.640301946701E-01 -0.545623924486E-05 241 -0.366085465886E-01 -0.821000988990E-06 242 0.819524202857 -0.747230284721E-04 243 0.445068854241 -0.902467488313E-03 244 -0.306244909536E-05 0.453347724853E-08 245 0.202159619181E-05 0.484737720510E-08 246 -0.382781633519E-01 -0.250999578647E-04 247 0.382781128628E-01 0.359988001410E-04 248 0.382851445067E-01 0.323443182087E-04 249 0.382771585919E-01 0.223811352400E-04 250 -0.382851667947E-01 -0.287824039499E-04 251 -0.382771360599E-01 -0.386510009482E-04 252 0.382668865568E-01 0.246353838259E-04 253 -0.382668608010E-01 -0.363886520925E-04 254 -0.306249888996E-05 0.456798721854E-08 255 0.445069308937 -0.902466543682E-03 256 0.551262414197E-06 0.542652459802E-08 257 -0.382816947843E-01 -0.265509841768E-04 258 0.382816717120E-01 0.345903354284E-04 259 -0.382743615784E-01 -0.377562260984E-04 260 -0.382821613169E-01 -0.259906744332E-04 261 0.382743891521E-01 0.232614477747E-04 262 0.382821370277E-01 0.351432135636E-04 263 0.382727634285E-01 0.251252264524E-04 264 -0.382727358865E-01 -0.359033791924E-04 265 0.202164225277E-05 0.481415780109E-08 266 0.551245304505E-06 0.542480033866E-08 267 0.445067087785 -0.902471554830E-03 268 -0.382676138350E-01 -0.276002419558E-04 269 0.382676004083E-01 0.333988512866E-04 270 0.382844278727E-01 0.311430611846E-04 271 -0.382797302807E-01 -0.300439711787E-04 272 -0.382844076151E-01 -0.299571151485E-04 273 0.382797036329E-01 0.310599841900E-04 274 -0.382616892462E-01 -0.366839732596E-04 275 0.382617295211E-01 0.243190038452E-04 276 -0.382781143534E-01 -0.359990844367E-04 277 -0.382816729446E-01 -0.345904921702E-04 278 -0.382675985021E-01 -0.333986143606E-04 279 0.819261313966 -0.150311359719E-03 280 -0.367891584094E-01 -0.706974531657E-04 281 -0.495605531381E-01 -0.697126023960E-04 282 -0.641490528963E-01 -0.599999788396E-04 283 -0.641557998646E-01 -0.516899463145E-04 284 -0.495668000914E-01 -0.771585757176E-04 285 -0.496103620601E-01 -0.761954343348E-04 286 -0.641111433501E-01 -0.497524511818E-04 287 0.382781618613E-01 0.250996882105E-04 288 0.382816935598E-01 0.265507076664E-04 289 0.382676157450E-01 0.276004904012E-04 290 -0.367891530276E-01 -0.370086848574E-04 291 0.819261261073 -0.150320073810E-03 292 -0.641557618292E-01 -0.814060058038E-04 293 -0.495668111784E-01 -0.628851881337E-04 294 -0.495605453150E-01 -0.703236653297E-04 295 -0.641490163033E-01 -0.730876298020E-04 296 -0.641110974418E-01 -0.832554507091E-04 297 -0.496103804707E-01 -0.639334867350E-04 298 0.382851730487E-01 0.287833859631E-04 299 -0.382743863000E-01 -0.232610891630E-04 300 0.382844043021E-01 0.299566411192E-04 301 -0.495605488386E-01 -0.703244614352E-04 302 -0.641557887153E-01 -0.516882820309E-04 303 0.819334045998 -0.150261278288E-03 304 -0.641866894098E-01 -0.667033689000E-04 305 -0.368789906364E-01 -0.215390196856E-04 306 -0.495371437745E-01 -0.692536966377E-04 307 -0.495407130213E-01 -0.101750772698E-03 308 -0.641666855066E-01 -0.771297279790E-04 309 0.382771338211E-01 0.386506489247E-04 310 -0.382821349218E-01 -0.351427668162E-04 311 -0.382797074461E-01 -0.310605521816E-04 312 -0.641490275733E-01 -0.730888950336E-04 313 -0.495667991171E-01 -0.771580881423E-04 314 -0.641866838519E-01 -0.664668976046E-04 315 0.819350762736 -0.150244343437E-03 316 -0.495371378156E-01 -0.692528729270E-04 317 -0.368836015976E-01 -0.985176926862E-04 318 -0.641793824386E-01 -0.389102176173E-04 319 -0.495373224525E-01 -0.448426816554E-04 320 -0.382851382403E-01 -0.323433178391E-04 321 0.382743644063E-01 0.377567703063E-04 322 -0.382844311794E-01 -0.311436455605E-04 323 -0.641557729226E-01 -0.814079603684E-04 324 -0.495605495325E-01 -0.697123056198E-04 325 -0.368789670635E-01 -0.863096008518E-04 326 -0.495371421476E-01 -0.707141198445E-04 327 0.819334045612 -0.150261338045E-03 328 -0.641866946323E-01 -0.664685509976E-04 329 -0.641666766180E-01 -0.559780378776E-04 330 -0.495407721159E-01 -0.382812136604E-04 331 -0.382771608245E-01 -0.223814919654E-04 332 0.382821634505E-01 0.259909720499E-04 333 0.382797264591E-01 0.300434146498E-04 334 -0.495668122767E-01 -0.628849213381E-04 335 -0.641490418108E-01 -0.599976139239E-04 336 -0.495371480582E-01 -0.707152281080E-04 337 -0.368836459387E-01 -0.934401115012E-05 338 -0.641867001611E-01 -0.667052234629E-04 339 0.819350792083 -0.150239519318E-03 340 -0.495372884988E-01 -0.951839759574E-04 341 -0.641793824387E-01 -0.942024786832E-04 342 0.382668638161E-01 0.363890992168E-04 343 0.382727354612E-01 0.359033666143E-04 344 -0.382617257837E-01 -0.243183192552E-04 345 -0.496103837561E-01 -0.639342018786E-04 346 -0.641111043595E-01 -0.497457733966E-04 347 -0.495407617234E-01 -0.382796053836E-04 348 -0.641793532134E-01 -0.941975128244E-04 349 -0.641666644121E-01 -0.771265494603E-04 350 -0.495373206268E-01 -0.448417520058E-04 351 0.819186992243 -0.150367983790E-03 352 -0.367291145855E-01 -0.797775107302E-04 353 -0.382668835488E-01 -0.246349942632E-04 354 -0.382727638094E-01 -0.251254575963E-04 355 0.382616929921E-01 0.366846107344E-04 356 -0.641111365332E-01 -0.832615034001E-04 357 -0.496103587224E-01 -0.761950215792E-04 358 -0.641666976229E-01 -0.559817381267E-04 359 -0.495372905344E-01 -0.951836077676E-04 360 -0.495407234011E-01 -0.101752471300E-03 361 -0.641794117249E-01 -0.389148070755E-04 362 -0.367291632505E-01 -0.278752986852E-04 363 0.819187071500 -0.150354934681E-03 364 0.441659012825 -0.137631388355E-02 365 -0.304525009354E-05 0.693146758322E-08 366 0.203995819829E-05 0.747897724529E-08 367 -0.383927816006E-01 -0.403150681878E-04 368 0.383927041144E-01 0.513996218588E-04 369 0.383997961365E-01 0.477139481604E-04 370 0.383916431496E-01 0.376244011215E-04 371 -0.383998306635E-01 -0.440437373999E-04 372 -0.383916085445E-01 -0.539880374986E-04 373 0.383813566207E-01 0.398803279256E-04 374 -0.383813172425E-01 -0.517197461734E-04 375 -0.304530348325E-05 0.695474191763E-08 376 0.441659471165 -0.137631237585E-02 377 0.571976799821E-06 0.847082699874E-08 378 -0.383963863533E-01 -0.418290606773E-04 379 0.383963509671E-01 0.499512044700E-04 380 -0.383888055449E-01 -0.530892959476E-04 381 -0.383968391587E-01 -0.412581839259E-04 382 0.383888476944E-01 0.385008904060E-04 383 0.383968018707E-01 0.505107477613E-04 384 0.383872427151E-01 0.403613680787E-04 385 -0.383872004194E-01 -0.512454377253E-04 386 0.204000754817E-05 0.745326754907E-08 387 0.571958335934E-06 0.845935093368E-08 388 0.441657230895 -0.137632018213E-02 389 -0.383820334524E-01 -0.428525127625E-04 390 0.383820127004E-01 0.487092808416E-04 391 0.383990408910E-01 0.464066088969E-04 392 -0.383943520189E-01 -0.453100428294E-04 393 -0.383990095279E-01 -0.453101508352E-04 394 0.383943111611E-01 0.464126943498E-04 395 -0.383761019249E-01 -0.520356883620E-04 396 0.383761636185E-01 0.395322980633E-04 397 -0.383927063605E-01 -0.513999083041E-04 398 -0.383963528137E-01 -0.499513437364E-04 399 -0.383820098652E-01 -0.487090510896E-04 400 0.818695046028 -0.227756816575E-03 401 -0.369922361141E-01 -0.986078514477E-04 402 -0.498246094138E-01 -0.106023854965E-03 403 -0.643998286065E-01 -0.943054895875E-04 404 -0.644065929699E-01 -0.859947773829E-04 405 -0.498308644572E-01 -0.113502611312E-03 406 -0.498745859652E-01 -0.112579668652E-03 407 -0.643617713540E-01 -0.840723553471E-04 408 0.383927793547E-01 0.403148003140E-04 409 0.383963845149E-01 0.418287660130E-04 410 0.383820362911E-01 0.428527501659E-04 411 -0.369922278240E-01 -0.649395102384E-04 412 0.818694966640 -0.227765550187E-03 413 -0.644065354218E-01 -0.115812318143E-03 414 -0.498308812587E-01 -0.991835638272E-04 415 -0.498245976058E-01 -0.106650970010E-03 416 -0.643997732398E-01 -0.107488969534E-03 417 -0.643617024503E-01 -0.117601107135E-03 418 -0.498746140308E-01 -0.100235736226E-03 419 0.383998400496E-01 0.440447248256E-04 420 -0.383888434090E-01 -0.385005766845E-04 421 0.383990045531E-01 0.453096978007E-04 422 -0.498246029122E-01 -0.106651888379E-03 423 -0.644065762551E-01 -0.859931923655E-04 424 0.818767970084 -0.227678537660E-03 425 -0.644376146201E-01 -0.101068182679E-03 426 -0.370823414587E-01 -0.494521462797E-04 427 -0.498010691505E-01 -0.105563336193E-03 428 -0.498047437435E-01 -0.138160788175E-03 429 -0.644174934572E-01 -0.111511274923E-03 430 0.383916052020E-01 0.539876979864E-04 431 -0.383967986863E-01 -0.505102646323E-04 432 -0.383943168652E-01 -0.464132570366E-04 433 -0.643997901142E-01 -0.107489953725E-03 434 -0.498308629602E-01 -0.113501934771E-03 435 -0.644376062126E-01 -0.100852633778E-03 436 0.818784752393 -0.227651595301E-03 437 -0.498010602290E-01 -0.105562583695E-03 438 -0.370869597264E-01 -0.126562023307E-03 439 -0.644301968534E-01 -0.732149919004E-04 440 -0.498013657268E-01 -0.810991963272E-04 441 -0.383997867382E-01 -0.477129476073E-04 442 0.383888098061E-01 0.530898861818E-04 443 -0.383990458592E-01 -0.464072163163E-04 444 -0.644065520805E-01 -0.115814356379E-03 445 -0.498246040251E-01 -0.106023680616E-03 446 -0.370823058536E-01 -0.114311407036E-03 447 -0.498010667860E-01 -0.107007521575E-03 448 0.818767969496 -0.227678597011E-03 449 -0.644376223809E-01 -0.100854243445E-03 450 -0.644174803204E-01 -0.903137406133E-04 451 -0.498048331910E-01 -0.745076645340E-04 452 -0.383916464859E-01 -0.376247614013E-04 453 0.383968423706E-01 0.412584557909E-04 454 0.383943463063E-01 0.453094904741E-04 455 -0.498308828799E-01 -0.991831037461E-04 456 -0.643998119169E-01 -0.943028394635E-04 457 -0.498010756593E-01 -0.107008705909E-03 458 -0.370870267946E-01 -0.372214287624E-04 459 -0.644376307593E-01 -0.101070085712E-03 460 0.818784796458 -0.227646761378E-03 461 -0.498013142992E-01 -0.131561138572E-03 462 -0.644301964791E-01 -0.128617418521E-03 463 0.383813217501E-01 0.517201959810E-04 464 0.383871997855E-01 0.512454778915E-04 465 -0.383761579928E-01 -0.395315919367E-04 466 -0.498746189854E-01 -0.100236528782E-03 467 -0.643617128080E-01 -0.840655095187E-04 468 -0.498048176012E-01 -0.745060723481E-04 469 -0.644301526053E-01 -0.128612351916E-03 470 -0.644174618271E-01 -0.111508224810E-03 471 -0.498013629324E-01 -0.810979424561E-04 472 0.818620518879 -0.227837020267E-03 473 -0.369320777925E-01 -0.107776186989E-03 474 -0.383813521197E-01 -0.398799483565E-04 475 -0.383872433046E-01 -0.403616622886E-04 476 0.383761075593E-01 0.520363165602E-04 477 -0.643617610971E-01 -0.117607008856E-03 478 -0.498745809581E-01 -0.112579329328E-03 479 -0.644175118607E-01 -0.903175795531E-04 480 -0.498013173037E-01 -0.131560444817E-03 481 -0.498047593205E-01 -0.138162506728E-03 482 -0.644302407883E-01 -0.732194943433E-04 483 -0.369321517127E-01 -0.556904348037E-04 484 0.818620637868 -0.227823942779E-03 485 0.436788674556 -0.187884970628E-02 486 -0.302067348850E-05 0.947507595033E-08 487 0.206661103384E-05 0.103972065761E-07 488 -0.385533503839E-01 -0.554990222122E-04 489 0.385532436702E-01 0.668510341715E-04 490 0.385604199568E-01 0.631179840523E-04 491 0.385520222075E-01 0.528554588406E-04 492 -0.385604681159E-01 -0.592914583162E-04 493 -0.385519744993E-01 -0.693537672065E-04 494 0.385417145510E-01 0.551145137070E-04 495 -0.385416605900E-01 -0.670777869685E-04 496 -0.302072890215E-05 0.949204960120E-08 497 0.436789138391 -0.187884751588E-02 498 0.602383854710E-06 0.119409877481E-07 499 -0.385570638499E-01 -0.570997535704E-04 500 0.385570151539E-01 0.653411380082E-04 501 -0.385491308765E-01 -0.684506284385E-04 502 -0.385574969380E-01 -0.565145374865E-04 503 0.385491885970E-01 0.537278250862E-04 504 0.385574455557E-01 0.659108716046E-04 505 0.385476132333E-01 0.555822266960E-04 506 -0.385475549342E-01 -0.666188186832E-04 507 0.206666226880E-05 0.103744173298E-07 508 0.602364670239E-06 0.119215278741E-07 509 0.436786870109 -0.187885849463E-02 510 -0.385423200832E-01 -0.580994382170E-04 511 0.385422912201E-01 0.640401430835E-04 512 0.385596049092E-01 0.616598265554E-04 513 -0.385549282379E-01 -0.605667283381E-04 514 -0.385595611828E-01 -0.606928674110E-04 515 0.385548720253E-01 0.617945479484E-04 516 -0.385363841704E-01 -0.674255753927E-04 517 0.385364689211E-01 0.547229861622E-04 518 -0.385532466711E-01 -0.668513226772E-04 519 -0.385570176148E-01 -0.653412600340E-04 520 -0.385422874881E-01 -0.640399250369E-04 521 0.817892553523 -0.308050372099E-03 522 -0.372807685297E-01 -0.127754446504E-03 523 -0.501998553811E-01 -0.143967655553E-03 524 -0.647555026568E-01 -0.129937325450E-03 525 -0.647622915416E-01 -0.121624827048E-03 526 -0.502061237601E-01 -0.151492131808E-03 527 -0.502500724161E-01 -0.150618198871E-03 528 -0.647172344594E-01 -0.119732671615E-03 529 0.385533473833E-01 0.554987559817E-04 530 0.385570613969E-01 0.570994407564E-04 531 0.385423238185E-01 0.580996607825E-04 532 -0.372807570632E-01 -0.941156245565E-04 533 0.817892447568 -0.308059133266E-03 534 -0.647622138563E-01 -0.151586528418E-03 535 -0.502061465013E-01 -0.137108415270E-03 536 -0.501998394989E-01 -0.144617550596E-03 537 -0.647554279337E-01 -0.143256926065E-03 538 -0.647171425168E-01 -0.153297504331E-03 539 -0.502501107097E-01 -0.138157517273E-03 540 0.385604806471E-01 0.592924524374E-04 541 -0.385491828745E-01 -0.537275562029E-04 542 0.385595545412E-01 0.606924354196E-04 543 -0.501998465884E-01 -0.144618591654E-03 544 -0.647622692522E-01 -0.121623320780E-03 545 0.817965755900 -0.307942644605E-03 546 -0.647935051816E-01 -0.136776068235E-03 547 -0.373712596754E-01 -0.785892994511E-04 548 -0.501761296930E-01 -0.143511481337E-03 549 -0.501799603538E-01 -0.176245160210E-03 550 -0.647732158478E-01 -0.147249111686E-03 551 0.385519700699E-01 0.693534424855E-04 552 -0.385574412728E-01 -0.659103498895E-04 553 -0.385548796050E-01 -0.617951033332E-04 554 -0.647554504212E-01 -0.143257629522E-03 555 -0.502061217473E-01 -0.151491266904E-03 556 -0.647934938305E-01 -0.136590120115E-03 557 0.817982634350 -0.307905292077E-03 558 -0.501761177999E-01 -0.143510799038E-03 559 -0.373758952084E-01 -0.155883374249E-03 560 -0.647859294111E-01 -0.108843572927E-03 561 -0.501765909008E-01 -0.118966398594E-03 562 -0.385604074130E-01 -0.631169820414E-04 563 0.385491365747E-01 0.684512651810E-04 564 -0.385596115440E-01 -0.616604579765E-04 565 -0.647622360894E-01 -0.151588651532E-03 566 -0.501998482090E-01 -0.143967604200E-03 567 -0.373712117330E-01 -0.143573753159E-03 568 -0.501761266669E-01 -0.144932635575E-03 569 0.817965755111 -0.307942703375E-03 570 -0.647935153960E-01 -0.136591687003E-03 571 -0.647731987010E-01 -0.125986516896E-03 572 -0.501800811642E-01 -0.112331639325E-03 573 -0.385520266305E-01 -0.528558207417E-04 574 0.385575012484E-01 0.565147862399E-04 575 0.385549206495E-01 0.605661825012E-04 576 -0.502061486386E-01 -0.137107760621E-03 577 -0.647554803544E-01 -0.129934388768E-03 578 -0.501761385117E-01 -0.144933896912E-03 579 -0.373759856978E-01 -0.663067385954E-04 580 -0.647935267180E-01 -0.136778020687E-03 581 0.817982693169 -0.307900444321E-03 582 -0.501765213853E-01 -0.169599344561E-03 583 -0.647859281972E-01 -0.164401908418E-03 584 0.385416665800E-01 0.670782384269E-04 585 0.385475540741E-01 0.666189095317E-04 586 -0.385364613853E-01 -0.547222553042E-04 587 -0.502501173404E-01 -0.138158388484E-03 588 -0.647171563239E-01 -0.119725654317E-03 589 -0.501800603691E-01 -0.112330062633E-03 590 -0.647858696478E-01 -0.164396738349E-03 591 -0.647731736619E-01 -0.147246188321E-03 592 -0.501765871396E-01 -0.118964820336E-03 593 0.817817749025 -0.308155022300E-03 594 -0.372204532413E-01 -0.137053805423E-03 595 -0.385417085675E-01 -0.551141463497E-04 596 -0.385476140486E-01 -0.555825865230E-04 597 0.385363917152E-01 0.674261966144E-04 598 -0.647172207531E-01 -0.153303258482E-03 599 -0.502500657324E-01 -0.150617932560E-03 600 -0.647732407968E-01 -0.125990496998E-03 601 -0.501765253569E-01 -0.169598324432E-03 602 -0.501799811361E-01 -0.176246899537E-03 603 -0.647859880216E-01 -0.108847991134E-03 604 -0.372205535722E-01 -0.847071727811E-04 605 0.817817907850 -0.308141904751E-03 606 0.430354035945 -0.242246270111E-02 607 -0.298818383263E-05 0.122288431101E-07 608 0.210259412510E-05 0.137330674941E-07 609 -0.387598376852E-01 -0.705948518224E-04 610 0.387596985156E-01 0.823041828918E-04 611 0.387669856154E-01 0.785063829653E-04 612 0.387582581249E-01 0.680189052916E-04 613 -0.387670494274E-01 -0.744704049489E-04 614 -0.387581958272E-01 -0.846964665846E-04 615 0.387479221528E-01 0.702825422270E-04 616 -0.387478522164E-01 -0.824109082289E-04 617 -0.298824104254E-05 0.122415213062E-07 618 0.430354507566 -0.242245964852E-02 619 0.644054257599E-06 0.160442536567E-07 620 -0.387636990782E-01 -0.723088544153E-04 621 0.387636356314E-01 0.807095471362E-04 622 -0.387552981501E-01 -0.837882943058E-04 623 -0.387641060304E-01 -0.717052528878E-04 624 0.387553728795E-01 0.688867193438E-04 625 0.387640389695E-01 0.812931576813E-04 626 0.387538365742E-01 0.707318262837E-04 627 -0.387537604614E-01 -0.819721547436E-04 628 0.210264706240E-05 0.137112051423E-07 629 0.644034462119E-06 0.160173785976E-07 630 0.430352200991 -0.242247435814E-02 631 -0.387484334953E-01 -0.732857701850E-04 632 0.387483953809E-01 0.793389354944E-04 633 0.387660875428E-01 0.768474804259E-04 634 -0.387614272735E-01 -0.757590797842E-04 635 -0.387660296246E-01 -0.760546327719E-04 636 0.387613540431E-01 0.771548221948E-04 637 -0.387424960832E-01 -0.828028099036E-04 638 0.387426062601E-01 0.698343669512E-04 639 -0.387597022702E-01 -0.823044732451E-04 640 -0.387636387074E-01 -0.807096522907E-04 641 -0.387483907969E-01 -0.793387343115E-04 642 0.816843645815 -0.392325302512E-03 643 -0.376592011238E-01 -0.158635400025E-03 644 -0.506921536329E-01 -0.184202403399E-03 645 -0.652208928751E-01 -0.167430202157E-03 646 -0.652277137397E-01 -0.159114768278E-03 647 -0.506984407794E-01 -0.191786115599E-03 648 -0.507426874655E-01 -0.190971029235E-03 649 -0.651823471834E-01 -0.157268760855E-03 650 0.387598339311E-01 0.705945871132E-04 651 0.387636960099E-01 0.723085236382E-04 652 0.387484380824E-01 0.732859735876E-04 653 -0.376591861124E-01 -0.125036141454E-03 654 0.816843513196 -0.392334099516E-03 655 -0.652276150362E-01 -0.189265521897E-03 656 -0.506984697745E-01 -0.177317940284E-03 657 -0.506921335540E-01 -0.184882122160E-03 658 -0.652207979845E-01 -0.180928265584E-03 659 -0.651822321395E-01 -0.190880041098E-03 660 -0.507427367936E-01 -0.178356752280E-03 661 0.387670651220E-01 0.744714075265E-04 662 -0.387553657150E-01 -0.688864952186E-04 663 0.387660213093E-01 0.760542218150E-04 664 -0.506921424269E-01 -0.184883286461E-03 665 -0.652276858635E-01 -0.159113340387E-03 666 0.816917217303 -0.392186365085E-03 667 -0.652591821973E-01 -0.174362984224E-03 668 -0.377501962845E-01 -0.109449191578E-03 669 -0.506681850852E-01 -0.183756512852E-03 670 -0.506722253206E-01 -0.216664250507E-03 671 -0.652386711093E-01 -0.184879535029E-03 672 0.387581903346E-01 0.846961593820E-04 673 -0.387640335599E-01 -0.812925947336E-04 674 -0.387613634770E-01 -0.771553682254E-04 675 -0.652208260967E-01 -0.180928688417E-03 676 -0.506984382603E-01 -0.191785062898E-03 677 -0.652591677775E-01 -0.174215644093E-03 678 0.816934223908 -0.392138036100E-03 679 -0.506681702086E-01 -0.183755899696E-03 680 -0.377548594661E-01 -0.186982320051E-03 681 -0.652513986704E-01 -0.146330909797E-03 682 -0.506688605019E-01 -0.159101720006E-03 683 -0.387669699077E-01 -0.785053783132E-04 684 0.387553052903E-01 0.837889780934E-04 685 -0.387660958510E-01 -0.768481368546E-04 686 -0.652276428555E-01 -0.189267731200E-03 687 -0.506921446768E-01 -0.184202475831E-03 688 -0.377501355790E-01 -0.174596442217E-03 689 -0.506681814981E-01 -0.185147545758E-03 690 0.816917216314 -0.392186423077E-03 691 -0.652591947528E-01 -0.174217169151E-03 692 -0.652386502882E-01 -0.163531737187E-03 693 -0.506723789125E-01 -0.152409905990E-03 694 -0.387582636109E-01 -0.680192666184E-04 695 0.387641114675E-01 0.717054813834E-04 696 0.387614178305E-01 0.757585433471E-04 697 -0.506984724184E-01 -0.177317089580E-03 698 -0.652208649485E-01 -0.167426977389E-03 699 -0.506681963265E-01 -0.185148885007E-03 700 -0.377549743499E-01 -0.970980281926E-04 701 -0.652592091435E-01 -0.174364987050E-03 702 0.816934297532 -0.392133170379E-03 703 -0.506687720376E-01 -0.209958232370E-03 704 -0.652513959641E-01 -0.202092659863E-03 705 0.387478596744E-01 0.824113600754E-04 706 0.387537593511E-01 0.819722942413E-04 707 -0.387425967834E-01 -0.698336077244E-04 708 -0.507427451101E-01 -0.178357703557E-03 709 -0.651822494128E-01 -0.157261568671E-03 710 -0.506723529015E-01 -0.152408344312E-03 711 -0.652513227028E-01 -0.202087383639E-03 712 -0.652386183405E-01 -0.184876736871E-03 713 -0.506688557766E-01 -0.159099817078E-03 714 0.816768488936 -0.392455616893E-03 715 -0.375986844150E-01 -0.168110879374E-03 716 -0.387479147012E-01 -0.702821894178E-04 717 -0.387538376393E-01 -0.707322548475E-04 718 0.387425055693E-01 0.828034266568E-04 719 -0.651823300108E-01 -0.190885651074E-03 720 -0.507426790956E-01 -0.190970835625E-03 721 -0.652387029664E-01 -0.163535861056E-03 722 -0.506687769737E-01 -0.209956884826E-03 723 -0.506722513186E-01 -0.216666011419E-03 724 -0.652514719926E-01 -0.146335246591E-03 725 -0.375988127842E-01 -0.115421876665E-03 726 0.816768687741 -0.392442447259E-03 727 0.422210188191 -0.302246345989E-02 728 -0.294703789299E-05 0.152704709266E-07 729 0.214939776342E-05 0.176583687668E-07 730 -0.390119688541E-01 -0.854803362890E-04 731 0.390117927341E-01 0.976483177862E-04 732 0.390192209503E-01 0.937666803198E-04 733 0.390100683708E-01 0.829948426466E-04 734 -0.390193032355E-01 -0.894608630219E-04 735 -0.390099894223E-01 -0.999014232982E-04 736 0.389996961036E-01 0.852645172772E-04 737 -0.389996082492E-01 -0.976042142107E-04 738 -0.294709704651E-05 0.152798031423E-07 739 0.422210670542 -0.302245928398E-02 740 0.699271528549E-06 0.210572834364E-07 741 -0.390160228670E-01 -0.873379795027E-04 742 0.390159426656E-01 0.959431612129E-04 743 -0.390070223665E-01 -0.989873143463E-04 744 -0.390163966518E-01 -0.867115700927E-04 745 0.390071161024E-01 0.838575099893E-04 746 0.390163117095E-01 0.965445675066E-04 747 0.390056290813E-01 0.856894595189E-04 748 -0.390055326330E-01 -0.971912533352E-04 749 0.214945256200E-05 0.176363277519E-07 750 0.699251092902E-06 0.210230847091E-07 751 0.422208313385 -0.302247852347E-02 752 -0.390000875088E-01 -0.882918589691E-04 753 0.390000385501E-01 0.944899080396E-04 754 0.390182136411E-01 0.918497880547E-04 755 -0.390135750244E-01 -0.907677145652E-04 756 -0.390181389738E-01 -0.912821964802E-04 757 0.390134824514E-01 0.923801269572E-04 758 -0.389941520548E-01 -0.980539891437E-04 759 0.389942909497E-01 0.847447382846E-04 760 -0.390117972404E-01 -0.976486096075E-04 761 -0.390159463570E-01 -0.959432499670E-04 762 -0.390000331738E-01 -0.944897298070E-04 763 0.815534485878 -0.481895437614E-03 764 -0.381335892344E-01 -0.191832131395E-03 765 -0.513094942793E-01 -0.227497625708E-03 766 -0.658025408071E-01 -0.207403761259E-03 767 -0.658094015775E-01 -0.199084157292E-03 768 -0.513158059083E-01 -0.235154867813E-03 769 -0.513604259777E-01 -0.234409797514E-03 770 -0.657636465799E-01 -0.197301194579E-03 771 0.390119643484E-01 0.854800730328E-04 772 0.390160191828E-01 0.873376311312E-04 773 0.390000928879E-01 0.882920381360E-04 774 -0.381335702008E-01 -0.158283745930E-03 775 0.815534326470 -0.481904279078E-03 776 -0.658092806695E-01 -0.229471894208E-03 777 -0.513158415742E-01 -0.220581386112E-03 778 -0.513094698462E-01 -0.228214630147E-03 779 -0.658024246765E-01 -0.221125402569E-03 780 -0.657635083476E-01 -0.230969356375E-03 781 -0.513604874222E-01 -0.221602231462E-03 782 0.390193221179E-01 0.894618763111E-04 783 -0.390071074891E-01 -0.838573305347E-04 784 0.390181289757E-01 0.912818065516E-04 785 -0.513094805026E-01 -0.228215918364E-03 786 -0.658093680997E-01 -0.199082807569E-03 787 0.815608523408 -0.481722928281E-03 788 -0.658411917103E-01 -0.214450198271E-03 789 -0.382252141619E-01 -0.142613860023E-03 790 -0.512852214767E-01 -0.227067974648E-03 791 -0.512895286127E-01 -0.260190254838E-03 792 -0.658204016753E-01 -0.225024321568E-03 793 0.390099828987E-01 0.999011369605E-04 794 -0.390163051359E-01 -0.965439601518E-04 795 -0.390134937108E-01 -0.923806613452E-04 796 -0.658024584277E-01 -0.221125544686E-03 797 -0.513158028953E-01 -0.235153627869E-03 798 -0.658411740669E-01 -0.214350894521E-03 799 0.815625692160 -0.481662864170E-03 800 -0.512852036016E-01 -0.227067429537E-03 801 -0.382299160080E-01 -0.220443421966E-03 802 -0.658331472047E-01 -0.186296942634E-03 803 -0.512861645178E-01 -0.202273363857E-03 804 -0.390192020542E-01 -0.937656717516E-04 805 0.390070309555E-01 0.989880458376E-04 806 -0.390182236319E-01 -0.918504706579E-04 807 -0.658093140900E-01 -0.229474191107E-03 808 -0.513094835391E-01 -0.227497822958E-03 809 -0.382251401284E-01 -0.207962989561E-03 810 -0.512852174516E-01 -0.228421419096E-03 811 0.815608522223 -0.481722985274E-03 812 -0.658412064676E-01 -0.214352378706E-03 813 -0.658203776311E-01 -0.203569914196E-03 814 -0.512897168840E-01 -0.195509751148E-03 815 -0.390100748875E-01 -0.829952007767E-04 816 0.390164032530E-01 0.867117816137E-04 817 0.390135637550E-01 0.907671910222E-04 818 -0.513158447124E-01 -0.220580337630E-03 819 -0.658025072421E-01 -0.207400246702E-03 820 -0.512852352787E-01 -0.228422837138E-03 821 -0.382300565876E-01 -0.130176468016E-03 822 -0.658412240821E-01 -0.214452252430E-03 823 0.815625780651 -0.481657976208E-03 824 -0.512860559554E-01 -0.253409012038E-03 825 -0.658331421327E-01 -0.242312010436E-03 826 0.389996171562E-01 0.976046650113E-04 827 0.390055312406E-01 0.971914393098E-04 828 -0.389942794918E-01 -0.847439464070E-04 829 -0.513604974366E-01 -0.221603264405E-03 830 -0.657635291171E-01 -0.197293824108E-03 831 -0.512896856444E-01 -0.195508204139E-03 832 -0.658330541142E-01 -0.242306625396E-03 833 -0.658203382898E-01 -0.225021647202E-03 834 -0.512861588321E-01 -0.202271135882E-03 835 0.815458897334 -0.482053050424E-03 836 -0.380728239642E-01 -0.201532059332E-03 837 -0.389996872028E-01 -0.852641816628E-04 838 -0.390056304276E-01 -0.856899605695E-04 839 0.389941635225E-01 0.980546042308E-04 840 -0.657636259111E-01 -0.230974825569E-03 841 -0.513604159092E-01 -0.234409676405E-03 842 -0.658204409254E-01 -0.203574184588E-03 843 -0.512860618525E-01 -0.253407335793E-03 844 -0.512895598391E-01 -0.260192038105E-03 845 -0.658332352841E-01 -0.186301200889E-03 846 -0.380729825569E-01 -0.148413514812E-03 847 0.815459136299 -0.482039816205E-03 848 0.412160310913 -0.369859065619E-02 849 -0.289623229965E-05 0.186986052523E-07 850 0.220911243682E-05 0.224073917477E-07 851 -0.393089823567E-01 -0.999269185122E-04 852 0.393087631154E-01 0.112670705260E-03 853 0.393163679486E-01 0.108683773528E-03 854 0.393066806123E-01 0.975579881884E-04 855 -0.393164725911E-01 -0.104037706341E-03 856 -0.393065821974E-01 -0.114750478667E-03 857 0.392962629619E-01 0.998351389223E-04 858 -0.392961545155E-01 -0.112439313898E-03 859 -0.289629371562E-05 0.187050487853E-07 860 0.412160807881 -0.369858497940E-02 861 0.771295695242E-06 0.273670840898E-07 862 -0.393132813245E-01 -0.101963844012E-03 863 0.393131816208E-01 0.110825741346E-03 864 -0.393035277968E-01 -0.113829175296E-03 865 -0.393136140573E-01 -0.101309693117E-03 866 0.393036432747E-01 0.984146866840E-04 867 0.393135082131E-01 0.111449180369E-03 868 0.393022168111E-01 0.100228710765E-03 869 -0.393020965623E-01 -0.112058684434E-03 870 0.220916941967E-05 0.223844269791E-07 871 0.771274525641E-06 0.273253831362E-07 872 0.412158384995 -0.369860988225E-02 873 -0.392965047724E-01 -0.102892757331E-03 874 0.392964427735E-01 0.109273523912E-03 875 0.393152209743E-01 0.106441530240E-03 876 -0.393106107570E-01 -0.105367973019E-03 877 -0.393151260270E-01 -0.106159394180E-03 878 0.393104956338E-01 0.107254101139E-03 879 -0.392905755966E-01 -0.112962789738E-03 880 0.392907477199E-01 0.992263427053E-04 881 -0.393087683703E-01 -0.112670997931E-03 882 -0.393131859279E-01 -0.110825814263E-03 883 -0.392964366825E-01 -0.109273376024E-03 884 0.813946939367 -0.578334054200E-03 885 -0.387118985287E-01 -0.228045500788E-03 886 -0.520623956260E-01 -0.274782400493E-03 887 -0.665090191526E-01 -0.250599753710E-03 888 -0.665159284002E-01 -0.242274592446E-03 889 -0.520687378621E-01 -0.282528476614E-03 890 -0.521138125554E-01 -0.281866309204E-03 891 -0.664696994501E-01 -0.240572958541E-03 892 0.393089771026E-01 0.999266567502E-04 893 0.393132770241E-01 0.101963478639E-03 894 0.392965108658E-01 0.102892906112E-03 895 -0.387118748780E-01 -0.194560903742E-03 896 0.813946753021 -0.578342949212E-03 897 -0.665157837247E-01 -0.272951287529E-03 898 -0.520687807377E-01 -0.267827457486E-03 899 -0.520623666431E-01 -0.275544681270E-03 900 -0.665088804020E-01 -0.264593700035E-03 901 -0.664695379070E-01 -0.274308556306E-03 902 -0.521138875333E-01 -0.268821996453E-03 903 0.393164946931E-01 0.104038733239E-03 904 -0.393036332037E-01 -0.984145517930E-04 905 0.393151143346E-01 0.106159025279E-03 906 -0.520623790829E-01 -0.275546094188E-03 907 -0.665158893029E-01 -0.242273320863E-03 908 0.814021548000 -0.578124880669E-03 909 -0.665481123789E-01 -0.257781563669E-03 910 -0.388042888991E-01 -0.178784873905E-03 911 -0.520377519602E-01 -0.274374971283E-03 912 -0.520423883477E-01 -0.307755756296E-03 913 -0.665269814990E-01 -0.268428015316E-03 914 0.393065746852E-01 0.114750217408E-03 915 -0.393135004272E-01 -0.111448524698E-03 916 -0.393105086819E-01 -0.107254621194E-03 917 -0.665089198096E-01 -0.264593561139E-03 918 -0.520687343708E-01 -0.282527049994E-03 919 -0.665480913313E-01 -0.257740230255E-03 920 0.814038915497 -0.578052088275E-03 921 -0.520377310685E-01 -0.274374493059E-03 922 -0.388090413104E-01 -0.256971565252E-03 923 -0.665397491200E-01 -0.229483797660E-03 924 -0.520390210539E-01 -0.249408652205E-03 925 -0.393163458321E-01 -0.108682759534E-03 926 0.393035378433E-01 0.113829955333E-03 927 -0.393152326591E-01 -0.106442240426E-03 928 -0.665158227642E-01 -0.272953673526E-03 929 -0.520623831016E-01 -0.274782723868E-03 930 -0.388042008058E-01 -0.244376897680E-03 931 -0.520377476372E-01 -0.275682913179E-03 932 0.814021546621 -0.578124936412E-03 933 -0.665481291766E-01 -0.257741674536E-03 934 -0.665269548234E-01 -0.246843926517E-03 935 -0.520426137798E-01 -0.242557274587E-03 936 -0.393066881173E-01 -0.975583398470E-04 937 0.393136218711E-01 0.101309891586E-03 938 0.393105976982E-01 0.105367466657E-03 939 -0.520687843546E-01 -0.267826209231E-03 940 -0.665089799319E-01 -0.250595947489E-03 941 -0.520377684810E-01 -0.275684410859E-03 942 -0.388092092859E-01 -0.166242472142E-03 943 -0.665481501951E-01 -0.257783670123E-03 944 0.814039018931 -0.578047173603E-03 945 -0.520388908964E-01 -0.300882962370E-03 946 -0.665397405418E-01 -0.285805236687E-03 947 0.392961648475E-01 0.112439762026E-03 948 0.393020948473E-01 0.112058914435E-03 949 -0.392907342289E-01 -0.992255130028E-04 950 -0.521138992606E-01 -0.268823112869E-03 951 -0.664695622263E-01 -0.240565406417E-03 952 -0.520425772968E-01 -0.242555742069E-03 953 -0.665396377114E-01 -0.285799740213E-03 954 -0.665269074559E-01 -0.268425463466E-03 955 -0.520390144128E-01 -0.249406098740E-03 956 0.813870834243 -0.578521114033E-03 957 -0.386508339834E-01 -0.238022461351E-03 958 -0.392962526359E-01 -0.998348236007E-04 959 -0.393022184791E-01 -0.100229288848E-03 960 0.392905890981E-01 0.112963406399E-03 961 -0.664696752312E-01 -0.274313888119E-03 962 -0.521138007733E-01 -0.281866260510E-03 963 -0.665270287746E-01 -0.246848346349E-03 964 -0.520388977496E-01 -0.300880955864E-03 965 -0.520424248173E-01 -0.307757562618E-03 966 -0.665398520111E-01 -0.229487980312E-03 967 -0.386510256670E-01 -0.184379677709E-03 968 0.813871113589 -0.578507802086E-03 969 0.399939291183 -0.447733044393E-02 970 -0.283442522430E-05 0.226439019445E-07 971 0.228466246223E-05 0.283123491158E-07 972 -0.396492283696E-01 -0.113530781371E-03 973 0.396489575241E-01 0.126989237382E-03 974 0.396567816592E-01 0.122872336188E-03 975 0.396464302935E-01 0.111309048878E-03 976 -0.396569140176E-01 -0.117801819293E-03 977 -0.396463085662E-01 -0.128854062698E-03 978 0.396359566198E-01 0.113595049112E-03 979 -0.396358238953E-01 -0.126526345121E-03 980 -0.283448934514E-05 0.226476277980E-07 981 0.399939808018 -0.447732271612E-02 982 0.864782111723E-06 0.355376376996E-07 983 -0.396538352110E-01 -0.115789893345E-03 984 0.396537122346E-01 0.124970385444E-03 985 -0.396431451835E-01 -0.127923824785E-03 986 -0.396541178281E-01 -0.115102370931E-03 987 0.396432861529E-01 0.112158623047E-03 988 0.396539869362E-01 0.125620522478E-03 989 0.396419329114E-01 0.113948693491E-03 990 -0.396417840960E-01 -0.126185885823E-03 991 0.228472207494E-05 0.282878632318E-07 992 0.864760074426E-06 0.354880477936E-07 993 0.399937300197 -0.447735490005E-02 994 -0.396360138657E-01 -0.116689581294E-03 995 0.396359357933E-01 0.123298371837E-03 996 0.396554587211E-01 0.120223425953E-03 997 -0.396508857817E-01 -0.119161365734E-03 998 -0.396553386107E-01 -0.120299435444E-03 999 0.396507436751E-01 0.121389689834E-03 1000 -0.396300965238E-01 -0.127142181501E-03 1001 0.396303080598E-01 0.112876488171E-03 1002 -0.396489635223E-01 -0.126989529927E-03 1003 -0.396537171570E-01 -0.124970443169E-03 1004 -0.396359290874E-01 -0.123298263534E-03 1005 0.812057644146 -0.683585108457E-03 1006 -0.394044332243E-01 -0.268146383695E-03 1007 -0.529644760146E-01 -0.327213225448E-03 1008 -0.673513712299E-01 -0.297934531340E-03 1009 -0.673583384158E-01 -0.289602165355E-03 1010 -0.529708555696E-01 -0.335064729296E-03 1011 -0.530164737423E-01 -0.334500562493E-03 1012 -0.673115414881E-01 -0.288001965541E-03 1013 0.396492223727E-01 0.113530521348E-03 1014 0.396538302946E-01 0.115789511870E-03 1015 0.396360205735E-01 0.116689691977E-03 1016 -0.394044042399E-01 -0.234740457510E-03 1017 0.812057430681 -0.683594066725E-03 1018 -0.673581679286E-01 -0.320625101282E-03 1019 -0.529709063443E-01 -0.320212163458E-03 1020 -0.529644422471E-01 -0.328029419881E-03 1021 -0.673512081103E-01 -0.312254121416E-03 1022 -0.673113564562E-01 -0.321815771062E-03 1023 -0.530165640900E-01 -0.321171151932E-03 1024 0.396569393800E-01 0.117802863605E-03 1025 -0.396432746128E-01 -0.112158532561E-03 1026 0.396553252093E-01 0.120299087548E-03 1027 -0.529644564693E-01 -0.328030958395E-03 1028 -0.673582936784E-01 -0.289600972098E-03 1029 0.812132939512 -0.683335263628E-03 1030 -0.673909952861E-01 -0.305276145804E-03 1031 -0.394977375628E-01 -0.218833931469E-03 1032 -0.529393881281E-01 -0.326833995351E-03 1033 -0.529444225870E-01 -0.360521778941E-03 1034 -0.673694556465E-01 -0.316010566626E-03 1035 0.396463001207E-01 0.128853831969E-03 1036 -0.396539778758E-01 -0.125619813515E-03 1037 -0.396507584641E-01 -0.121390192256E-03 1038 -0.673512531943E-01 -0.312253700996E-03 1039 -0.529708516193E-01 -0.335063116611E-03 1040 -0.673909706396E-01 -0.305303285443E-03 1041 0.812150545749 -0.683248453645E-03 1042 -0.529393641987E-01 -0.326833582780E-03 1043 -0.395025536435E-01 -0.297442748783E-03 1044 -0.673822496481E-01 -0.276808293246E-03 1045 -0.529410481408E-01 -0.301661783105E-03 1046 -0.396567562811E-01 -0.122871314837E-03 1047 0.396431566989E-01 0.127924654477E-03 1048 -0.396554721146E-01 -0.120224165465E-03 1049 -0.673582126075E-01 -0.320627577956E-03 1050 -0.529644617068E-01 -0.327213676567E-03 1051 -0.394976344717E-01 -0.284712352277E-03 1052 -0.529393836535E-01 -0.328088026292E-03 1053 0.812132937942 -0.683335317823E-03 1054 -0.673910139515E-01 -0.305304690810E-03 1055 -0.673694271071E-01 -0.294271567561E-03 1056 -0.529446883934E-01 -0.294705069114E-03 1057 -0.396464387313E-01 -0.111309389802E-03 1058 0.396541269166E-01 0.115102561187E-03 1059 0.396508709809E-01 0.119160881907E-03 1060 -0.529709104208E-01 -0.320210713124E-03 1061 -0.673513263337E-01 -0.297930431407E-03 1062 -0.529394075353E-01 -0.328089604401E-03 1063 -0.395027512204E-01 -0.206166227356E-03 1064 -0.673910385692E-01 -0.305278305521E-03 1065 0.812150664217 -0.683243507529E-03 1066 -0.529408944581E-01 -0.353539402682E-03 1067 -0.673822360876E-01 -0.333493230468E-03 1068 0.396358356220E-01 0.126526788706E-03 1069 0.396417820068E-01 0.126186156953E-03 1070 -0.396302924702E-01 -0.112875614234E-03 1071 -0.530165775481E-01 -0.321172353861E-03 1072 -0.673113844231E-01 -0.287994228450E-03 1073 -0.529446466508E-01 -0.294703551116E-03 1074 -0.673821183812E-01 -0.333487620001E-03 1075 -0.673693708980E-01 -0.316008136165E-03 1076 -0.529410405507E-01 -0.301658903667E-03 1077 0.811980930154 -0.683804424150E-03 1078 -0.393430139591E-01 -0.278458439637E-03 1079 -0.396359448987E-01 -0.113594757784E-03 1080 -0.396419349524E-01 -0.113949354198E-03 1081 0.396301121249E-01 0.127142803624E-03 1082 -0.673115136215E-01 -0.321820968906E-03 1083 -0.530164602286E-01 -0.334500586253E-03 1084 -0.673695117631E-01 -0.294276139928E-03 1085 -0.529409022608E-01 -0.353537064057E-03 1086 -0.529444643160E-01 -0.360523608912E-03 1087 -0.673823674150E-01 -0.276812403315E-03 1088 -0.393432424617E-01 -0.224186903358E-03 1089 0.811981250142 -0.683791020474E-03 1090 0.385188527663 -0.539567857914E-02 1091 -0.275981690714E-05 0.272865988972E-07 1092 0.238017759339E-05 0.358633054592E-07 1093 -0.400294981164E-01 -0.125592480756E-03 1094 0.400291638637E-01 0.139934462143E-03 1095 0.400372600184E-01 0.135658554231E-03 1096 0.400260883856E-01 0.123554813991E-03 1097 -0.400374275792E-01 -0.130060276469E-03 1098 -0.400259380361E-01 -0.141532310431E-03 1099 0.400155458515E-01 0.125850871419E-03 1100 -0.400153837047E-01 -0.139185076032E-03 1101 -0.275988430297E-05 0.272875672336E-07 1102 0.385189071624 -0.539566798428E-02 1103 0.986460874947E-06 0.464244746598E-07 1104 -0.400344904947E-01 -0.128126818311E-03 1105 0.400343390115E-01 0.137701093748E-03 1106 -0.400226388908E-01 -0.140590724732E-03 1107 -0.400347122958E-01 -0.127399331961E-03 1108 0.400228105516E-01 0.124395593826E-03 1109 0.400345505967E-01 0.138383170751E-03 1110 0.400215450519E-01 0.126153920119E-03 1111 -0.400213610341E-01 -0.138894388870E-03 1112 0.238024041521E-05 0.358367401767E-07 1113 0.986437795013E-06 0.463664036967E-07 1114 0.385186453829 -0.539570979642E-02 1115 -0.400153763084E-01 -0.128989568972E-03 1116 0.400152779198E-01 0.135882092687E-03 1117 0.400357166223E-01 0.132502227559E-03 1118 -0.400311929112E-01 -0.131455787277E-03 1119 -0.400355645123E-01 -0.133026428738E-03 1120 0.400310176184E-01 0.134110657237E-03 1121 -0.400094780843E-01 -0.139915824563E-03 1122 0.400097376124E-01 0.124997239186E-03 1123 -0.400291705966E-01 -0.139934753033E-03 1124 -0.400343445476E-01 -0.137701136988E-03 1125 -0.400152707269E-01 -0.135882035849E-03 1126 0.809836676200 -0.800127604486E-03 1127 -0.402244466871E-01 -0.313249361505E-03 1128 -0.540332708280E-01 -0.386273296393E-03 1129 -0.683437414242E-01 -0.350576839793E-03 1130 -0.683507772519E-01 -0.342235187398E-03 1131 -0.540396952621E-01 -0.394248457850E-03 1132 -0.540859555511E-01 -0.393800246905E-03 1133 -0.683033072797E-01 -0.340758862370E-03 1134 0.400294913851E-01 0.125592223082E-03 1135 0.400344849635E-01 0.128126422079E-03 1136 0.400153835026E-01 0.128989631551E-03 1137 -0.402244115380E-01 -0.279939316961E-03 1138 0.809836435406 -0.800136636549E-03 1139 -0.683505782716E-01 -0.373668601403E-03 1140 -0.540397548167E-01 -0.379218062799E-03 1141 -0.540332320023E-01 -0.387152809521E-03 1142 -0.683435517322E-01 -0.365281241369E-03 1143 -0.683030984864E-01 -0.374662045523E-03 1144 -0.540860636434E-01 -0.380131063297E-03 1145 0.400374562552E-01 0.130061343341E-03 1146 -0.400227975278E-01 -0.124395547470E-03 1147 0.400355493834E-01 0.133026101753E-03 1148 -0.540332480052E-01 -0.387154474632E-03 1149 -0.683507268513E-01 -0.342234072904E-03 1150 0.809912787602 -0.799831902852E-03 1151 -0.683839948886E-01 -0.358106215049E-03 1152 -0.403188300592E-01 -0.263876565949E-03 1153 -0.540076566750E-01 -0.385928134407E-03 1154 -0.540131662565E-01 -0.419977327288E-03 1155 -0.683619709560E-01 -0.368945335329E-03 1156 0.400259287301E-01 0.141532117489E-03 1157 -0.400345401825E-01 -0.138382401935E-03 1158 -0.400310340873E-01 -0.134111137817E-03 1159 -0.683436025156E-01 -0.365280538701E-03 1160 -0.540396908764E-01 -0.394246659775E-03 1161 -0.683839664579E-01 -0.358212913156E-03 1162 0.809930676985 -0.799729397921E-03 1163 -0.540076296835E-01 -0.385927786150E-03 1164 -0.403237245365E-01 -0.342978078360E-03 1165 -0.683747958020E-01 -0.329439751316E-03 1166 -0.540097806784E-01 -0.360512942605E-03 1167 -0.400372313254E-01 -0.135657522882E-03 1168 0.400226518898E-01 0.140591605590E-03 1169 -0.400357317430E-01 -0.132502998610E-03 1170 -0.683506286129E-01 -0.373671170393E-03 1171 -0.540332547385E-01 -0.386273877231E-03 1172 -0.403187107668E-01 -0.330088072828E-03 1173 -0.540076521784E-01 -0.387119352353E-03 1174 0.809912785847 -0.799831955145E-03 1175 -0.683840152623E-01 -0.358214280633E-03 1176 -0.683619415459E-01 -0.347023422789E-03 1177 -0.540134766021E-01 -0.353431217557E-03 1178 -0.400260976833E-01 -0.123555138402E-03 1179 0.400347227387E-01 0.127399520167E-03 1180 0.400311764292E-01 0.131455332815E-03 1181 -0.540397593294E-01 -0.379216407723E-03 1182 -0.683436908295E-01 -0.350572443934E-03 1183 -0.540076791224E-01 -0.387121011602E-03 1184 -0.403239545850E-01 -0.251061297236E-03 1185 -0.683840436641E-01 -0.358108429012E-03 1186 0.809930810593 -0.799724415281E-03 1187 -0.540096009852E-01 -0.412865111671E-03 1188 -0.683747753475E-01 -0.386550558147E-03 1189 0.400153967887E-01 0.139185512895E-03 1190 0.400213585060E-01 0.138894697560E-03 1191 -0.400097198411E-01 -0.124996312863E-03 1192 -0.540860788532E-01 -0.380132353039E-03 1193 -0.683031302813E-01 -0.340750937076E-03 1194 -0.540134295823E-01 -0.353429714360E-03 1195 -0.683746426913E-01 -0.386544831215E-03 1196 -0.683618754468E-01 -0.368943025297E-03 1197 -0.540097721480E-01 -0.360509736703E-03 1198 0.809759251398 -0.800382867717E-03 1199 -0.401626109435E-01 -0.323961539335E-03 1200 -0.400155327727E-01 -0.125850608578E-03 1201 -0.400215475302E-01 -0.126154670464E-03 1202 0.400094958682E-01 0.139916456994E-03 1203 -0.683032755849E-01 -0.374667112837E-03 1204 -0.540859402849E-01 -0.393800343300E-03 1205 -0.683620369616E-01 -0.347028150975E-03 1206 -0.540096097291E-01 -0.412862438726E-03 1207 -0.540132132625E-01 -0.419979181345E-03 1208 -0.683749285183E-01 -0.329443791940E-03 1209 -0.401628811137E-01 -0.268943984642E-03 1210 0.809759612336 -0.800369357153E-03 1211 0.367416053489 -0.650758027344E-02 1212 -0.266996218707E-05 0.328862446971E-07 1213 0.250160315602E-05 0.458147775609E-07 1214 -0.404438720249E-01 -0.134896997263E-03 1215 0.404434575843E-01 0.150333501406E-03 1216 0.404518927652E-01 0.145863593988E-03 1217 0.404397069820E-01 0.133088926760E-03 1218 -0.404521062247E-01 -0.139607288488E-03 1219 -0.404395205332E-01 -0.151597467497E-03 1220 0.404290795759E-01 0.135395883239E-03 1221 -0.404288806718E-01 -0.149227288889E-03 1222 -0.267003358587E-05 0.328842153982E-07 1223 0.367416634845 -0.650756556830E-02 1224 0.114627680139E-05 0.613828103178E-07 1225 -0.404493484755E-01 -0.137774061671E-03 1226 0.404491610645E-01 0.147835964028E-03 1227 -0.404360515116E-01 -0.150641152991E-03 1228 -0.404494964601E-01 -0.136998657026E-03 1229 0.404362612305E-01 0.133918409267E-03 1230 0.404492957771E-01 0.148556010771E-03 1231 0.404351004948E-01 0.135634696906E-03 1232 -0.404348718356E-01 -0.148998398342E-03 1233 0.250166993507E-05 0.457855404949E-07 1234 0.114625246270E-05 0.613154251164E-07 1235 0.367413873471 -0.650762050318E-02 1236 -0.404286309738E-01 -0.138586771616E-03 1237 0.404285061994E-01 0.145833479939E-03 1238 0.404500728092E-01 0.142071508584E-03 1239 -0.404456148003E-01 -0.141046506572E-03 1240 -0.404498789209E-01 -0.143158475789E-03 1241 0.404453974533E-01 0.144234672534E-03 1242 -0.404227615440E-01 -0.150100928344E-03 1243 0.404230812210E-01 0.134375530667E-03 1244 -0.404434650379E-01 -0.150333788210E-03 1245 -0.404491672110E-01 -0.147835993501E-03 1246 -0.404284986849E-01 -0.145833490337E-03 1247 0.807245604693 -0.931230565844E-03 1248 -0.411890231542E-01 -0.364824548115E-03 1249 -0.552914158075E-01 -0.453924076471E-03 1250 -0.695042957756E-01 -0.410069101384E-03 1251 -0.695114127304E-01 -0.401715360994E-03 1252 -0.552978939361E-01 -0.462043205798E-03 1253 -0.553449075533E-01 -0.461732627407E-03 1254 -0.694631502537E-01 -0.400388299222E-03 1255 0.404438645734E-01 0.134896743218E-03 1256 0.404493423328E-01 0.137773652717E-03 1257 0.404286384889E-01 0.138586772627E-03 1258 -0.411889809365E-01 -0.331630223144E-03 1259 0.807245336324 -0.931239683371E-03 1260 -0.695111817004E-01 -0.433632668165E-03 1261 -0.552979634041E-01 -0.446805782691E-03 1262 -0.552913716198E-01 -0.454877191810E-03 1263 -0.695040767403E-01 -0.425224823118E-03 1264 -0.694629172552E-01 -0.434392771825E-03 1265 -0.553450364732E-01 -0.447660813983E-03 1266 0.404521382837E-01 0.139608385140E-03 1267 -0.404362467035E-01 -0.133918406530E-03 1268 0.404498620406E-01 0.143158169437E-03 1269 -0.552913894002E-01 -0.454878984630E-03 1270 -0.695113566411E-01 -0.401714326015E-03 1271 0.807322679166 -0.930882261775E-03 1272 -0.695452903430E-01 -0.417818836004E-03 1273 -0.412846719578E-01 -0.315383961707E-03 1274 -0.552651821414E-01 -0.453618511834E-03 1275 -0.552712543139E-01 -0.488091327057E-03 1276 -0.695226969854E-01 -0.428780678902E-03 1277 0.404395104631E-01 0.151597322333E-03 1278 -0.404492839065E-01 -0.148555173114E-03 1279 -0.404454155238E-01 -0.144235125700E-03 1280 -0.695041332488E-01 -0.425223837260E-03 1281 -0.552978891433E-01 -0.462041223090E-03 1282 -0.695452580065E-01 -0.418016665848E-03 1283 0.807340901862 -0.930761855056E-03 1284 -0.552651520604E-01 -0.453618226411E-03 1285 -0.412896617593E-01 -0.395056026246E-03 1286 -0.695355573124E-01 -0.388921303918E-03 1287 -0.552678536464E-01 -0.427919618768E-03 1288 -0.404518606873E-01 -0.145862548787E-03 1289 0.404360660135E-01 0.150642087158E-03 1290 -0.404500896806E-01 -0.142072314074E-03 1291 -0.695112377294E-01 -0.433635331132E-03 1292 -0.552913979392E-01 -0.453924789414E-03 1293 -0.412845349052E-01 -0.381979346654E-03 1294 -0.552651776881E-01 -0.454737620775E-03 1295 0.807322677232 -0.930882311738E-03 1296 -0.695453123325E-01 -0.418017996506E-03 1297 -0.695226679925E-01 -0.406644281476E-03 1298 -0.552716146417E-01 -0.420690431747E-03 1299 -0.404397170432E-01 -0.133089226494E-03 1300 0.404495083599E-01 0.136998851304E-03 1301 0.404455967150E-01 0.141046090408E-03 1302 -0.552979683245E-01 -0.446803919815E-03 1303 -0.695042394568E-01 -0.410064407219E-03 1304 -0.552652077221E-01 -0.454739361749E-03 1305 -0.412899280654E-01 -0.302396283318E-03 1306 -0.695453446402E-01 -0.417821105231E-03 1307 0.807341050733 -0.930756830331E-03 1308 -0.552676447225E-01 -0.480826086511E-03 1309 -0.695355274652E-01 -0.446527135775E-03 1310 0.404288950669E-01 0.149227716473E-03 1311 0.404348687869E-01 0.148998740022E-03 1312 -0.404230611628E-01 -0.134374541288E-03 1313 -0.553450534587E-01 -0.447662194122E-03 1314 -0.694629532178E-01 -0.400380182592E-03 1315 -0.552715623269E-01 -0.420688943945E-03 1316 -0.695353797757E-01 -0.446521290028E-03 1317 -0.695225906531E-01 -0.428778488532E-03 1318 -0.552678441867E-01 -0.427916085938E-03 1319 0.807167354371 -0.931526703550E-03 1320 -0.411267006050E-01 -0.376010658267E-03 1321 -0.404290651854E-01 -0.135395654416E-03 1322 -0.404351034919E-01 -0.135635545883E-03 1323 0.404227816164E-01 0.150101577370E-03 1324 -0.694631143909E-01 -0.434397712096E-03 1325 -0.553448905101E-01 -0.461732796787E-03 1326 -0.695227742304E-01 -0.406649168982E-03 1327 -0.552676543966E-01 -0.480823076658E-03 1328 -0.552713066146E-01 -0.488093205426E-03 1329 -0.695357050616E-01 -0.388925278391E-03 1330 -0.411270187962E-01 -0.320113185552E-03 1331 0.807167756617 -0.931513069360E-03 1332 0.345930768885 -0.789565622617E-02 1333 -0.256146424140E-05 0.398352357797E-07 1334 0.265774728505E-05 0.593876756433E-07 1335 -0.408816640859E-01 -0.139288850034E-03 1336 0.408811448299E-01 0.156091677281E-03 1337 0.408900069929E-01 0.151384525784E-03 1338 0.408765593168E-01 0.137768155348E-03 1339 -0.408902821434E-01 -0.144300849596E-03 1340 -0.408763259209E-01 -0.156932881552E-03 1341 0.408658263022E-01 0.140086093224E-03 1342 -0.408655798499E-01 -0.154535735021E-03 1343 -0.256154058371E-05 0.398297276899E-07 1344 0.345931402575 -0.789563544651E-02 1345 0.135939206554E-05 0.826704540354E-07 1346 -0.408877534402E-01 -0.142597452400E-03 1347 0.408875192449E-01 0.153267663096E-03 1348 -0.408726421739E-01 -0.155957012265E-03 1349 -0.408878113125E-01 -0.141764182736E-03 1350 0.408729007199E-01 0.138582423367E-03 1351 0.408875596585E-01 0.154032816540E-03 1352 0.408718652184E-01 0.140242723085E-03 1353 -0.408715780572E-01 -0.154384070661E-03 1354 0.265781901033E-05 0.593550722582E-07 1355 0.135936619319E-05 0.825926031744E-07 1356 0.345928451049 -0.789570889685E-02 1357 -0.408650321387E-01 -0.143338134438E-03 1358 0.408648720076E-01 0.151030954479E-03 1359 0.408878375231E-01 0.146787998065E-03 1360 -0.408834685657E-01 -0.145792867768E-03 1361 -0.408875874290E-01 -0.148587886165E-03 1362 0.408831960852E-01 0.149653536112E-03 1363 -0.408592044749E-01 -0.155588006295E-03 1364 0.408596020753E-01 0.138858309040E-03 1365 -0.408811529816E-01 -0.156091956030E-03 1366 -0.408875259945E-01 -0.153267679403E-03 1367 -0.408648643875E-01 -0.151031053846E-03 1368 0.804234573994 -0.108137086095E-02 1369 -0.423203795361E-01 -0.424874708373E-03 1370 -0.567684024745E-01 -0.532847765300E-03 1371 -0.708566075568E-01 -0.478527691436E-03 1372 -0.708638207775E-01 -0.470157863189E-03 1373 -0.567749450389E-01 -0.541133845438E-03 1374 -0.568228394748E-01 -0.540987472905E-03 1375 -0.708146273456E-01 -0.469009117345E-03 1376 0.408816559368E-01 0.139288602149E-03 1377 0.408877466925E-01 0.142597033907E-03 1378 0.408650397585E-01 0.143338055007E-03 1379 -0.423203293972E-01 -0.391818646587E-03 1380 0.804234277766 -0.108138007719E-02 1381 -0.708635528871E-01 -0.502644777628E-03 1382 -0.567750259030E-01 -0.525656408321E-03 1383 -0.567683526171E-01 -0.533885710439E-03 1384 -0.708563556866E-01 -0.494210491204E-03 1385 -0.708143693679E-01 -0.503128206326E-03 1386 -0.568229932582E-01 -0.526439522443E-03 1387 0.408903176785E-01 0.144301986604E-03 1388 -0.408728846633E-01 -0.138582463264E-03 1389 0.408875687666E-01 0.148587599775E-03 1390 -0.567683721703E-01 -0.533887632216E-03 1391 -0.708637589722E-01 -0.470156908875E-03 1392 0.804312781748 -0.108096108477E-02 1393 -0.708984722021E-01 -0.486536635908E-03 1394 -0.424175079125E-01 -0.375359988783E-03 1395 -0.567414415061E-01 -0.532586516277E-03 1396 -0.567481768822E-01 -0.567555630263E-03 1397 -0.708752122301E-01 -0.497640687452E-03 1398 0.408763152166E-01 0.156932798477E-03 1399 -0.408875461977E-01 -0.154031897180E-03 1400 -0.408832156552E-01 -0.149653954200E-03 1401 -0.708564179488E-01 -0.494209221010E-03 1402 -0.567749398729E-01 -0.541131678912E-03 1403 -0.708984360194E-01 -0.486837325644E-03 1404 0.804331395574 -0.108081981172E-02 1405 -0.567414083047E-01 -0.532586292008E-03 1406 -0.424226129927E-01 -0.455690182577E-03 1407 -0.708881128190E-01 -0.457370201868E-03 1408 -0.567447573254E-01 -0.506558662163E-03 1409 -0.408899714366E-01 -0.151383460758E-03 1410 0.408726582048E-01 0.155958002929E-03 1411 -0.408878561759E-01 -0.146788841938E-03 1412 -0.708636146310E-01 -0.502647536187E-03 1413 -0.567683828319E-01 -0.532848613196E-03 1414 -0.424173510383E-01 -0.442395406547E-03 1415 -0.567414369987E-01 -0.533624130231E-03 1416 0.804312779640 -0.108096113187E-02 1417 -0.708984959000E-01 -0.486838620633E-03 1418 -0.708751853354E-01 -0.475253623471E-03 1419 -0.567485944228E-01 -0.499155836333E-03 1420 -0.408765700113E-01 -0.137768418324E-03 1421 0.408878248038E-01 0.141764394237E-03 1422 0.408834489788E-01 0.145792501951E-03 1423 -0.567750311974E-01 -0.525654334166E-03 1424 -0.708565454854E-01 -0.478522696421E-03 1425 -0.567414701536E-01 -0.533625953328E-03 1426 -0.424229206726E-01 -0.362171615525E-03 1427 -0.708985320540E-01 -0.486538961491E-03 1428 0.804331559851 -0.108081473868E-02 1429 -0.567445149442E-01 -0.560110264987E-03 1430 -0.708880702543E-01 -0.515549106184E-03 1431 0.408655954993E-01 0.154536150337E-03 1432 0.408715743840E-01 0.154384439247E-03 1433 -0.408595795952E-01 -0.138857242158E-03 1434 -0.568230120471E-01 -0.526440995855E-03 1435 -0.708144101558E-01 -0.469000806379E-03 1436 -0.567485367952E-01 -0.499154364895E-03 1437 -0.708879074377E-01 -0.515543139449E-03 1438 -0.708750950046E-01 -0.497638616203E-03 1439 -0.567447469507E-01 -0.506554801993E-03 1440 0.804155366200 -0.108171462346E-02 1441 -0.422574879075E-01 -0.436619564431E-03 1442 -0.408658106566E-01 -0.140085905302E-03 1443 -0.408718688374E-01 -0.140243682547E-03 1444 0.408592269713E-01 0.155588680423E-03 1445 -0.708145866570E-01 -0.503133023127E-03 1446 -0.568228206269E-01 -0.540987715860E-03 1447 -0.708753024653E-01 -0.475258674032E-03 1448 -0.567445255344E-01 -0.560106915189E-03 1449 -0.567482344952E-01 -0.567557532882E-03 1450 -0.708882756947E-01 -0.457374113717E-03 1451 -0.422578625653E-01 -0.379686338026E-03 1452 0.804155810165 -0.108170084670E-02 1453 0.319727805430 -0.969423685397E-02 1454 -0.242944668190E-05 0.487625848916E-07 1455 0.286218752930E-05 0.786832120952E-07 1456 -0.413235586848E-01 -0.134790338025E-03 1457 0.413228968317E-01 0.153322379750E-03 1458 0.413323058987E-01 0.148323067362E-03 1459 0.413172687648E-01 0.133632551323E-03 1460 -0.413326671561E-01 -0.140183779266E-03 1461 -0.413169720079E-01 -0.153617957218E-03 1462 0.413064020873E-01 0.135960005372E-03 1463 -0.413060915111E-01 -0.151189014687E-03 1464 -0.242952921188E-05 0.487527656449E-07 1465 0.319728513939 -0.969420674092E-02 1466 0.164992224508E-05 0.114291740670E-06 1467 -0.413304353254E-01 -0.138652104912E-03 1468 0.413301377437E-01 0.150091385351E-03 1469 -0.413130123900E-01 -0.152615437485E-03 1470 -0.413303819576E-01 -0.137747980821E-03 1471 0.413133362120E-01 0.134425157636E-03 1472 0.413300609501E-01 0.150910409249E-03 1473 0.413124513027E-01 0.136009965759E-03 1474 -0.413120843591E-01 -0.151134961151E-03 1475 0.286226554790E-05 0.786463612930E-07 1476 0.164989448785E-05 0.114201812161E-06 1477 0.319725305217 -0.969430744303E-02 1478 -0.413051750310E-01 -0.139283196892E-03 1479 0.413049656626E-01 0.147546582699E-03 1480 0.413296886155E-01 0.142691955852E-03 1481 -0.413254429704E-01 -0.141739379230E-03 1482 -0.413293600984E-01 -0.145408453363E-03 1483 0.413250952161E-01 0.146460541090E-03 1484 -0.412994065870E-01 -0.152467189692E-03 1485 0.412999092691E-01 0.134470625865E-03 1486 -0.413229056440E-01 -0.153322643653E-03 1487 -0.413301450828E-01 -0.150091388653E-03 1488 -0.413049582257E-01 -0.147546802409E-03 1489 0.800737739781 -0.125696520663E-02 1490 -0.436478478444E-01 -0.496229333776E-03 1491 -0.585032730833E-01 -0.626857026327E-03 1492 -0.724318364296E-01 -0.558997581480E-03 1493 -0.724391652208E-01 -0.550605643312E-03 1494 -0.585098939323E-01 -0.635336545420E-03 1495 -0.585588180167E-01 -0.635387471188E-03 1496 -0.723888768271E-01 -0.549668710003E-03 1497 0.413235498759E-01 0.134790101300E-03 1498 0.413304279858E-01 0.138651682118E-03 1499 0.413051824664E-01 0.139283009234E-03 1500 -0.436477893194E-01 -0.463336244914E-03 1501 0.800737415367 -0.125697453711E-02 1502 -0.724388537677E-01 -0.583764764899E-03 1503 -0.585099881867E-01 -0.619581080309E-03 1504 -0.585032173195E-01 -0.627991904915E-03 1505 -0.724315473125E-01 -0.575294901526E-03 1506 -0.723885924187E-01 -0.583918529416E-03 1507 -0.585590020090E-01 -0.620275870703E-03 1508 0.413327062957E-01 0.140184972986E-03 1509 -0.413133185891E-01 -0.134425238202E-03 1510 0.413293396126E-01 0.145408185437E-03 1511 -0.585032386383E-01 -0.627993957101E-03 1512 -0.724390976708E-01 -0.550604771362E-03 1513 0.800817281723 -0.125648211030E-02 1514 -0.724747233386E-01 -0.567313290195E-03 1515 -0.437467065397E-01 -0.446634992374E-03 1516 -0.584754579168E-01 -0.626643058771E-03 1517 -0.584829736229E-01 -0.662195527243E-03 1518 -0.724506845008E-01 -0.578580553802E-03 1519 0.413169608495E-01 0.153617957798E-03 1520 -0.413300457196E-01 -0.150909388809E-03 1521 -0.413251161508E-01 -0.146460913090E-03 1522 -0.724316153601E-01 -0.575293345679E-03 1523 -0.585098884333E-01 -0.635334195842E-03 1524 -0.724746838200E-01 -0.567727857232E-03 1525 0.800836354931 -0.125631585521E-02 1526 -0.584754215612E-01 -0.626642893679E-03 1527 -0.437519511252E-01 -0.527724282898E-03 1528 -0.724636301867E-01 -0.537832509720E-03 1529 -0.584795318539E-01 -0.600235316043E-03 1530 -0.413322667345E-01 -0.148321972634E-03 1531 0.413130299865E-01 0.152616489699E-03 1532 -0.413297090906E-01 -0.142692843745E-03 1533 -0.724389212552E-01 -0.583767620506E-03 1534 -0.585032516733E-01 -0.626858012529E-03 1535 -0.437465270232E-01 -0.514173796625E-03 1536 -0.584754528825E-01 -0.627590438354E-03 1537 0.800817279451 -0.125648215389E-02 1538 -0.724747492925E-01 -0.567729117838E-03 1539 -0.724506619153E-01 -0.555900639906E-03 1540 -0.584834582270E-01 -0.592627537606E-03 1541 -0.413172799124E-01 -0.133632758647E-03 1542 0.413303972205E-01 0.137748225642E-03 1543 0.413254220160E-01 0.141739080636E-03 1544 -0.585099938152E-01 -0.619578791020E-03 1545 -0.724317685741E-01 -0.558992282905E-03 1546 -0.584754891925E-01 -0.627592343674E-03 1547 -0.437523073599E-01 -0.433212939402E-03 1548 -0.724747887824E-01 -0.567315673401E-03 1549 0.800836534774 -0.125631072666E-02 1550 -0.584792503535E-01 -0.654537575795E-03 1551 -0.724635703506E-01 -0.596674458420E-03 1552 0.413061083452E-01 0.151189414355E-03 1553 0.413120799276E-01 0.151135348242E-03 1554 -0.412998841913E-01 -0.134469461114E-03 1555 -0.585590226322E-01 -0.620277440535E-03 1556 -0.723886393544E-01 -0.549660201835E-03 1557 -0.584833952703E-01 -0.592626083931E-03 1558 -0.724633923026E-01 -0.596668368768E-03 1559 -0.724505563041E-01 -0.578578601398E-03 1560 -0.584795205823E-01 -0.600231128176E-03 1561 0.800657418506 -0.125736622258E-02 1562 -0.435842875492E-01 -0.508631355366E-03 1563 -0.413063852557E-01 -0.135959866964E-03 1564 -0.413124556767E-01 -0.136011051849E-03 1565 0.412994316842E-01 0.152467900980E-03 1566 -0.723888299901E-01 -0.583923226490E-03 1567 -0.585587973328E-01 -0.635387788669E-03 1568 -0.724507900151E-01 -0.555905857535E-03 1569 -0.584792618417E-01 -0.654533882502E-03 1570 -0.584830365646E-01 -0.662197453678E-03 1571 -0.724638082931E-01 -0.537836362832E-03 1572 -0.435847301478E-01 -0.450477088185E-03 1573 0.800657904667 -0.125735228109E-02 1574 0.287273371896 -0.121393154416E-01 1575 -0.226657674370E-05 0.607548571235E-07 1576 0.313702575489E-05 0.107624124655E-06 1577 -0.417338212423E-01 -0.113586088635E-03 1578 0.417329551013E-01 0.134354048572E-03 1579 0.417430824964E-01 0.128990737632E-03 1580 0.417260040821E-01 0.112893256787E-03 1581 -0.417435701585E-01 -0.119473828316E-03 1582 -0.417256175926E-01 -0.133925102518E-03 1583 0.417149637307E-01 0.115225570030E-03 1584 -0.417145619948E-01 -0.131458326184E-03 1585 -0.226666715603E-05 0.607392950406E-07 1586 0.287274190619 -0.121392702136E-01 1587 0.205848171433E-05 0.163957614249E-06 1588 -0.417417314231E-01 -0.118176352699E-03 1589 0.417413434089E-01 0.130608563922E-03 1590 -0.417212949759E-01 -0.132885004330E-03 1591 -0.417415384087E-01 -0.117183480528E-03 1592 0.417217107994E-01 0.113652929383E-03 1593 0.417411180016E-01 0.131492776465E-03 1594 0.417210090495E-01 0.115133778811E-03 1595 -0.417205275182E-01 -0.131529856620E-03 1596 0.313711199355E-05 0.107581831477E-06 1597 0.205845161992E-05 0.163853265694E-06 1598 0.287270623458 -0.121394133025E-01 1599 -0.417131845558E-01 -0.118630731129E-03 1600 0.417129030371E-01 0.127641156262E-03 1601 0.417398791039E-01 0.121995716087E-03 1602 -0.417358094046E-01 -0.121105791374E-03 1603 -0.417394358570E-01 -0.125917213051E-03 1604 0.417353534464E-01 0.126952576569E-03 1605 -0.417074986123E-01 -0.133027779035E-03 1606 0.417081505393E-01 0.113399348643E-03 1607 -0.417329645097E-01 -0.134354285222E-03 1608 -0.417413513111E-01 -0.130608553093E-03 1609 -0.417128961813E-01 -0.127641544474E-03 1610 0.796665702473 -0.146776909569E-02 1611 -0.452110164395E-01 -0.583058889906E-03 1612 -0.605489549593E-01 -0.741635980300E-03 1613 -0.742723728377E-01 -0.656139266741E-03 1614 -0.742798435209E-01 -0.647715702515E-03 1615 -0.605556733027E-01 -0.750340197935E-03 1616 -0.606058043593E-01 -0.750630286461E-03 1617 -0.742282607625E-01 -0.647029160739E-03 1618 0.417338118380E-01 0.113585873286E-03 1619 0.417417235165E-01 0.118175934913E-03 1620 0.417131914086E-01 0.118630391683E-03 1621 -0.452109503696E-01 -0.550353446315E-03 1622 0.796665349492 -0.146777855939E-02 1623 -0.742794787543E-01 -0.681673657074E-03 1624 -0.605557837540E-01 -0.734261769056E-03 1625 -0.605488933257E-01 -0.742880337445E-03 1626 -0.742720409016E-01 -0.673153337707E-03 1627 -0.742279469666E-01 -0.681431574659E-03 1628 -0.606060257322E-01 -0.734848870515E-03 1629 0.417436130882E-01 0.119475105844E-03 1630 -0.417216915555E-01 -0.113653046503E-03 1631 0.417394134904E-01 0.125916960269E-03 1632 -0.605489164008E-01 -0.742882521901E-03 1633 -0.742797701975E-01 -0.647714915419E-03 1634 0.796746820919 -0.146719652233E-02 1635 -0.743164662861E-01 -0.664822024991E-03 1636 -0.453119055555E-01 -0.533379177849E-03 1637 -0.605201332001E-01 -0.741468581485E-03 1638 -0.605285668117E-01 -0.777711896825E-03 1639 -0.742915178495E-01 -0.676274757316E-03 1640 0.417256062392E-01 0.133925221493E-03 1641 -0.417411007534E-01 -0.131491623756E-03 1642 -0.417353755629E-01 -0.126952885830E-03 1643 -0.742721147692E-01 -0.673151494826E-03 1644 -0.605556675170E-01 -0.750337665650E-03 1645 -0.743164250528E-01 -0.665358655878E-03 1646 0.796766436574 -0.146699927344E-02 1647 -0.605200936529E-01 -0.741468473109E-03 1648 -0.453173201198E-01 -0.615347936813E-03 1649 -0.743045132893E-01 -0.634970147789E-03 1650 -0.605251007249E-01 -0.714622906789E-03 1651 -0.417430395373E-01 -0.128989595605E-03 1652 0.417213141920E-01 0.132886126783E-03 1653 -0.417399014586E-01 -0.121996656638E-03 1654 -0.742795520138E-01 -0.681676610797E-03 1655 -0.605489317909E-01 -0.741637108623E-03 1656 -0.453116993123E-01 -0.601494821073E-03 1657 -0.605201262979E-01 -0.742319334013E-03 1658 0.796746818493 -0.146719656159E-02 1659 -0.743164961594E-01 -0.665359883638E-03 1660 -0.742915024978E-01 -0.653251934781E-03 1661 -0.605291324185E-01 -0.706771485197E-03 1662 -0.417260154236E-01 -0.112893376736E-03 1663 0.417415556927E-01 0.117183783485E-03 1664 0.417357872643E-01 0.121105584867E-03 1665 -0.605557896704E-01 -0.734259260651E-03 1666 -0.742722991635E-01 -0.656133661704E-03 1667 -0.605201658007E-01 -0.742321321163E-03 1668 -0.453177355933E-01 -0.519683800353E-03 1669 -0.743165373641E-01 -0.664824467488E-03 1670 0.796766632172 -0.146699408070E-02 1671 -0.605247722860E-01 -0.769801286750E-03 1672 -0.743044296555E-01 -0.694581692858E-03 1673 0.417145799290E-01 0.131458706798E-03 1674 0.417205221526E-01 0.131530250176E-03 1675 -0.417081226285E-01 -0.113398055826E-03 1676 -0.606060482238E-01 -0.734850540036E-03 1677 -0.742280028645E-01 -0.647020452561E-03 1678 -0.605290641188E-01 -0.706770051091E-03 1679 -0.743042362602E-01 -0.694575478685E-03 1680 -0.742913785954E-01 -0.676272923794E-03 1681 -0.605250885793E-01 -0.714618390820E-03 1682 0.796584076440 -0.146824196136E-02 1683 -0.451466614026E-01 -0.596232734903E-03 1684 -0.417149457969E-01 -0.115225491800E-03 1685 -0.417210143529E-01 -0.115135014467E-03 1686 0.417075265474E-01 0.133028545491E-03 1687 -0.742282049626E-01 -0.681436156110E-03 1688 -0.606057818051E-01 -0.750630680074E-03 1689 -0.742916416532E-01 -0.653257323827E-03 1690 -0.605247846495E-01 -0.769797245855E-03 1691 -0.605286350961E-01 -0.777713846220E-03 1692 -0.743047067415E-01 -0.634973946679E-03 1693 -0.451471880273E-01 -0.536631548647E-03 1694 0.796584605347 -0.146822782812E-02 1695 0.246057540866 -0.156929237491E-01 1696 -0.206107482013E-05 0.778917206255E-07 1697 0.352113232938E-05 0.154431287568E-06 1698 -0.420429490409E-01 -0.587342854892E-04 1699 0.420417681977E-01 0.824896029072E-04 1700 0.420528749180E-01 0.766653959520E-04 1701 0.420330960813E-01 0.586491806836E-04 1702 -0.420535622808E-01 -0.652873057806E-04 1703 -0.420325735015E-01 -0.810558237333E-04 1704 0.420218210028E-01 0.609748227602E-04 1705 -0.420212799842E-01 -0.785429018860E-04 1706 -0.206117546905E-05 0.778677753652E-07 1707 0.246058529134 -0.156928521042E-01 1708 0.265917250516E-05 0.248343662598E-06 1709 -0.420522602888E-01 -0.643243216505E-04 1710 0.420517334014E-01 0.780805880530E-04 1711 -0.420277564245E-01 -0.799599998583E-04 1712 -0.420518879936E-01 -0.632163639794E-04 1713 0.420283118106E-01 0.593546222815E-04 1714 0.420513142099E-01 0.790457478779E-04 1715 0.420278370178E-01 0.606871807868E-04 1716 -0.420271783589E-01 -0.787805292451E-04 1717 0.352122971364E-05 0.154381831515E-06 1718 0.265913952548E-05 0.248221251049E-06 1719 0.246054440373 -0.156930664855E-01 1720 -0.420193184068E-01 -0.644721126728E-04 1721 0.420189230993E-01 0.744960214413E-04 1722 0.420488798233E-01 0.678030741053E-04 1723 -0.420450723253E-01 -0.670102799047E-04 1724 -0.420482571673E-01 -0.733618459590E-04 1725 0.420444494102E-01 0.743788625467E-04 1726 -0.420137444362E-01 -0.804998563959E-04 1727 0.420146243685E-01 0.587007351034E-04 1728 -0.420417780857E-01 -0.824897872222E-04 1729 -0.420517418147E-01 -0.780805581792E-04 1730 -0.420189173989E-01 -0.744966588043E-04 1731 0.791891882747 -0.172989110087E-02 1732 -0.470649490492E-01 -0.691818367146E-03 1733 -0.629796837556E-01 -0.886203217670E-03 1734 -0.764384859774E-01 -0.777733779245E-03 1735 -0.764461379042E-01 -0.769262830209E-03 1736 -0.629865289415E-01 -0.895170362258E-03 1737 -0.630380833435E-01 -0.895753300427E-03 1738 -0.763930102538E-01 -0.768870035730E-03 1739 0.420429391581E-01 0.587341140289E-04 1740 0.420522518646E-01 0.643239273943E-04 1741 0.420193241020E-01 0.644715468836E-04 1742 -0.470648802904E-01 -0.659318327287E-03 1743 0.791891500754 -0.172990072233E-02 1744 -0.764457046675E-01 -0.804182292472E-03 1745 -0.629866598537E-01 -0.878713921233E-03 1746 -0.629796171642E-01 -0.887568568569E-03 1747 -0.764381043041E-01 -0.795585433811E-03 1748 -0.763926603773E-01 -0.803459626483E-03 1749 -0.630383517964E-01 -0.879170767646E-03 1750 0.420536092857E-01 0.652887164551E-04 1751 -0.420282908588E-01 -0.593547665648E-04 1752 0.420482328345E-01 0.733616006492E-04 1753 -0.629796419842E-01 -0.887570888168E-03 1754 -0.764460587805E-01 -0.769262131709E-03 1755 0.791974877170 -0.172920646682E-02 1756 -0.764840165356E-01 -0.786863974220E-03 1757 -0.471682374186E-01 -0.642043506899E-03 1758 -0.629496683884E-01 -0.886073805853E-03 1759 -0.629591815456E-01 -0.923145860952E-03 1760 -0.764580064457E-01 -0.798524594956E-03 1761 0.420325623481E-01 0.810561226264E-04 1762 -0.420512945831E-01 -0.790444078500E-04 1763 -0.420444724514E-01 -0.743790821943E-04 1764 -0.764381840303E-01 -0.795583302744E-03 1765 -0.629865229199E-01 -0.895167646028E-03 1766 -0.764839781258E-01 -0.787522680319E-03 1767 0.791995140772 -0.172896869974E-02 1768 -0.629496256093E-01 -0.886073750830E-03 1769 -0.471738619988E-01 -0.725042583006E-03 1770 -0.764710555481E-01 -0.756566287067E-03 1771 -0.629556920710E-01 -0.858723063530E-03 1772 -0.420528278765E-01 -0.766641720753E-04 1773 0.420277773458E-01 0.799612093108E-04 1774 -0.420489041424E-01 -0.678040819228E-04 1775 -0.764457837258E-01 -0.804185344524E-03 1776 -0.629796588396E-01 -0.886204492050E-03 1777 -0.471679979290E-01 -0.710824693424E-03 1778 -0.629496561416E-01 -0.886827920792E-03 1779 0.791974874603 -0.172920650071E-02 1780 -0.764840549158E-01 -0.787523877312E-03 1781 -0.764580021634E-01 -0.775098450678E-03 1782 -0.629598490768E-01 -0.850578035466E-03 1783 -0.420331072223E-01 -0.586491544564E-04 1784 0.420519076633E-01 0.632167670782E-04 1785 0.420450492543E-01 0.670102047780E-04 1786 -0.629866660074E-01 -0.878711190549E-03 1787 -0.764384064458E-01 -0.777727864553E-03 1788 -0.629496988784E-01 -0.886829988507E-03 1789 -0.471743541444E-01 -0.628025241077E-03 1790 -0.764840932965E-01 -0.786866478689E-03 1791 0.791995352341 -0.172896343180E-02 1792 -0.629553053694E-01 -0.914931143401E-03 1793 -0.764709380362E-01 -0.817078409462E-03 1794 0.420212989190E-01 0.785432615710E-04 1795 0.420271718215E-01 0.787809114825E-04 1796 -0.420145932981E-01 -0.586992664339E-04 1797 -0.630383761920E-01 -0.879172539727E-03 1798 -0.763927317726E-01 -0.768861124376E-03 1799 -0.629597754231E-01 -0.850576622815E-03 1800 -0.764707291650E-01 -0.817072069510E-03 1801 -0.764578560394E-01 -0.798522880633E-03 1802 -0.629556790794E-01 -0.858718218540E-03 1803 0.791808704908 -0.173046015141E-02 1804 -0.469996294105E-01 -0.705895868179E-03 1805 -0.420218020653E-01 -0.609748170349E-04 1806 -0.420278434855E-01 -0.606886004053E-04 1807 0.420137755388E-01 0.805007066181E-04 1808 -0.763929389554E-01 -0.803464097343E-03 1809 -0.630380588830E-01 -0.895753773176E-03 1810 -0.764581524692E-01 -0.775104015982E-03 1811 -0.629553185806E-01 -0.914926750335E-03 1812 -0.629592551837E-01 -0.923147832183E-03 1813 -0.764712644742E-01 -0.756570037548E-03 1814 -0.470002636775E-01 -0.644563779244E-03 1815 0.791809277208 -0.173044579147E-02 1816 0.191513672031 -0.214263698708E-01 1817 -0.179204466801E-05 0.104835910778E-06 1818 0.409140233520E-05 0.239790917317E-06 1819 -0.421028032167E-01 0.730389271339E-04 1820 0.421010783891E-01 -0.450777679466E-04 1821 0.421136002196E-01 -0.514962239985E-04 1822 0.420900788968E-01 -0.723121056824E-04 1823 -0.421146435260E-01 0.655334211040E-04 1824 -0.420893256191E-01 0.480098010301E-04 1825 0.420784666031E-01 -0.700208249766E-04 1826 -0.420776877779E-01 0.505833343698E-04 1827 -0.179215857879E-05 0.104797842719E-06 1828 0.191514939190 -0.214262460265E-01 1829 0.360442512133E-05 0.410679177821E-06 1830 -0.421141087473E-01 0.659812463744E-04 1831 0.421133415122E-01 -0.503643259174E-04 1832 -0.420837990448E-01 0.491957688447E-04 1833 -0.421135002688E-01 0.672462762545E-04 1834 0.420845921261E-01 -0.717059189448E-04 1835 0.421126599847E-01 -0.492932984082E-04 1836 0.420844071865E-01 -0.705987280222E-04 1837 -0.420834402831E-01 0.501158551332E-04 1838 0.409151567565E-05 0.239731726335E-06 1839 0.360438881296E-05 0.410532287513E-06 1840 0.191510039163 -0.214265962341E-01 1841 -0.420749756469E-01 0.664289733719E-04 1842 0.420743780071E-01 -0.549495770770E-04 1843 0.421084849067E-01 -0.630778290701E-04 1844 -0.421050956146E-01 0.637059933713E-04 1845 -0.421075506252E-01 0.551774749322E-04 1846 0.421041852039E-01 -0.541713329143E-04 1847 -0.420695414109E-01 0.480828165283E-04 1848 0.420708126324E-01 -0.729226076698E-04 1849 -0.421010885251E-01 0.450776954783E-04 1850 -0.421133503232E-01 0.503643925391E-04 1851 -0.420743743545E-01 0.549485356014E-04 1852 0.786224720768 -0.207361168332E-02 1853 -0.492892676553E-01 -0.832960028407E-03 1854 -0.659048672950E-01 -0.107615643178E-02 1855 -0.790220867882E-01 -0.938630969095E-03 1856 -0.790299872494E-01 -0.930085321083E-03 1857 -0.659118905866E-01 -0.108543655448E-02 1858 -0.659651403090E-01 -0.108638133579E-02 1859 -0.789749855441E-01 -0.930029807805E-03 1860 0.421027930868E-01 -0.730389977462E-04 1861 0.421140999117E-01 -0.659815731718E-04 1862 0.420749792910E-01 -0.664299118257E-04 1863 -0.492892145505E-01 -0.800654600969E-03 1864 0.786224309227 -0.207362149692E-02 1865 -0.790294592200E-01 -0.966187787400E-03 1866 -0.659120494281E-01 -0.106853066461E-02 1867 -0.659047996394E-01 -0.107764850485E-02 1868 -0.790216475498E-01 -0.957463508206E-03 1869 -0.789745818311E-01 -0.964872584222E-03 1870 -0.659654686384E-01 -0.106883256456E-02 1871 0.421146950858E-01 -0.655317736669E-04 1872 -0.420845693109E-01 0.717057724993E-04 1873 0.421075241869E-01 -0.551777327127E-04 1874 -0.659048261946E-01 -0.107765096562E-02 1875 -0.790299023040E-01 -0.930084717138E-03 1876 0.786309971544 -0.207278271646E-02 1877 -0.790693562711E-01 -0.948325097604E-03 1878 -0.493954251488E-01 -0.783063243835E-03 1879 -0.658734239374E-01 -0.107603837620E-02 1880 -0.658842009435E-01 -0.111412506500E-02 1881 -0.790421138700E-01 -0.960213056180E-03 1882 0.420893153231E-01 -0.480091958902E-04 1883 -0.421126374124E-01 0.492949380040E-04 1884 -0.421042087867E-01 0.541712502496E-04 1885 -0.790217331786E-01 -0.957461089004E-03 1886 -0.659118843767E-01 -0.108543364738E-02 1887 -0.790693341216E-01 -0.949082805121E-03 1888 0.786331026328 -0.207248704379E-02 1889 -0.658733778825E-01 -0.107603836911E-02 1890 -0.494013150583E-01 -0.867298325167E-03 1891 -0.790552183989E-01 -0.917475512123E-03 1892 -0.658806971938E-01 -0.104810291609E-02 1893 -0.421135486104E-01 0.514976080563E-04 1894 0.420838218238E-01 -0.491944338229E-04 1895 -0.421085113289E-01 0.630767250247E-04 1896 -0.790295440983E-01 -0.966190936094E-03 1897 -0.659048406405E-01 -0.107615785464E-02 1898 -0.493951399255E-01 -0.852624932989E-03 1899 -0.658733968226E-01 -0.107671275054E-02 1900 0.786309968853 -0.207278274372E-02 1901 -0.790694166551E-01 -0.949083974817E-03 1902 -0.790421253088E-01 -0.936309939495E-03 1903 -0.658850051699E-01 -0.103959525340E-02 1904 -0.420900891826E-01 0.723124050931E-04 1905 0.421135229009E-01 -0.672456907276E-04 1906 0.421050719905E-01 -0.637058680433E-04 1907 -0.659120557722E-01 -0.106852771291E-02 1908 -0.790220013546E-01 -0.938624740820E-03 1909 -0.658734428394E-01 -0.107671489579E-02 1910 -0.494019172008E-01 -0.768656857154E-03 1911 -0.790694387743E-01 -0.948327669677E-03 1912 0.786331254128 -0.207248168560E-02 1913 -0.658802343809E-01 -0.110553642739E-02 1914 -0.790550491438E-01 -0.979058954270E-03 1915 0.420777076067E-01 -0.505829895704E-04 1916 0.420834322404E-01 -0.501155102541E-04 1917 -0.420707779266E-01 0.729243346906E-04 1918 -0.659654949702E-01 -0.106883443971E-02 1919 -0.789746863013E-01 -0.930020687878E-03 1920 -0.658849261531E-01 -0.103959386255E-02 1921 -0.790548246510E-01 -0.979052487148E-03 1922 -0.790419522063E-01 -0.960211461125E-03 1923 -0.658806833881E-01 -0.104809773873E-02 1924 0.786139644479 -0.207432457074E-02 1925 -0.492227323411E-01 -0.848081398006E-03 1926 -0.420784467667E-01 0.700207488276E-04 1927 -0.420844151448E-01 0.705970691142E-04 1928 0.420695761646E-01 -0.480818338709E-04 1929 -0.789748811694E-01 -0.964876952484E-03 1930 -0.659651139093E-01 -0.108638189444E-02 1931 -0.790422868699E-01 -0.936315686982E-03 1932 -0.658802484092E-01 -0.110553167796E-02 1933 -0.658842799447E-01 -0.111412705789E-02 1934 -0.790554429426E-01 -0.917479223485E-03 1935 -0.492235116039E-01 -0.784646315308E-03 1936 0.786140260946 -0.207430993519E-02 1937 0.113683785614 -0.327666090490E-01 1938 -0.141566712779E-05 0.155879136170E-06 1939 0.503383894397E-05 0.437647795020E-06 1940 -0.415382058222E-01 0.434491794860E-03 1941 0.415352998279E-01 -0.400022002131E-03 1942 0.415500880917E-01 -0.407201903167E-03 1943 0.415209610780E-01 -0.432702168444E-03 1944 -0.415519425858E-01 0.425450338648E-03 1945 -0.415197157242E-01 0.405542206263E-03 1946 0.415088092191E-01 -0.430518895067E-03 1947 -0.415075275874E-01 0.408217854898E-03 1948 -0.141579199368E-05 0.155809294854E-06 1949 0.113685568835 -0.327663538708E-01 1950 0.527760808309E-05 0.808590424827E-06 1951 -0.415525866602E-01 0.424978994899E-03 1952 0.415512881707E-01 -0.406480086690E-03 1953 -0.415130793998E-01 0.406904008595E-03 1954 -0.415516632144E-01 0.426472377964E-03 1955 0.415143814004E-01 -0.432311752828E-03 1956 0.415502350730E-01 -0.405251243261E-03 1957 0.415145898947E-01 -0.431597434073E-03 1958 -0.415129412964E-01 0.407406867665E-03 1959 0.503397602012E-05 0.437575610752E-06 1960 0.527757102062E-05 0.808404429356E-06 1961 0.113679250909 -0.327670347830E-01 1962 -0.415038679974E-01 0.426878067218E-03 1963 0.415028111309E-01 -0.413079509832E-03 1964 0.415432880967E-01 -0.423244781466E-03 1965 -0.415406514309E-01 0.423535781808E-03 1966 -0.415416899489E-01 0.411682426835E-03 1967 0.415391294097E-01 -0.410626339137E-03 1968 -0.414985215642E-01 0.404872730181E-03 1969 0.415006399357E-01 -0.434393236078E-03 1970 -0.415353096710E-01 0.400022230507E-03 1971 -0.415512970857E-01 0.406480266627E-03 1972 -0.415028111024E-01 0.413077677740E-03 1973 0.779338119128 -0.257165553703E-02 1974 -0.520035221161E-01 -0.102189566342E-02 1975 -0.694982936279E-01 -0.134185691094E-02 1976 -0.821816287608E-01 -0.117485965825E-02 1977 -0.821899215198E-01 -0.116619199095E-02 1978 -0.695056053899E-01 -0.135152929224E-02 1979 -0.695609078172E-01 -0.135291933910E-02 1980 -0.821325833030E-01 -0.116649015184E-02 1981 0.415381959849E-01 -0.434491576372E-03 1982 0.415525776792E-01 -0.424979112653E-03 1983 0.415038680105E-01 -0.426879750394E-03 1984 -0.520035637882E-01 -0.989665436524E-03 1985 0.779337677374 -0.257166559684E-02 1986 -0.821892412572E-01 -0.120381055524E-02 1987 -0.695058100474E-01 -0.133407003649E-02 1988 -0.694982423325E-01 -0.134345785296E-02 1989 -0.821811283788E-01 -0.119483788759E-02 1990 -0.821320620008E-01 -0.120174637612E-02 1991 -0.695613085266E-01 -0.133419729492E-02 1992 0.415519996380E-01 -0.425448174603E-03 1993 -0.415143563839E-01 0.432311694060E-03 1994 0.415416611373E-01 -0.411682763787E-03 1995 -0.694982706300E-01 -0.134346047431E-02 1996 -0.821898307453E-01 -0.116619149210E-02 1997 0.779426122406 -0.257063784463E-02 1998 -0.822310602808E-01 -0.118531791855E-02 1999 -0.521131885769E-01 -0.971779199623E-03 2000 -0.694651282557E-01 -0.134167547140E-02 2001 -0.694773423710E-01 -0.138104204147E-02 2002 -0.822024330560E-01 -0.119744408312E-02 2003 0.415197075632E-01 -0.405540953340E-03 2004 -0.415502085415E-01 0.405253482629E-03 2005 -0.415391529066E-01 0.410626489813E-03 2006 -0.821812199661E-01 -0.119483518593E-02 2007 -0.695055990047E-01 -0.135152616214E-02 2008 -0.822311052992E-01 -0.118607745602E-02 2009 0.779448188694 -0.257024162160E-02 2010 -0.694650788789E-01 -0.134167550035E-02 2011 -0.521194203432E-01 -0.105758386224E-02 2012 -0.822155897627E-01 -0.115374888680E-02 2013 -0.694738615285E-01 -0.131305029937E-02 2014 -0.415500309619E-01 0.407203676414E-03 2015 0.415131043630E-01 -0.406902426937E-03 2016 -0.415433168913E-01 0.423243504263E-03 2017 -0.821893319633E-01 -0.120381379418E-02 2018 -0.694982652261E-01 -0.134185847430E-02 2019 -0.521128222605E-01 -0.104229458178E-02 2020 -0.694650536343E-01 -0.134233717644E-02 2021 0.779426119610 -0.257063786375E-02 2022 -0.822311936620E-01 -0.118607860697E-02 2023 -0.822024626636E-01 -0.117297648072E-02 2024 -0.694783554432E-01 -0.130407193119E-02 2025 -0.415209692500E-01 0.432703103455E-03 2026 0.415516898679E-01 -0.426471396884E-03 2027 0.415406278582E-01 -0.423535308572E-03 2028 -0.695058165704E-01 -0.133406688760E-02 2029 -0.821815373678E-01 -0.117485310907E-02 2030 -0.694651029852E-01 -0.134233939171E-02 2031 -0.521202202810E-01 -0.956894991053E-03 2032 -0.822311486067E-01 -0.118532057516E-02 2033 0.779448433038 -0.257023615086E-02 2034 -0.694732880701E-01 -0.137197635566E-02 2035 -0.822153257091E-01 -0.121665302689E-02 2036 0.415075482505E-01 -0.408217479089E-03 2037 0.415129312564E-01 -0.407406588105E-03 2038 -0.415006008544E-01 0.434395382121E-03 2039 -0.695613368057E-01 -0.133419926147E-02 2040 -0.821322630808E-01 -0.116648080494E-02 2041 -0.694782710441E-01 -0.130407055213E-02 2042 -0.822150854168E-01 -0.121664642636E-02 2043 -0.822022600135E-01 -0.119744260278E-02 2044 -0.694738469344E-01 -0.131304477394E-02 2045 0.779250577160 -0.257264097917E-02 2046 -0.519353396528E-01 -0.103814228589E-02 2047 -0.415087885473E-01 0.430518762982E-03 2048 -0.415145998063E-01 0.431595439293E-03 2049 0.414985607354E-01 -0.404871527608E-03 2050 -0.821323823169E-01 -0.120175066352E-02 2051 -0.695608794660E-01 -0.135292000507E-02 2052 -0.822026356021E-01 -0.117298242114E-02 2053 -0.694733028945E-01 -0.137197125178E-02 2054 -0.694774267550E-01 -0.138104406467E-02 2055 -0.822158300953E-01 -0.115375258246E-02 2056 -0.519363325665E-01 -0.972084420467E-03 2057 0.779251238751 -0.257262599171E-02 2058 -0.130700456256E-01 -0.758512507461E-01 2059 -0.845528297311E-06 0.338497524228E-06 2060 0.683346214061E-05 0.140938735214E-05 2061 -0.392836596441E-01 0.231436958601E-02 2062 0.392755149670E-01 -0.226816780296E-02 2063 0.392947778911E-01 -0.227574169345E-02 2064 0.392574475249E-01 -0.231294921083E-02 2065 -0.393006170468E-01 0.230179990531E-02 2066 -0.392539636298E-01 0.228083684523E-02 2067 0.392441757033E-01 -0.231125122698E-02 2068 -0.392408222083E-01 0.228386427063E-02 2069 -0.845569898157E-06 0.338667761520E-06 2070 -0.130671376076E-01 -0.758503139920E-01 2071 0.875691499955E-05 0.282987768272E-05 2072 -0.393029909113E-01 0.229887640953E-02 2073 0.392991307455E-01 -0.227519493921E-02 2074 -0.392453322177E-01 0.228280994873E-02 2075 -0.393016499030E-01 0.230061515567E-02 2076 0.392488809555E-01 -0.231333081709E-02 2077 0.392974741808E-01 -0.227353318339E-02 2078 0.392499306749E-01 -0.231359418398E-02 2079 -0.392450637618E-01 0.228270832522E-02 2080 0.683363156891E-05 0.140917993845E-05 2081 0.875693678527E-05 0.282969378584E-05 2082 -0.130763804948E-01 -0.758526837052E-01 2083 -0.392369381834E-01 0.230808497859E-02 2084 0.392336367436E-01 -0.228996653077E-02 2085 0.392865034537E-01 -0.230171337631E-02 2086 -0.392854567635E-01 0.230069375483E-02 2087 -0.392822471854E-01 0.228349255285E-02 2088 0.392814350408E-01 -0.228167288855E-02 2089 -0.392300237912E-01 0.227901440147E-02 2090 0.392359609912E-01 -0.231691416596E-02 2091 -0.392755227352E-01 0.226816946438E-02 2092 -0.392991386203E-01 0.227519588224E-02 2093 -0.392336437136E-01 0.228996192615E-02 2094 0.770562844484 -0.357216955955E-02 2095 -0.554170157107E-01 -0.118906763071E-02 2096 -0.740847652297E-01 -0.173456239135E-02 2097 -0.862531581811E-01 -0.164721633661E-02 2098 -0.862622977316E-01 -0.163847743981E-02 2099 -0.740926719282E-01 -0.174493190383E-02 2100 -0.741505901667E-01 -0.174682989857E-02 2101 -0.862019950609E-01 -0.163889636314E-02 2102 0.392836518969E-01 -0.231436789402E-02 2103 0.393029826834E-01 -0.229887545089E-02 2104 0.392369311707E-01 -0.230808934778E-02 2105 -0.554178755868E-01 -0.115642507209E-02 2106 0.770562371673 -0.357217997961E-02 2107 -0.862612078841E-01 -0.167820167730E-02 2108 -0.740930304455E-01 -0.172673852293E-02 2109 -0.740848921213E-01 -0.173617318724E-02 2110 -0.862526711877E-01 -0.166849994891E-02 2111 -0.862008297500E-01 -0.167501886209E-02 2112 -0.741509883317E-01 -0.172668564852E-02 2113 0.393006820118E-01 -0.230179587854E-02 2114 -0.392488526742E-01 0.231333147686E-02 2115 0.392822153312E-01 -0.228349335673E-02 2116 -0.740849222524E-01 -0.173617610724E-02 2117 -0.862622011390E-01 -0.163847707722E-02 2118 0.770654269435 -0.357097998886E-02 2119 -0.863053210529E-01 -0.165898897189E-02 2120 -0.555314602999E-01 -0.113831304934E-02 2121 -0.740496303425E-01 -0.173411266815E-02 2122 -0.740631740537E-01 -0.177497898897E-02 2123 -0.862754676245E-01 -0.167154177765E-02 2124 0.392539609971E-01 -0.228083303153E-02 2125 -0.392974416463E-01 0.227353748924E-02 2126 -0.392814572465E-01 0.228167370937E-02 2127 -0.862527688212E-01 -0.166849702030E-02 2128 -0.740926652141E-01 -0.174492829305E-02 2129 -0.863058620649E-01 -0.165941731535E-02 2130 0.770677756041 -0.357023507332E-02 2131 -0.740495776182E-01 -0.173411270344E-02 2132 -0.555379049798E-01 -0.122648232204E-02 2133 -0.862887059769E-01 -0.162656838174E-02 2134 -0.740599513445E-01 -0.170446108739E-02 2135 -0.392947127627E-01 0.227574507874E-02 2136 0.392453603416E-01 -0.228280735467E-02 2137 -0.392865353420E-01 0.230171149966E-02 2138 -0.862613044114E-01 -0.167820497786E-02 2139 -0.740847349801E-01 -0.173456397657E-02 2140 -0.555307299129E-01 -0.121009605123E-02 2141 -0.740492742617E-01 -0.173498929733E-02 2142 0.770654266557 -0.357097999420E-02 2143 -0.863059564498E-01 -0.165941851283E-02 2144 -0.862754617936E-01 -0.164641886514E-02 2145 -0.740647149163E-01 -0.169478164700E-02 2146 -0.392574504956E-01 0.231295276352E-02 2147 0.393016832437E-01 -0.230061242359E-02 2148 0.392854341367E-01 -0.230069242457E-02 2149 -0.740930373135E-01 -0.172673542096E-02 2150 -0.862530607258E-01 -0.164720941638E-02 2151 -0.740493270537E-01 -0.173499156852E-02 2152 -0.555394722638E-01 -0.112293785745E-02 2153 -0.863054153239E-01 -0.165899179682E-02 2154 0.770678017307 -0.357022944985E-02 2155 -0.740591136164E-01 -0.176528172249E-02 2156 -0.862880821471E-01 -0.169122441752E-02 2157 0.392408442808E-01 -0.228386345529E-02 2158 0.392450510483E-01 -0.228270809641E-02 2159 -0.392359165473E-01 0.231691708563E-02 2160 -0.741510184695E-01 -0.172668757178E-02 2161 -0.862016535014E-01 -0.163888663767E-02 2162 -0.740646250346E-01 -0.169478016601E-02 2163 -0.862878257314E-01 -0.169121758482E-02 2164 -0.862752830250E-01 -0.167154035412E-02 2165 -0.740599359566E-01 -0.170445509872E-02 2166 0.770471702160 -0.357427859230E-02 2167 -0.553464703681E-01 -0.120575925449E-02 2168 -0.392441538518E-01 0.231125127969E-02 2169 -0.392499428650E-01 0.231359172053E-02 2170 0.392300686468E-01 -0.227901275906E-02 2171 -0.862011714063E-01 -0.167502322520E-02 2172 -0.741505599421E-01 -0.174683082111E-02 2173 -0.862756463058E-01 -0.164642506594E-02 2174 -0.740591293134E-01 -0.176527636623E-02 2175 -0.740632639105E-01 -0.177498114283E-02 2176 -0.862889623401E-01 -0.162657218735E-02 2177 -0.553478916692E-01 -0.113627156692E-02 2178 0.770472410086 -0.357426310643E-02 2179 -0.121045515143 -0.220176176141 2180 -0.137045415488E-06 0.701973838425E-06 2181 0.752981289752E-05 0.452481501983E-05 2182 -0.392428182060E-01 0.907904899501E-02 2183 0.392161665245E-01 -0.902612565759E-02 2184 0.392411214294E-01 -0.902933934816E-02 2185 0.392086951433E-01 -0.908713467075E-02 2186 -0.392602693982E-01 0.905781037275E-02 2187 -0.391984003474E-01 0.905261466441E-02 2188 0.391948425795E-01 -0.908801937254E-02 2189 -0.391839315345E-01 0.905680802388E-02 2190 -0.137396216551E-06 0.702213834467E-06 2191 -0.121042474192 -0.220172724718 2192 0.960208026734E-05 0.996149619925E-05 2193 -0.392613041898E-01 0.905066892096E-02 2194 0.392494033151E-01 -0.902518319211E-02 2195 -0.391872193141E-01 0.905731904910E-02 2196 -0.392587737229E-01 0.905306317631E-02 2197 0.391983479685E-01 -0.909082387147E-02 2198 0.392454272427E-01 -0.902326672254E-02 2199 0.392024814570E-01 -0.909124727117E-02 2200 -0.391870478367E-01 0.905766432100E-02 2201 0.753009617294E-05 0.452421592045E-05 2202 0.960226052201E-05 0.996139363256E-05 2203 -0.121052214587 -0.220181016460 2204 -0.391855371965E-01 0.908636611445E-02 2205 0.391748750143E-01 -0.906690570077E-02 2206 0.392438945413E-01 -0.906886859857E-02 2207 -0.392424034912E-01 0.906371030557E-02 2208 -0.392290898600E-01 0.904535132529E-02 2209 0.392288053556E-01 -0.904009065733E-02 2210 -0.391692530823E-01 0.905173666382E-02 2211 0.391881780517E-01 -0.909389195946E-02 2212 -0.392161829718E-01 0.902613634605E-02 2213 -0.392494171041E-01 0.902518957080E-02 2214 -0.391748858379E-01 0.906688668209E-02 2215 0.759398179169 -0.685752850006E-02 2216 -0.609847925838E-01 -0.198780228063E-02 2217 -0.807603875344E-01 -0.312525904033E-02 2218 -0.917355016472E-01 -0.348544027278E-02 2219 -0.917457015722E-01 -0.347772615982E-02 2220 -0.807684824721E-01 -0.313739705805E-02 2221 -0.808301653510E-01 -0.314023683448E-02 2222 -0.916823361988E-01 -0.347807779582E-02 2223 0.392428011090E-01 -0.907903869158E-02 2224 0.392612896196E-01 -0.905066411594E-02 2225 0.391855260960E-01 -0.908638562973E-02 2226 -0.609886481990E-01 -0.195669187569E-02 2227 0.759397672638 -0.685753995234E-02 2228 -0.917432236127E-01 -0.351981922837E-02 2229 -0.807693155212E-01 -0.311855422229E-02 2230 -0.807611844191E-01 -0.312731486665E-02 2231 -0.917354140489E-01 -0.350864653334E-02 2232 -0.916789273572E-01 -0.351383736706E-02 2233 -0.808303403253E-01 -0.311780405858E-02 2234 0.392603336195E-01 -0.905779211919E-02 2235 -0.391983240713E-01 0.909083152601E-02 2236 0.392290580784E-01 -0.904535868340E-02 2237 -0.807612153439E-01 -0.312731895641E-02 2238 -0.917455999720E-01 -0.347772598473E-02 2239 0.759494585972 -0.685616594198E-02 2240 -0.917902823313E-01 -0.349929658493E-02 2241 -0.611070807320E-01 -0.193759726928E-02 2242 -0.807231843525E-01 -0.312486860860E-02 2243 -0.807386562613E-01 -0.316626829139E-02 2244 -0.917585251446E-01 -0.351404669929E-02 2245 0.391983928416E-01 -0.905259605415E-02 2246 -0.392453954530E-01 0.902328105978E-02 2247 -0.392288212591E-01 0.904009225009E-02 2248 -0.917355173727E-01 -0.350864340208E-02 2249 -0.807684771564E-01 -0.313739149128E-02 2250 -0.917926312022E-01 -0.350041677631E-02 2251 0.759519331752 -0.685425885579E-02 2252 -0.807231286142E-01 -0.312486817791E-02 2253 -0.611122713594E-01 -0.202824187949E-02 2254 -0.917721424397E-01 -0.346741907166E-02 2255 -0.807361625609E-01 -0.309314222964E-02 2256 -0.392410569895E-01 0.902935796309E-02 2257 0.391872422582E-01 -0.905730946305E-02 2258 -0.392439265641E-01 0.906886038626E-02 2259 -0.917433250315E-01 -0.351982266222E-02 2260 -0.807603565142E-01 -0.312525969434E-02 2261 -0.611054245946E-01 -0.201004736451E-02 2262 -0.807216288313E-01 -0.312552864041E-02 2263 0.759494582963 -0.685616590713E-02 2264 -0.917927313194E-01 -0.350041880653E-02 2265 -0.917582978560E-01 -0.348781858953E-02 2266 -0.807417387854E-01 -0.308252172185E-02 2267 -0.392087038168E-01 0.908715206970E-02 2268 0.392588059658E-01 -0.905304914999E-02 2269 0.392423869240E-01 -0.906370954029E-02 2270 -0.807693208864E-01 -0.311855269475E-02 2271 -0.917353985452E-01 -0.348543287981E-02 2272 -0.807216848364E-01 -0.312553165556E-02 2273 -0.611162962581E-01 -0.192251552318E-02 2274 -0.917903822953E-01 -0.349930008427E-02 2275 0.759519611306 -0.685425325207E-02 2276 -0.807347791209E-01 -0.315599499678E-02 2277 -0.917704628400E-01 -0.353354848500E-02 2278 0.391839454273E-01 -0.905680232852E-02 2279 0.391870246705E-01 -0.905766525395E-02 2280 -0.391881217511E-01 0.909389837096E-02 2281 -0.808303731510E-01 -0.311780522973E-02 2282 -0.916819751093E-01 -0.347806665479E-02 2283 -0.807416448666E-01 -0.308251872712E-02 2284 -0.917701919312E-01 -0.353354041146E-02 2285 -0.917583301669E-01 -0.351404472959E-02 2286 -0.807361474890E-01 -0.309313506846E-02 2287 0.759304573633 -0.686329151182E-02 2288 -0.609139683520E-01 -0.200378201703E-02 2289 -0.391948278010E-01 0.908802429677E-02 2290 -0.392025038363E-01 0.909124514238E-02 2291 0.391693104145E-01 -0.905173261786E-02 2292 -0.916792885844E-01 -0.351384283783E-02 2293 -0.808301323673E-01 -0.314023869357E-02 2294 -0.917584926886E-01 -0.348782578840E-02 2295 -0.807347943766E-01 -0.315599020937E-02 2296 -0.807387503233E-01 -0.316627180689E-02 2297 -0.917724132925E-01 -0.346742382118E-02 2298 -0.609165664106E-01 -0.192993426563E-02 2299 0.759305331867 -0.686327494304E-02 2300 -0.230521344799 -0.383911591102 2301 0.997306359989E-06 0.196203934893E-05 2302 0.760869620125E-05 0.728088980884E-05 2303 -0.416381015528E-01 0.146920054189E-01 2304 0.415976306168E-01 -0.146378352947E-01 2305 0.416259652933E-01 -0.146366323967E-01 2306 0.415995103080E-01 -0.147071022936E-01 2307 -0.416523648800E-01 0.146632603015E-01 2308 -0.415841484806E-01 0.146700753695E-01 2309 0.415870994554E-01 -0.147094172560E-01 2310 -0.415690573777E-01 0.146761529613E-01 2311 0.997014473891E-06 0.196184671876E-05 2312 -0.230519113178 -0.383906168168 2313 0.809098483449E-05 0.162464800171E-04 2314 -0.416527996176E-01 0.146539860478E-01 2315 0.416362599006E-01 -0.146280360844E-01 2316 -0.415714546141E-01 0.146790460755E-01 2317 -0.416491303316E-01 0.146582944907E-01 2318 0.415884136301E-01 -0.147138728327E-01 2319 0.416298832942E-01 -0.146283170947E-01 2320 0.415950137236E-01 -0.147123933912E-01 2321 -0.415727838802E-01 0.146783489116E-01 2322 0.760954641371E-05 0.728027493489E-05 2323 0.809047541253E-05 0.162463003661E-04 2324 -0.230527424866 -0.383918786948 2325 -0.415739888018E-01 0.147092838542E-01 2326 0.415590519112E-01 -0.146905919468E-01 2327 0.416415663942E-01 -0.146811092241E-01 2328 -0.416372269258E-01 0.146740818777E-01 2329 -0.416165459078E-01 0.146555393057E-01 2330 0.416147181462E-01 -0.146485568217E-01 2331 -0.415505500830E-01 0.146726278586E-01 2332 0.415787432721E-01 -0.147159270290E-01 2333 -0.415976285363E-01 0.146378474474E-01 2334 -0.416362684084E-01 0.146280393734E-01 2335 -0.415590728834E-01 0.146905675330E-01 2336 0.747768447203 -0.108532765270E-01 2337 -0.669463483182E-01 -0.372799234103E-02 2338 -0.878130740402E-01 -0.493395055893E-02 2339 -0.967334619328E-01 -0.498704083500E-02 2340 -0.967437086817E-01 -0.498025110594E-02 2341 -0.878205582987E-01 -0.494751008466E-02 2342 -0.878865435581E-01 -0.495265626948E-02 2343 -0.966760014235E-01 -0.498094889944E-02 2344 0.416381034094E-01 -0.146919938236E-01 2345 0.416527917930E-01 -0.146539852601E-01 2346 0.415739682463E-01 -0.147093073844E-01 2347 -0.669506413204E-01 -0.370070679085E-02 2348 0.747767910066 -0.108532897933E-01 2349 -0.967396415299E-01 -0.502465990705E-02 2350 -0.878215651541E-01 -0.492817012506E-02 2351 -0.878140229104E-01 -0.493707900190E-02 2352 -0.967330704683E-01 -0.501319827587E-02 2353 -0.966719110338E-01 -0.501495956998E-02 2354 -0.878875506671E-01 -0.492694367548E-02 2355 0.416524566675E-01 -0.146632343750E-01 2356 -0.415883792783E-01 0.147138777060E-01 2357 0.416165069874E-01 -0.146555415086E-01 2358 -0.878140560357E-01 -0.493708300740E-02 2359 -0.967435996203E-01 -0.498025085685E-02 2360 0.747871486995 -0.108501111469E-01 2361 -0.967914326985E-01 -0.500317511521E-02 2362 -0.670766205971E-01 -0.368127983263E-02 2363 -0.877723409693E-01 -0.493349767259E-02 2364 -0.877918682501E-01 -0.497703118795E-02 2365 -0.967552332308E-01 -0.501940408979E-02 2366 0.415841620899E-01 -0.146700502478E-01 2367 -0.416298340920E-01 0.146283399557E-01 2368 -0.416147379891E-01 0.146485652556E-01 2369 -0.967331801845E-01 -0.501319523023E-02 2370 -0.878205522091E-01 -0.494750397017E-02 2371 -0.967944965221E-01 -0.500612770405E-02 2372 0.747897171543 -0.108474554855E-01 2373 -0.877722810525E-01 -0.493349762372E-02 2374 -0.670814567525E-01 -0.377339995142E-02 2375 -0.967692791177E-01 -0.497095780166E-02 2376 -0.877898344238E-01 -0.490061840133E-02 2377 -0.416258732080E-01 0.146366578092E-01 2378 0.415714894755E-01 -0.146790415020E-01 2379 -0.416416050244E-01 0.146811041202E-01 2380 -0.967397505901E-01 -0.502466349543E-02 2381 -0.878130408976E-01 -0.493395157408E-02 2382 -0.670752708818E-01 -0.375399756870E-02 2383 -0.877700363736E-01 -0.493311654488E-02 2384 0.747871483683 -0.108501121710E-01 2385 -0.967946030485E-01 -0.500612979226E-02 2386 -0.967551334833E-01 -0.499160584102E-02 2387 -0.877965171961E-01 -0.488935358180E-02 2388 -0.415994945448E-01 0.147071254221E-01 2389 0.416491802368E-01 -0.146582732583E-01 2390 0.416372088079E-01 -0.146740722441E-01 2391 -0.878215716292E-01 -0.492816879165E-02 2392 -0.967333521763E-01 -0.498703274662E-02 2393 -0.877700962076E-01 -0.493311974174E-02 2394 -0.670865222061E-01 -0.366625067222E-02 2395 -0.967915392225E-01 -0.500317882427E-02 2396 0.747897467727 -0.108474483133E-01 2397 -0.877879936297E-01 -0.496600405089E-02 2398 -0.967673120406E-01 -0.503845119506E-02 2399 0.415690878859E-01 -0.146761495349E-01 2400 0.415727654228E-01 -0.146783581937E-01 2401 -0.415786801456E-01 0.147159490244E-01 2402 -0.878875857916E-01 -0.492694551676E-02 2403 -0.966756163430E-01 -0.498093805640E-02 2404 -0.877964165624E-01 -0.488935082816E-02 2405 -0.967670226773E-01 -0.503844360019E-02 2406 -0.967550248385E-01 -0.501940346661E-02 2407 -0.877898180841E-01 -0.490061059890E-02 2408 0.747673460488 -0.108611705361E-01 2409 -0.668753435860E-01 -0.374662549732E-02 2410 -0.415870673112E-01 0.147094194417E-01 2411 -0.415950339605E-01 0.147123815106E-01 2412 0.415506149729E-01 -0.146726051169E-01 2413 -0.966722961986E-01 -0.501496453034E-02 2414 -0.878865085598E-01 -0.495265778169E-02 2415 -0.967553416233E-01 -0.499161194288E-02 2416 -0.877880104278E-01 -0.496599899219E-02 2417 -0.877919693601E-01 -0.497703508307E-02 2418 -0.967695686259E-01 -0.497096187536E-02 2419 -0.668798687213E-01 -0.366759701480E-02 2420 0.747674264708 -0.108611497432E-01 2421 -0.244820327569 -0.597827303297 2422 0.955800331866E-06 0.426406777400E-05 2423 0.696335446284E-05 0.978209886015E-05 2424 -0.475162848405E-01 0.197126832848E-01 2425 0.474646829349E-01 -0.196603556185E-01 2426 0.474942051752E-01 -0.196548870727E-01 2427 0.474744821886E-01 -0.197331786334E-01 2428 -0.475242367912E-01 0.196793719386E-01 2429 -0.474541096673E-01 0.196937203002E-01 2430 0.474641226100E-01 -0.197358071048E-01 2431 -0.474391230572E-01 0.197026076219E-01 2432 0.955897879913E-06 0.426370441807E-05 2433 -0.244819703995 -0.597820940791 2434 0.383043154781E-05 0.204585623129E-04 2435 -0.475246560323E-01 0.196689193473E-01 2436 0.475041729088E-01 -0.196421520453E-01 2437 -0.474418479348E-01 0.197075603712E-01 2438 -0.475208779879E-01 0.196760889314E-01 2439 0.474638862870E-01 -0.197429022387E-01 2440 0.474966370188E-01 -0.196464163557E-01 2441 0.474711935249E-01 -0.197381127137E-01 2442 -0.474447032666E-01 0.197042907930E-01 2443 0.696428622875E-05 0.978231701849E-05 2444 0.383008385715E-05 0.204579363631E-04 2445 -0.244825449060 -0.597836186641 2446 -0.474468056285E-01 0.197395137480E-01 2447 0.474291603452E-01 -0.197217529525E-01 2448 0.475211131958E-01 -0.196967608176E-01 2449 -0.475137828324E-01 0.196903234746E-01 2450 -0.474877673044E-01 0.196733445792E-01 2451 0.474832839604E-01 -0.196665321914E-01 2452 -0.474182780587E-01 0.197027014402E-01 2453 0.474530500720E-01 -0.197453653346E-01 2454 -0.474646965014E-01 0.196604071431E-01 2455 -0.475041814824E-01 0.196421750989E-01 2456 -0.474291754587E-01 0.197217208214E-01 2457 0.730464421828 -0.213197215454E-01 2458 -0.765993138094E-01 -0.113714470912E-01 2459 -0.993459423452E-01 -0.124887218989E-01 2460 -0.104500341232 -0.111866428524E-01 2461 -0.104510094939 -0.111802704145E-01 2462 -0.993521425151E-01 -0.125032984640E-01 2463 -0.994245391308E-01 -0.125132083295E-01 2464 -0.104434839329 -0.111814145447E-01 2465 0.475162719247E-01 -0.197126326890E-01 2466 0.475246481721E-01 -0.196688941431E-01 2467 0.474467902708E-01 -0.197395444114E-01 2468 -0.766018129410E-01 -0.113494173137E-01 2469 0.730463848336 -0.213197358784E-01 2470 -0.104503979820 -0.112280960565E-01 2471 -0.993533807997E-01 -0.124830713120E-01 2472 -0.993463437408E-01 -0.124931315581E-01 2473 -0.104498682027 -0.112172280840E-01 2474 -0.104431504235 -0.112127604976E-01 2475 -0.994275144575E-01 -0.124823406641E-01 2476 0.475243128556E-01 -0.196793105208E-01 2477 -0.474638592174E-01 0.197429038112E-01 2478 0.474877305341E-01 -0.196733470081E-01 2479 -0.993463762011E-01 -0.124931355781E-01 2480 -0.104509981689 -0.111802707426E-01 2481 0.730577814776 -0.213122780227E-01 2482 -0.104563520639 -0.112061291343E-01 2483 -0.767404319087E-01 -0.113314290822E-01 2484 -0.992989224017E-01 -0.124872887055E-01 2485 -0.993249291411E-01 -0.125360539929E-01 2486 -0.104519354477 -0.112225979610E-01 2487 0.474541085188E-01 -0.196936531173E-01 2488 -0.474965985506E-01 0.196464402518E-01 2489 -0.474833042050E-01 0.196665491634E-01 2490 -0.104498797225 -0.112172248015E-01 2491 -0.993521419622E-01 -0.125032925653E-01 2492 -0.104566083047 -0.112117540825E-01 2493 0.730605043212 -0.213089331579E-01 2494 -0.992988596231E-01 -0.124872890777E-01 2495 -0.767454001065E-01 -0.114254836542E-01 2496 -0.104534496039 -0.111714813971E-01 2497 -0.993237752651E-01 -0.124540259400E-01 2498 -0.474941279066E-01 0.196549472752E-01 2499 0.474418762408E-01 -0.197075547148E-01 2500 -0.475211489313E-01 0.196967576632E-01 2501 -0.104504093089 -0.112280993930E-01 2502 -0.993459098650E-01 -0.124887233805E-01 2503 -0.767398973111E-01 -0.114054625350E-01 2504 -0.992965535732E-01 -0.124852941161E-01 2505 0.730577812960 -0.213122793674E-01 2506 -0.104566194236 -0.112117574849E-01 2507 -0.104520322912 -0.111922446606E-01 2508 -0.993320705654E-01 -0.124422291686E-01 2509 -0.474744816322E-01 0.197332459806E-01 2510 0.475209182656E-01 -0.196760651941E-01 2511 0.475137619271E-01 -0.196903046145E-01 2512 -0.993533815761E-01 -0.124830692244E-01 2513 -0.104500226117 -0.111866342295E-01 2514 -0.992966162364E-01 -0.124852964046E-01 2515 -0.767514104246E-01 -0.113159864752E-01 2516 -0.104563632003 -0.112061341319E-01 2517 0.730605358840 -0.213089257599E-01 2518 -0.993209816492E-01 -0.125238300879E-01 2519 -0.104532290048 -0.112413845413E-01 2520 0.474391413687E-01 -0.197025703728E-01 2521 0.474446831860E-01 -0.197042835244E-01 2522 -0.474529930405E-01 0.197453866915E-01 2523 -0.994275525762E-01 -0.124823424934E-01 2524 -0.104434434786 -0.111814022779E-01 2525 -0.993319694208E-01 -0.124422277888E-01 2526 -0.104531985728 -0.112413767373E-01 2527 -0.104519134375 -0.112225972137E-01 2528 -0.993237608600E-01 -0.124540189118E-01 2529 0.730367183596 -0.213287729517E-01 2530 -0.765259459974E-01 -0.113966929672E-01 2531 -0.474641033215E-01 0.197358438609E-01 2532 -0.474712142355E-01 0.197381144998E-01 2533 0.474183351058E-01 -0.197026818647E-01 2534 -0.104431908710 -0.112127666248E-01 2535 -0.994245009085E-01 -0.125132101980E-01 2536 -0.104520542861 -0.111922513414E-01 2537 -0.993209965092E-01 -0.125238238165E-01 2538 -0.993250301328E-01 -0.125360566019E-01 2539 -0.104534800194 -0.111714859991E-01 2540 -0.765341514478E-01 -0.113094166337E-01 2541 0.730368040590 -0.213287499851E-01 2542 0.335865251286 -0.986620009642 2543 -0.413346782402E-05 0.290982028841E-05 2544 -0.480891966801E-05 0.970960916786E-05 2545 -0.753321607893E-01 0.315437883861E-01 2546 0.752440078705E-01 -0.315451912862E-01 2547 0.752623951354E-01 -0.315130222861E-01 2548 0.753067535254E-01 -0.315959661548E-01 2549 -0.753106073546E-01 0.315078626821E-01 2550 -0.752694380469E-01 0.315792676277E-01 2551 0.753040167943E-01 -0.315995720329E-01 2552 -0.752591332103E-01 0.315946551614E-01 2553 -0.413335582655E-05 0.291031865779E-05 2554 0.335857642936 -0.986617090801 2555 -0.226770346941E-04 0.105063119480E-04 2556 -0.752953317696E-01 0.314937865557E-01 2557 0.752622682545E-01 -0.314882375106E-01 2558 -0.752697142783E-01 0.316040238784E-01 2559 -0.753005009323E-01 0.315050474622E-01 2560 0.753104091611E-01 -0.316144745573E-01 2561 0.752616806960E-01 -0.315003287515E-01 2562 0.753134517685E-01 -0.316033860496E-01 2563 -0.752662506003E-01 0.315972006925E-01 2564 -0.480888952600E-05 0.970910264255E-05 2565 -0.226765134373E-04 0.105069877984E-04 2566 0.335870455722 -0.986628266337 2567 -0.752925109059E-01 0.316182615504E-01 2568 0.752652472541E-01 -0.316186868297E-01 2569 0.753302859761E-01 -0.315312389846E-01 2570 -0.753142436687E-01 0.315258000934E-01 2571 -0.752700194859E-01 0.315429525812E-01 2572 0.752617749866E-01 -0.315333332126E-01 2573 -0.752386510113E-01 0.316006160930E-01 2574 0.753003142681E-01 -0.316071509172E-01 2575 -0.752440170300E-01 0.315451359843E-01 2576 -0.752622711377E-01 0.314882186793E-01 2577 -0.752652335200E-01 0.316186060807E-01 2578 0.736097185074 -0.296577877845E-01 2579 -0.679802627045E-01 -0.140717950253E-01 2580 -0.959981214358E-01 -0.168050381492E-01 2581 -0.963295266957E-01 -0.134372214199E-01 2582 -0.963380554459E-01 -0.134338832416E-01 2583 -0.960009002483E-01 -0.168212368703E-01 2584 -0.960785718763E-01 -0.168379966593E-01 2585 -0.962583999973E-01 -0.134331392296E-01 2586 0.753321532260E-01 -0.315438445969E-01 2587 0.752953242000E-01 -0.314938067870E-01 2588 0.752925226813E-01 -0.316183435807E-01 2589 -0.679835669455E-01 -0.140586565262E-01 2590 0.736096588238 -0.296578165201E-01 2591 -0.963276462313E-01 -0.134811876302E-01 2592 -0.960025932045E-01 -0.168006407876E-01 2593 -0.959983061721E-01 -0.168103819557E-01 2594 -0.963267586359E-01 -0.134716764174E-01 2595 -0.962534116437E-01 -0.134575380708E-01 2596 -0.960842371816E-01 -0.168014027187E-01 2597 0.753106727829E-01 -0.315078932214E-01 2598 -0.753103763181E-01 0.316144913525E-01 2599 0.752699777418E-01 -0.315429708960E-01 2600 -0.959983386363E-01 -0.168103862521E-01 2601 -0.963379303445E-01 -0.134338896428E-01 2602 0.736220063525 -0.296435687674E-01 2603 -0.963935560878E-01 -0.134602190926E-01 2604 -0.681327030341E-01 -0.140412772645E-01 2605 -0.959470326396E-01 -0.168017015960E-01 2606 -0.959778055373E-01 -0.168533512335E-01 2607 -0.963399187017E-01 -0.134786878786E-01 2608 0.752694178714E-01 -0.315792865711E-01 2609 -0.752616589116E-01 0.315003755372E-01 2610 -0.752618193653E-01 0.315333605470E-01 2611 -0.963268804792E-01 -0.134716715720E-01 2612 -0.960009009417E-01 -0.168212334148E-01 2613 -0.963971471892E-01 -0.134731954379E-01 2614 0.736246737402 -0.296385505733E-01 2615 -0.959469662794E-01 -0.168017016326E-01 2616 -0.681341861814E-01 -0.141377672886E-01 2617 -0.963587614272E-01 -0.134249983407E-01 2618 -0.959799691221E-01 -0.167673119206E-01 2619 -0.752623261988E-01 0.315129951064E-01 2620 0.752697444010E-01 -0.316040049255E-01 2621 -0.753303259880E-01 0.315312211339E-01 2622 -0.963277713350E-01 -0.134811851548E-01 2623 -0.959980885757E-01 -0.168050397739E-01 2624 -0.681310845152E-01 -0.141193922178E-01 2625 -0.959432804572E-01 -0.167959254242E-01 2626 0.736220058987 -0.296435627548E-01 2627 -0.963972661408E-01 -0.134731931993E-01 2628 -0.963422940282E-01 -0.134458153996E-01 2629 -0.959903271938E-01 -0.167568064746E-01 2630 -0.753067724571E-01 0.315959499058E-01 2631 0.753005212582E-01 -0.315049995334E-01 2632 0.753141968348E-01 -0.315257735215E-01 2633 -0.960025925838E-01 -0.168006357774E-01 2634 -0.963294046996E-01 -0.134372133174E-01 2635 -0.959433468646E-01 -0.167959282145E-01 2636 -0.681443100974E-01 -0.140302019618E-01 2637 -0.963936750856E-01 -0.134602188401E-01 2638 0.736247065557 -0.296385350259E-01 2639 -0.959743225946E-01 -0.168422302824E-01 2640 -0.963537530675E-01 -0.134970483802E-01 2641 0.752591703459E-01 -0.315947365483E-01 2642 0.752662545411E-01 -0.315972509232E-01 2643 -0.753002851889E-01 0.316071905784E-01 2644 -0.960842790458E-01 -0.168014021970E-01 2645 -0.962579674215E-01 -0.134331330538E-01 2646 -0.959902187600E-01 -0.167568077054E-01 2647 -0.963534277490E-01 -0.134970433120E-01 2648 -0.963396840829E-01 -0.134786864950E-01 2649 -0.959799546136E-01 -0.167673040493E-01 2650 0.736005667292 -0.296717196893E-01 2651 -0.679097448042E-01 -0.141000439242E-01 2652 -0.753039785014E-01 0.315994927490E-01 2653 -0.753134431317E-01 0.316033319462E-01 2654 0.752386808431E-01 -0.316005789955E-01 2655 -0.962538442658E-01 -0.134575376426E-01 2656 -0.960785295997E-01 -0.168380008381E-01 2657 -0.963425283627E-01 -0.134458230832E-01 2658 -0.959743374977E-01 -0.168422245640E-01 2659 -0.959779135761E-01 -0.168533509077E-01 2660 -0.963590863936E-01 -0.134249994435E-01 2661 -0.679242083897E-01 -0.140078237222E-01 2662 0.736006560393 -0.296716839330E-01 2663 0.317992445680 -0.917152291781 2664 -0.344550159855E-05 0.318512674811E-05 2665 -0.220511362979E-05 0.106756589155E-04 2666 -0.779125739042E-01 0.218708800464E-01 2667 0.778365080326E-01 -0.218641861266E-01 2668 0.778512857427E-01 -0.218348145127E-01 2669 0.778751970921E-01 -0.219127847386E-01 2670 -0.778895556021E-01 0.218399507632E-01 2671 -0.778449851082E-01 0.218872154732E-01 2672 0.778754302211E-01 -0.219130536829E-01 2673 -0.778357332139E-01 0.219065292011E-01 2674 -0.344551890403E-05 0.318507140923E-05 2675 0.317987096492 -0.917149107998 2676 -0.160636175496E-04 0.112978008302E-04 2677 -0.778794721922E-01 0.218287542479E-01 2678 0.778522616270E-01 -0.218143430215E-01 2679 -0.778472611141E-01 0.219124490831E-01 2680 -0.778874638202E-01 0.218399521916E-01 2681 0.778810968725E-01 -0.219280004483E-01 2682 0.778538347646E-01 -0.218287035006E-01 2683 0.778799694389E-01 -0.219176301492E-01 2684 -0.778431699071E-01 0.219022745324E-01 2685 -0.220502152590E-05 0.106761624903E-04 2686 -0.160629323428E-04 0.112975223361E-04 2687 0.317995263957 -0.917161374407 2688 -0.778627689465E-01 0.219348432488E-01 2689 0.778408898190E-01 -0.219294307228E-01 2690 0.779061579225E-01 -0.218474703866E-01 2691 -0.778921606560E-01 0.218447800297E-01 2692 -0.778527838741E-01 0.218598147428E-01 2693 0.778448330254E-01 -0.218527587025E-01 2694 -0.778165995304E-01 0.219119702331E-01 2695 0.778670533004E-01 -0.219277619857E-01 2696 -0.778365251572E-01 0.218642142340E-01 2697 -0.778522844084E-01 0.218143573237E-01 2698 -0.778408589715E-01 0.219293519919E-01 2699 0.708283447715 -0.482741057337E-01 2700 -0.822858516444E-01 -0.239370843805E-01 2701 -0.113771652507 -0.336646380106E-01 2702 -0.108428831209 -0.194636306603E-01 2703 -0.108437134506 -0.194577663823E-01 2704 -0.113773479825 -0.336794653099E-01 2705 -0.113856125514 -0.337127936649E-01 2706 -0.108338854309 -0.194499228795E-01 2707 0.779125567596E-01 -0.218708534864E-01 2708 0.778794508717E-01 -0.218287441756E-01 2709 0.778627978124E-01 -0.219349212177E-01 2710 -0.822756748977E-01 -0.239284498012E-01 2711 0.708282809220 -0.482741345551E-01 2712 -0.108420719509 -0.195113347990E-01 2713 -0.113775487010 -0.336569443092E-01 2714 -0.113770158283 -0.336715021662E-01 2715 -0.108419864433 -0.195047658868E-01 2716 -0.108343736795 -0.194726535894E-01 2717 -0.113874474034 -0.336688343741E-01 2718 0.778896261693E-01 -0.218399090244E-01 2719 -0.778810793905E-01 0.219280039409E-01 2720 0.778527569235E-01 -0.218598397475E-01 2721 -0.113770189475 -0.336715027090E-01 2722 -0.108437003898 -0.194577684363E-01 2723 0.708421562011 -0.482365309802E-01 2724 -0.108504200097 -0.194979074714E-01 2725 -0.824508218550E-01 -0.239311114990E-01 2726 -0.113709052818 -0.336512367235E-01 2727 -0.113746452861 -0.337243819759E-01 2728 -0.108433787790 -0.195033398326E-01 2729 0.778449592133E-01 -0.218871559708E-01 2730 -0.778538177140E-01 0.218287360757E-01 2731 -0.778448611410E-01 0.218527729423E-01 2732 -0.108419992017 -0.195047613313E-01 2733 -0.113773485083 -0.336794642869E-01 2734 -0.108498897785 -0.195128696592E-01 2735 0.708451895946 -0.482301884910E-01 2736 -0.113708982859 -0.336512379101E-01 2737 -0.824530882002E-01 -0.240326240885E-01 2738 -0.108456900504 -0.194458188169E-01 2739 -0.113756679089 -0.336269046774E-01 2740 -0.778512136447E-01 0.218348585503E-01 2741 0.778472784391E-01 -0.219124442280E-01 2742 -0.779061843605E-01 0.218474461427E-01 2743 -0.108420849897 -0.195113368111E-01 2744 -0.113771621031 -0.336646443661E-01 2745 -0.824473371320E-01 -0.240127510896E-01 2746 -0.113707709664 -0.336438675113E-01 2747 0.708421557899 -0.482365316075E-01 2748 -0.108499022781 -0.195128723780E-01 2749 -0.108441922036 -0.194671413077E-01 2750 -0.113768884475 -0.336165111358E-01 2751 -0.778752231853E-01 0.219128462836E-01 2752 0.778874818405E-01 -0.218399210899E-01 2753 0.778921291169E-01 -0.218447648471E-01 2754 -0.113775482039 -0.336569359043E-01 2755 -0.108428704043 -0.194636220329E-01 2756 -0.113707779694 -0.336438685584E-01 2757 -0.824628689236E-01 -0.239187143836E-01 2758 -0.108504324998 -0.194979128978E-01 2759 0.708452245781 -0.482301755513E-01 2760 -0.113742870354 -0.337097408527E-01 2761 -0.108450359109 -0.195235375579E-01 2762 0.778357619572E-01 -0.219065199575E-01 2763 0.778431504951E-01 -0.219022883429E-01 2764 -0.778669966806E-01 0.219277843467E-01 2765 -0.113874520736 -0.336688386055E-01 2766 -0.108338403268 -0.194499117174E-01 2767 -0.113768775318 -0.336165160320E-01 2768 -0.108450019012 -0.195235299072E-01 2769 -0.108433543178 -0.195033403729E-01 2770 -0.113756667457 -0.336269022152E-01 2771 0.708183881800 -0.482845837341E-01 2772 -0.821967601781E-01 -0.239788921151E-01 2773 -0.778754006515E-01 0.219130650796E-01 2774 -0.778799857601E-01 0.219176148881E-01 2775 0.778166581256E-01 -0.219119495533E-01 2776 -0.108344187519 -0.194726581184E-01 2777 -0.113856078383 -0.337127936116E-01 2778 -0.108442165898 -0.194671475153E-01 2779 -0.113742881879 -0.337097290506E-01 2780 -0.113746561765 -0.337243774728E-01 2781 -0.108457240045 -0.194458222186E-01 2782 -0.822279755594E-01 -0.238731195139E-01 2783 0.708184838285 -0.482845403019E-01 2784 0.659940120086 -0.679527238025 2785 -0.252558782347E-05 0.772361682249E-06 2786 -0.682026047606E-05 0.491873550891E-05 2787 -0.934530593208E-01 0.127387244025E-01 2788 0.933898273102E-01 -0.127703434549E-01 2789 0.933818696720E-01 -0.127460162814E-01 2790 0.934431488473E-01 -0.128046359269E-01 2791 -0.934226221029E-01 0.127322381540E-01 2792 -0.934045666054E-01 0.127971459110E-01 2793 0.934388811488E-01 -0.127939790668E-01 2794 -0.934092281179E-01 0.128095733334E-01 2795 -0.252560645457E-05 0.772326914214E-06 2796 0.659934710333 -0.679527906645 2797 -0.157528150863E-04 -0.123935885317E-05 2798 -0.934057911385E-01 0.127220277602E-01 2799 0.933726334396E-01 -0.127216106568E-01 2800 -0.934230058795E-01 0.128136134826E-01 2801 -0.934165452985E-01 0.127233362766E-01 2802 0.934538617961E-01 -0.128097038285E-01 2803 0.933857540971E-01 -0.127287910776E-01 2804 0.934514739749E-01 -0.128056757299E-01 2805 -0.934094038525E-01 0.128109666482E-01 2806 -0.682026809419E-05 0.491888148167E-05 2807 -0.157529273235E-04 -0.123910019817E-05 2808 0.659946623647 -0.679531291607 2809 -0.934433933130E-01 0.128182095630E-01 2810 0.934198854867E-01 -0.128243261012E-01 2811 0.934388415247E-01 -0.127332003146E-01 2812 -0.934241178654E-01 0.127356310962E-01 2813 -0.934009056798E-01 0.127728560705E-01 2814 0.933902421940E-01 -0.127667887248E-01 2815 -0.933880631213E-01 0.128171167575E-01 2816 0.934384918094E-01 -0.128057566996E-01 2817 -0.933898937589E-01 0.127703351444E-01 2818 -0.933726648370E-01 0.127216014175E-01 2819 -0.934198388226E-01 0.128242940826E-01 2820 0.719085205860 -0.605797779565E-01 2821 -0.829323240198E-01 -0.269102943758E-01 2822 -0.103981171487 -0.449669115756E-01 2823 -0.114196661246 -0.195172721693E-01 2824 -0.114205314099 -0.195128945058E-01 2825 -0.103982171468 -0.449795757396E-01 2826 -0.104042588767 -0.450187992327E-01 2827 -0.114118393472 -0.194851906934E-01 2828 0.934529940657E-01 -0.127387308320E-01 2829 0.934057594784E-01 -0.127220366966E-01 2830 0.934434387721E-01 -0.128182444350E-01 2831 -0.829139591000E-01 -0.268949375843E-01 2832 0.719084540645 -0.605798110180E-01 2833 -0.114183590259 -0.195551408709E-01 2834 -0.103984702180 -0.449572104308E-01 2835 -0.103977200134 -0.449732069217E-01 2836 -0.114180689612 -0.195545830953E-01 2837 -0.114129140707 -0.195146237259E-01 2838 -0.104071058855 -0.449902578859E-01 2839 0.934226395536E-01 -0.127322243521E-01 2840 -0.934538339030E-01 0.128096997018E-01 2841 0.934008726843E-01 -0.127728442995E-01 2842 -0.103977234494 -0.449732050738E-01 2843 -0.114205180214 -0.195128933065E-01 2844 0.719192075189 -0.605225292811E-01 2845 -0.114256711040 -0.195627182688E-01 2846 -0.830662720350E-01 -0.269256538020E-01 2847 -0.103932285307 -0.449428989157E-01 2848 -0.103947146436 -0.450206514883E-01 2849 -0.114198687544 -0.195472519737E-01 2850 0.934044831915E-01 -0.127971306467E-01 2851 -0.933857483020E-01 0.127288220561E-01 2852 -0.933902913191E-01 0.127668343793E-01 2853 -0.114180822048 -0.195545799073E-01 2854 -0.103982177993 -0.449795798589E-01 2855 -0.114245118213 -0.195710873115E-01 2856 0.719219523258 -0.605141687436E-01 2857 -0.103932211563 -0.449429013540E-01 2858 -0.830603286037E-01 -0.270226703988E-01 2859 -0.114226516302 -0.194984774992E-01 2860 -0.103969865654 -0.449368321189E-01 2861 -0.933818522778E-01 0.127460307759E-01 2862 0.934230320906E-01 -0.128136157421E-01 2863 -0.934388734939E-01 0.127332115581E-01 2864 -0.114183724668 -0.195551467325E-01 2865 -0.103981135919 -0.449669200463E-01 2866 -0.830571392067E-01 -0.270018314671E-01 2867 -0.103933652918 -0.449332637869E-01 2868 0.719192074444 -0.605225283721E-01 2869 -0.114245246341 -0.195710902323E-01 2870 -0.114211299268 -0.195181549899E-01 2871 -0.103981581337 -0.449293753417E-01 2872 -0.934432332681E-01 0.128046492338E-01 2873 0.934165502148E-01 -0.127233045919E-01 2874 0.934240671580E-01 -0.127355885139E-01 2875 -0.103984696672 -0.449571978971E-01 2876 -0.114196529188 -0.195172612262E-01 2877 -0.103933728155 -0.449332651805E-01 2878 -0.830745695757E-01 -0.269149110411E-01 2879 -0.114256838098 -0.195627225019E-01 2880 0.719219888125 -0.605141518280E-01 2881 -0.103945182220 -0.450068089790E-01 2882 -0.114213550786 -0.195695873541E-01 2883 0.934092227890E-01 -0.128096061124E-01 2884 0.934093896455E-01 -0.128110092351E-01 2885 -0.934384592574E-01 0.128058141873E-01 2886 -0.104071106671 -0.449902634095E-01 2887 -0.114117922922 -0.194851778826E-01 2888 -0.103981464079 -0.449293843411E-01 2889 -0.114213195579 -0.195695785137E-01 2890 -0.114198428622 -0.195472517046E-01 2891 -0.103969850873 -0.449368310560E-01 2892 0.718988414563 -0.605931018007E-01 2893 -0.828354990036E-01 -0.269371797931E-01 2894 -0.934388869311E-01 0.127939455811E-01 2895 -0.934514858651E-01 0.128056318181E-01 2896 0.933880973132E-01 -0.128170586836E-01 2897 -0.114129611507 -0.195146296924E-01 2898 -0.104042540600 -0.450187982375E-01 2899 -0.114211557395 -0.195181619731E-01 2900 -0.103945196779 -0.450067948792E-01 2901 -0.103947264515 -0.450206444157E-01 2902 -0.114226871980 -0.194984823863E-01 2903 -0.828818485372E-01 -0.268555357167E-01 2904 0.718989405374 -0.605930520602E-01 2905 0.546028459468 -0.512304770319 2906 -0.110639337790E-05 0.117319383170E-05 2907 -0.399421566356E-05 0.529177311441E-05 2908 -0.972952908484E-01 0.564015570456E-02 2909 0.972486120609E-01 -0.566924171900E-02 2910 0.972317299100E-01 -0.564775690616E-02 2911 0.972716242448E-01 -0.569833013197E-02 2912 -0.972628166604E-01 0.564226760471E-02 2913 -0.972432434041E-01 0.568037817426E-02 2914 0.972708053869E-01 -0.568283310942E-02 2915 -0.972504510897E-01 0.569757137702E-02 2916 -0.110644548994E-05 0.117319346960E-05 2917 0.546024469022 -0.512304492784 2918 -0.110192868151E-04 0.138391961326E-05 2919 -0.972483247757E-01 0.563709017334E-02 2920 0.972237967959E-01 -0.562722557461E-02 2921 -0.972651592186E-01 0.569775274733E-02 2922 -0.972646096357E-01 0.563575508804E-02 2923 0.972883547147E-01 -0.569586554912E-02 2924 0.972423726115E-01 -0.563462176721E-02 2925 0.972803717208E-01 -0.569595716485E-02 2926 -0.972485578395E-01 0.569308365814E-02 2927 -0.399407333113E-05 0.529175886866E-05 2928 -0.110192178361E-04 0.138385938989E-05 2929 0.546032814767 -0.512309282286 2930 -0.972718994753E-01 0.570731079891E-02 2931 0.972557511422E-01 -0.570607146519E-02 2932 0.972779399108E-01 -0.562905735713E-02 2933 -0.972639476926E-01 0.563485383023E-02 2934 -0.972500970629E-01 0.567419037599E-02 2935 0.972410940529E-01 -0.566658835004E-02 2936 -0.972253062746E-01 0.570316761800E-02 2937 0.972634932216E-01 -0.569804477266E-02 2938 -0.972486242444E-01 0.566922041767E-02 2939 -0.972238070606E-01 0.562721671308E-02 2940 -0.972557086423E-01 0.570602488373E-02 2941 0.729137620632 -0.697438481073E-01 2942 -0.595591623163E-01 -0.365744522253E-01 2943 -0.873762494037E-01 -0.526302946173E-01 2944 -0.937453248923E-01 -0.268668586598E-01 2945 -0.937529771924E-01 -0.268614505759E-01 2946 -0.873780318373E-01 -0.526418183250E-01 2947 -0.874454604747E-01 -0.526860337277E-01 2948 -0.936545130420E-01 -0.268338587755E-01 2949 0.972952797230E-01 -0.564017622714E-02 2950 0.972483141685E-01 -0.563710000997E-02 2951 0.972719430716E-01 -0.570735715650E-02 2952 -0.595344293901E-01 -0.365571334049E-01 2953 0.729136928706 -0.697438870162E-01 2954 -0.937304211158E-01 -0.269079463785E-01 2955 -0.873815913081E-01 -0.526165329792E-01 2956 -0.873723994652E-01 -0.526338489844E-01 2957 -0.937256913103E-01 -0.269076806599E-01 2958 -0.936677450698E-01 -0.268625325103E-01 2959 -0.874772059005E-01 -0.526508646464E-01 2960 0.972628848352E-01 -0.564227432604E-02 2961 -0.972883237064E-01 0.569587079226E-02 2962 0.972500611408E-01 -0.567419949648E-02 2963 -0.873724361784E-01 -0.526338450290E-01 2964 -0.937528301834E-01 -0.268614530612E-01 2965 0.729257397733 -0.696820991138E-01 2966 -0.938124160842E-01 -0.269155300839E-01 2967 -0.597013086468E-01 -0.365899845579E-01 2968 -0.873179044539E-01 -0.526022494511E-01 2969 -0.873398207356E-01 -0.526883217521E-01 2970 -0.937458777918E-01 -0.268977231715E-01 2971 0.972432117696E-01 -0.568037911102E-02 2972 -0.972423625127E-01 0.563465077496E-02 2973 -0.972411542281E-01 0.566660672401E-02 2974 -0.937258321445E-01 -0.269076745029E-01 2975 -0.873780365216E-01 -0.526418262064E-01 2976 -0.937994539481E-01 -0.269243563337E-01 2977 0.729287581905 -0.696732956885E-01 2978 -0.873178266993E-01 -0.526022516302E-01 2979 -0.597003031064E-01 -0.366928487675E-01 2980 -0.937749110290E-01 -0.268443019627E-01 2981 -0.873628231303E-01 -0.525955655449E-01 2982 -0.972316623650E-01 0.564775232995E-02 2983 0.972651897123E-01 -0.569774711275E-02 2984 -0.972779765344E-01 0.562904860719E-02 2985 -0.937305677170E-01 -0.269079484376E-01 2986 -0.873762115434E-01 -0.526303043819E-01 2987 -0.596927824824E-01 -0.366744236598E-01 2988 -0.873219089826E-01 -0.525929957679E-01 2989 0.729257392833 -0.696820945685E-01 2990 -0.937995911437E-01 -0.269243576020E-01 2991 -0.937594310545E-01 -0.268676197655E-01 2992 -0.873749043132E-01 -0.525893531808E-01 2993 -0.972716562236E-01 0.569832855526E-02 2994 0.972646193539E-01 -0.563572590275E-02 2995 0.972638883651E-01 -0.563483702214E-02 2996 -0.873815863066E-01 -0.526165151303E-01 2997 -0.937451843296E-01 -0.268668492567E-01 2998 -0.873219869472E-01 -0.525929974389E-01 2999 -0.597117181631E-01 -0.365801456262E-01 3000 -0.938125534964E-01 -0.269155324461E-01 3001 0.729287963044 -0.696732781169E-01 3002 -0.873376827906E-01 -0.526735120854E-01 3003 -0.937627210929E-01 -0.269233008964E-01 3004 0.972505011490E-01 -0.569761182743E-02 3005 0.972485709748E-01 -0.569310952076E-02 3006 -0.972634728816E-01 0.569807063670E-02 3007 -0.874772570712E-01 -0.526508694263E-01 3008 -0.936540090919E-01 -0.268338466794E-01 3009 -0.873747780239E-01 -0.525893646775E-01 3010 -0.937623403291E-01 -0.269232914942E-01 3011 -0.937456023052E-01 -0.268977199939E-01 3012 -0.873628064457E-01 -0.525955643927E-01 3013 0.729033483416 -0.697564172710E-01 3014 -0.594479792979E-01 -0.366074576165E-01 3015 -0.972707565882E-01 0.568279230153E-02 3016 -0.972803580054E-01 0.569592992509E-02 3017 0.972253281220E-01 -0.570314241077E-02 3018 -0.936682483751E-01 -0.268625369044E-01 3019 -0.874454086203E-01 -0.526860330151E-01 3020 -0.937597058758E-01 -0.268676298935E-01 3021 -0.873376995616E-01 -0.526734971573E-01 3022 -0.873399469720E-01 -0.526883119046E-01 3023 -0.937752913938E-01 -0.268443075559E-01 3024 -0.594976409138E-01 -0.365152718608E-01 3025 0.729034518937 -0.697563668824E-01 3026 0.474456210367 -0.351029619853 3027 -0.252573922006E-06 0.122363650976E-05 3028 -0.317290243746E-05 0.397488819089E-05 3029 -0.990166064886E-01 0.137629306665E-02 3030 0.989843764912E-01 -0.140317829716E-02 3031 0.989632014441E-01 -0.139520952478E-02 3032 0.990073485757E-01 -0.143707652121E-02 3033 -0.989940799395E-01 0.138887341047E-02 3034 -0.989770929678E-01 0.142631816135E-02 3035 0.989984550147E-01 -0.141755941470E-02 3036 -0.989887238031E-01 0.143537100626E-02 3037 -0.252619517461E-06 0.122362975509E-05 3038 0.474452570446 -0.351029266621 3039 -0.948214432658E-05 0.160860842631E-05 3040 -0.989804484711E-01 0.138249933427E-02 3041 0.989523397428E-01 -0.137555554621E-02 3042 -0.990019590540E-01 0.143351406023E-02 3043 -0.989913000211E-01 0.137444273771E-02 3044 0.990172277043E-01 -0.142956769713E-02 3045 0.989716405361E-01 -0.137409758098E-02 3046 0.990146531335E-01 -0.143459179205E-02 3047 -0.989840829401E-01 0.143639363758E-02 3048 -0.317276705988E-05 0.397488712446E-05 3049 -0.948211147471E-05 0.160853510365E-05 3050 0.474459969221 -0.351032776515 3051 -0.990073739449E-01 0.144077358475E-02 3052 0.989891665779E-01 -0.144267907998E-02 3053 0.990021831234E-01 -0.137295569043E-02 3054 -0.989911659341E-01 0.137870774695E-02 3055 -0.989897185173E-01 0.141591550294E-02 3056 0.989779061560E-01 -0.140979404450E-02 3057 -0.989614407821E-01 0.144241952927E-02 3058 0.989934151636E-01 -0.143558499661E-02 3059 -0.989844136010E-01 0.140316467181E-02 3060 -0.989523684132E-01 0.137554702829E-02 3061 -0.989891158769E-01 0.144265409058E-02 3062 0.684268733206 -0.719115571875E-01 3063 -0.104170001209 -0.360698937436E-01 3064 -0.120270564667 -0.455152785288E-01 3065 -0.139459210238 -0.170409690039E-01 3066 -0.139468877736 -0.170363975056E-01 3067 -0.120273684053 -0.455294440357E-01 3068 -0.120328755364 -0.455706002676E-01 3069 -0.139377487499 -0.169977500186E-01 3070 0.990165700982E-01 -0.137630642388E-02 3071 0.989804201970E-01 -0.138250798090E-02 3072 0.990074247485E-01 -0.144079725216E-02 3073 -0.104142630343 -0.360494126717E-01 3074 0.684267998224 -0.719115987680E-01 3075 -0.139444237199 -0.170791098489E-01 3076 -0.120279230679 -0.455040754995E-01 3077 -0.120267915257 -0.455227670083E-01 3078 -0.139436082239 -0.170819592189E-01 3079 -0.139394892353 -0.170348782419E-01 3080 -0.120365370460 -0.455489115412E-01 3081 0.989941304584E-01 -0.138887417665E-02 3082 -0.990172073621E-01 0.142956383379E-02 3083 0.989896886457E-01 -0.141591116908E-02 3084 -0.120267951443 -0.455227620146E-01 3085 -0.139468730917 -0.170363959745E-01 3086 0.684364951634 -0.718424646159E-01 3087 -0.139517086556 -0.170965807672E-01 3088 -0.104293366270 -0.360957605841E-01 3089 -0.120224051166 -0.454854959104E-01 3090 -0.120232955548 -0.455721748045E-01 3091 -0.139465639513 -0.170691888152E-01 3092 0.989770403690E-01 -0.142631652869E-02 3093 -0.989716380491E-01 0.137411177699E-02 3094 -0.989779513619E-01 0.140980905043E-02 3095 -0.139436226212 -0.170819548507E-01 3096 -0.120273692887 -0.455294535598E-01 3097 -0.139505018809 -0.170981837019E-01 3098 0.684396376791 -0.718327169400E-01 3099 -0.120223970044 -0.454854989237E-01 3100 -0.104291690085 -0.361950152399E-01 3101 -0.139493092448 -0.170210788010E-01 3102 -0.120259327431 -0.454874598632E-01 3103 -0.989631513403E-01 0.139520959977E-02 3104 0.990019799880E-01 -0.143351593206E-02 3105 -0.990022132838E-01 0.137295691321E-02 3106 -0.139444384253 -0.170791164062E-01 3107 -0.120270528514 -0.455152898941E-01 3108 -0.104286292077 -0.361693819065E-01 3109 -0.120228048100 -0.454747903683E-01 3110 0.684364944985 -0.718424633875E-01 3111 -0.139505159577 -0.170981873380E-01 3112 -0.139478503635 -0.170429195487E-01 3113 -0.120271176266 -0.454797535584E-01 3114 -0.990074016169E-01 0.143707763054E-02 3115 0.989913024565E-01 -0.137442851900E-02 3116 0.989911207191E-01 -0.137869146607E-02 3117 -0.120279222612 -0.455040555321E-01 3118 -0.139459067423 -0.170409576037E-01 3119 -0.120228129816 -0.454747910953E-01 3120 -0.104299944261 -0.360807525435E-01 3121 -0.139517228081 -0.170965858896E-01 3122 0.684396779697 -0.718326968692E-01 3123 -0.120231495978 -0.455545223814E-01 3124 -0.139479173396 -0.170942098384E-01 3125 0.989887541472E-01 -0.143539670964E-02 3126 0.989840731785E-01 -0.143641889224E-02 3127 -0.989933704056E-01 0.143560733621E-02 3128 -0.120365427354 -0.455489192869E-01 3129 -0.139376975384 -0.169977301751E-01 3130 -0.120271047533 -0.454797660457E-01 3131 -0.139478786173 -0.170941937163E-01 3132 -0.139465359739 -0.170691818556E-01 3133 -0.120259315008 -0.454874610550E-01 3134 0.684158347757 -0.719271058804E-01 3135 -0.104057465020 -0.360916565580E-01 3136 -0.989984249069E-01 0.141753388240E-02 3137 -0.990146623655E-01 0.143456420679E-02 3138 0.989614865204E-01 -0.144239577469E-02 3139 -0.139395404104 -0.170348903621E-01 3140 -0.120328698398 -0.455705974267E-01 3141 -0.139478782195 -0.170429338391E-01 3142 -0.120231508413 -0.455545049841E-01 3143 -0.120233083882 -0.455721646734E-01 3144 -0.139493478857 -0.170210909438E-01 3145 -0.104114030585 -0.360140987725E-01 3146 0.684159451341 -0.719270458834E-01 3147 0.193473063284 -0.415506475859 3148 0.104566395375E-05 0.239881404996E-05 3149 -0.516938572985E-06 0.816161175769E-05 3150 -0.107275773233 0.181571121932E-03 3151 0.107251180323 -0.186191997466E-03 3152 0.107226758234 -0.191824359691E-03 3153 0.107248585648 -0.248249581045E-03 3154 -0.107260147894 0.202858018629E-03 3155 -0.107213169536 0.218700082401E-03 3156 0.107233608411 -0.222261654514E-03 3157 -0.107230736273 0.228430915432E-03 3158 0.104559625837E-05 0.239874551227E-05 3159 0.193469460199 -0.415504458137 3160 -0.848312154527E-05 0.657257668471E-05 3161 -0.107253199112 0.194454285666E-03 3162 0.107219369893 -0.171180544290E-03 3163 -0.107242333147 0.223656715632E-03 3164 -0.107263038509 0.181836632663E-03 3165 0.107253826485 -0.231455141209E-03 3166 0.107242712936 -0.166171184528E-03 3167 0.107252722451 -0.243983894872E-03 3168 -0.107220603485 0.228504126036E-03 3169 -0.516729215676E-06 0.816159974881E-05 3170 -0.848289231091E-05 0.657252494710E-05 3171 0.193474559021 -0.415513046208 3172 -0.107236880663 0.250977661857E-03 3173 0.107216085893 -0.241321928340E-03 3174 0.107258036068 -0.170175044909E-03 3175 -0.107250515068 0.178584775233E-03 3176 -0.107256733047 0.205627742792E-03 3177 0.107244075099 -0.199331411581E-03 3178 -0.107192273328 0.242151464941E-03 3179 0.107223253895 -0.254623517471E-03 3180 -0.107251196738 0.186178017845E-03 3181 -0.107219375770 0.171174411031E-03 3182 -0.107216073054 0.241290129577E-03 3183 0.672188090193 -0.781116906932E-01 3184 -0.823316597202E-01 -0.414885357025E-01 3185 -0.131747973713 -0.543787213184E-01 3186 -0.132338014636 -0.259379552926E-01 3187 -0.132346472037 -0.259316796981E-01 3188 -0.131747993041 -0.543957954329E-01 3189 -0.131838655787 -0.544469126449E-01 3190 -0.132223169469 -0.259017902402E-01 3191 0.107275757288 -0.181584717239E-03 3192 0.107253192943 -0.194461648010E-03 3193 0.107236891879 -0.251008868898E-03 3194 -0.823018991524E-01 -0.414785034449E-01 3195 0.672187320147 -0.781117361582E-01 3196 -0.132321315545 -0.259897273351E-01 3197 -0.131755021812 -0.543641295707E-01 3198 -0.131744911071 -0.543861117734E-01 3199 -0.132313578371 -0.259911985943E-01 3200 -0.132241463125 -0.259347029775E-01 3201 -0.131875591776 -0.544006395131E-01 3202 0.107260223801 -0.202863840056E-03 3203 -0.107253779256 0.231447430494E-03 3204 0.107256678794 -0.205628556663E-03 3205 -0.131744948865 -0.543861057664E-01 3206 -0.132346315646 -0.259316767527E-01 3207 0.672334728504 -0.780425250575E-01 3208 -0.132423863202 -0.259946126921E-01 3209 -0.825068019395E-01 -0.415087164411E-01 3210 -0.131671179449 -0.543511313618E-01 3211 -0.131711473603 -0.544515303683E-01 3212 -0.132339652363 -0.259795481858E-01 3213 0.107213146706 -0.218698519656E-03 3214 -0.107242675476 0.166181831114E-03 3215 -0.107244127833 0.199352714655E-03 3216 -0.132313731636 -0.259911931139E-01 3217 -0.131748005957 -0.543958095824E-01 3218 -0.132412950824 -0.260072283879E-01 3219 0.672373437050 -0.780324384085E-01 3220 -0.131671091131 -0.543511356633E-01 3221 -0.825135043948E-01 -0.416294694140E-01 3222 -0.132370983840 -0.259125505589E-01 3223 -0.131736329126 -0.543376981434E-01 3224 -0.107226682807 0.191819494244E-03 3225 0.107242380699 -0.223663344925E-03 3226 -0.107258088638 0.170172055610E-03 3227 -0.132321472798 -0.259897361966E-01 3228 -0.131747936636 -0.543787351915E-01 3229 -0.825020483736E-01 -0.416070454587E-01 3230 -0.131676761929 -0.543345787877E-01 3231 0.672334728984 -0.780425213614E-01 3232 -0.132413096876 -0.260072343752E-01 3233 -0.132352418795 -0.259392565765E-01 3234 -0.131750351817 -0.543283724314E-01 3235 -0.107248608492 0.248249316298E-03 3236 0.107263074954 -0.181825138009E-03 3237 0.107250460396 -0.178564567080E-03 3238 -0.131755010340 -0.543641055970E-01 3239 -0.132337863437 -0.259379448698E-01 3240 -0.131676850339 -0.543345790859E-01 3241 -0.825195270144E-01 -0.414965168146E-01 3242 -0.132424009909 -0.259946206352E-01 3243 0.672373855726 -0.780324158255E-01 3244 -0.131709182054 -0.544313546858E-01 3245 -0.132356550401 -0.260095924282E-01 3246 0.107230779844 -0.228455744514E-03 3247 0.107220609924 -0.228527288962E-03 3248 -0.107223217134 0.254650903674E-03 3249 -0.131875648473 -0.544006488009E-01 3250 -0.132222625079 -0.259017691806E-01 3251 -0.131750218936 -0.543283892270E-01 3252 -0.132356138629 -0.260095752083E-01 3253 -0.132339351989 -0.259795428796E-01 3254 -0.131736315292 -0.543377009675E-01 3255 0.672064408546 -0.781290471604E-01 3256 -0.822060359251E-01 -0.415346680077E-01 3257 -0.107233565193 0.222236141473E-03 3258 -0.107252714907 0.243958436374E-03 3259 0.107192309759 -0.242123912443E-03 3260 -0.132242006995 -0.259347161576E-01 3261 -0.131838598224 -0.544469092434E-01 3262 -0.132352717802 -0.259392690448E-01 3263 -0.131709194907 -0.544313345672E-01 3264 -0.131711605120 -0.544515156663E-01 3265 -0.132371394092 -0.259125634149E-01 3266 -0.822633755121E-01 -0.414190666267E-01 3267 0.672065553246 -0.781289821556E-01 3268 0.773839406845E-01 -0.926218881200 3269 -0.435147367192E-06 0.486222668647E-05 3270 -0.230312101495E-04 0.281227979106E-04 3271 -0.117931833633 0.290405973612E-02 3272 0.117842201393 -0.289201357903E-02 3273 0.117817484162 -0.293025299084E-02 3274 0.117920800078 -0.309801709045E-02 3275 -0.117941687418 0.294729223550E-02 3276 -0.117787271973 0.307438564639E-02 3277 0.117865160879 -0.304939216680E-02 3278 -0.117848508602 0.305324105934E-02 3279 -0.435289022258E-06 0.486212348772E-05 3280 0.773671757741E-01 -0.926208764751 3281 -0.441932331798E-04 0.294923972840E-04 3282 -0.117931597082 0.289814784561E-02 3283 0.117806329720 -0.287543660041E-02 3284 -0.117848648053 0.305552119246E-02 3285 -0.117919676471 0.285851346721E-02 3286 0.117891078120 -0.306807492762E-02 3287 0.117845201063 -0.283794457412E-02 3288 0.117923442047 -0.310644228508E-02 3289 -0.117802252518 0.309095199670E-02 3290 -0.230309926828E-04 0.281232073418E-04 3291 -0.441943267658E-04 0.294920632240E-04 3292 0.774032683753E-01 -0.926241860538 3293 -0.117913414821 0.310823007913E-02 3294 0.117831428603 -0.310123369905E-02 3295 0.117864406746 -0.293037180863E-02 3296 -0.117866457034 0.293344037726E-02 3297 -0.117858364519 0.295557332254E-02 3298 0.117837931998 -0.294873790002E-02 3299 -0.117799406486 0.309407301541E-02 3300 0.117912815341 -0.311423139668E-02 3301 -0.117842248469 0.289200333898E-02 3302 -0.117806356797 0.287543244915E-02 3303 -0.117831393875 0.310114807852E-02 3304 0.624911532900 -0.145940724389 3305 -0.148261731099 -0.682609030551E-01 3306 -0.165022835583 -0.119055489293 3307 -0.204174353868 -0.533098022814E-01 3308 -0.204191003999 -0.533076940524E-01 3309 -0.165021124068 -0.119067248332 3310 -0.165043074737 -0.119158963831 3311 -0.204095610805 -0.531958919031E-01 3312 0.117931787341 -0.290406863456E-02 3313 0.117931571364 -0.289815250051E-02 3314 0.117913448804 -0.310831507980E-02 3315 -0.148198401815 -0.682247226746E-01 3316 0.624910724638 -0.145940793696 3317 -0.204137958913 -0.533409450642E-01 3318 -0.165036873407 -0.119044470097 3319 -0.165015148619 -0.119071253408 3320 -0.204121717255 -0.533534202136E-01 3321 -0.204127464901 -0.532592242027E-01 3322 -0.165125922960 -0.119165524628 3323 0.117941731855 -0.294728174306E-02 3324 -0.117891055378 0.306809804172E-02 3325 0.117858337010 -0.295559476017E-02 3326 -0.165015186983 -0.119071239330 3327 -0.204190856371 -0.533076972084E-01 3328 0.624963468906 -0.145782035143 3329 -0.204217305460 -0.534220653565E-01 3330 -0.148349235176 -0.683776722801E-01 3331 -0.164985197832 -0.118980554281 3332 -0.164951965649 -0.119121702091 3333 -0.204168943132 -0.533324891350E-01 3334 0.117787218084 -0.307435057551E-02 3335 -0.117845187823 0.283800056537E-02 3336 -0.117837975300 0.294877450564E-02 3337 -0.204121866639 -0.533534146056E-01 3338 -0.165021139020 -0.119067272595 3339 -0.204190245676 -0.534162295742E-01 3340 0.624999442642 -0.145760184832 3341 -0.164985104498 -0.118980558384 3342 -0.148324326698 -0.684992828945E-01 3343 -0.204223124939 -0.532910412321E-01 3344 -0.165028415141 -0.119039776060 3345 -0.117817440160 0.293026416153E-02 3346 0.117848672874 -0.305549475025E-02 3347 -0.117864433605 0.293035036486E-02 3348 -0.204138106192 -0.533409490051E-01 3349 -0.165022796579 -0.119055512016 3350 -0.148319624557 -0.684550060446E-01 3351 -0.165004605208 -0.118964209216 3352 0.624963468773 -0.145782028654 3353 -0.204190390426 -0.534162308702E-01 3354 -0.204207009804 -0.533096339826E-01 3355 -0.165044452347 -0.119036765609 3356 -0.117920853949 0.309804997860E-02 3357 0.117919688580 -0.285845686954E-02 3358 0.117866412367 -0.293340446964E-02 3359 -0.165036858291 -0.119044435279 3360 -0.204174205901 -0.533097917967E-01 3361 -0.165004698444 -0.118964208834 3362 -0.148350788344 -0.683602520997E-01 3363 -0.204217451631 -0.534220683788E-01 3364 0.624999883154 -0.145760156547 3365 -0.164959210891 -0.119096741273 3366 -0.204177394925 -0.533638921528E-01 3367 0.117848515722 -0.305327116401E-02 3368 0.117802229084 -0.309098952848E-02 3369 -0.117912776175 0.311427410276E-02 3370 -0.165125985999 -0.119165536702 3371 -0.204095076189 -0.531958707685E-01 3372 -0.165044315046 -0.119036793933 3373 -0.204176988362 -0.533638747506E-01 3374 -0.204168646382 -0.533324781574E-01 3375 -0.165028403348 -0.119039788507 3376 0.624783505574 -0.145983410005 3377 -0.148094500030 -0.682497818681E-01 3378 -0.117865154844 0.304936016862E-02 3379 -0.117923464812 0.310640266796E-02 3380 0.117799445773 -0.309403166964E-02 3381 -0.204127998808 -0.532592373635E-01 3382 -0.165043009570 -0.119158957398 3383 -0.204207306207 -0.533096523871E-01 3384 -0.164959221574 -0.119096710767 3385 -0.164952101663 -0.119121675630 3386 -0.204223529864 -0.532910538899E-01 3387 -0.148222278261 -0.682011353125E-01 3388 0.624784713350 -0.145983315014 3389 0.493687133311 -0.716923260400 3390 0.240627447306E-05 0.388834097063E-06 3391 -0.220976668021E-04 -0.653719784343E-05 3392 -0.148547716814 0.143664260964E-02 3393 0.148474516441 -0.149326781731E-02 3394 0.148494149119 -0.154413834582E-02 3395 0.148691393692 -0.154847577306E-02 3396 -0.148592962212 0.144982110294E-02 3397 -0.148604603255 0.164798992344E-02 3398 0.148612672914 -0.156797128106E-02 3399 -0.148610045120 0.158099539237E-02 3400 0.240605279437E-05 0.389069122096E-06 3401 0.493673265679 -0.716931950798 3402 -0.344563815650E-04 -0.219178356192E-04 3403 -0.148531550025 0.141679610079E-02 3404 0.148437215475 -0.150599889517E-02 3405 -0.148621302419 0.158851281729E-02 3406 -0.148489915883 0.141834043908E-02 3407 0.148649954998 -0.156575010814E-02 3408 0.148430135475 -0.145632263755E-02 3409 0.148709567585 -0.155636790893E-02 3410 -0.148628323066 0.165276757984E-02 3411 -0.220974929713E-04 -0.653729073050E-05 3412 -0.344562291436E-04 -0.219179085604E-04 3413 0.493707727742 -0.716919579925 3414 -0.148678620426 0.157396117068E-02 3415 0.148622253982 -0.164244329283E-02 3416 0.148553742152 -0.148919941629E-02 3417 -0.148547647615 0.148296209827E-02 3418 -0.148552603885 0.151390006543E-02 3419 0.148534262679 -0.151781176414E-02 3420 -0.148588992751 0.164944170174E-02 3421 0.148673998903 -0.156981199058E-02 3422 -0.148474521053 0.149322350746E-02 3423 -0.148437222443 0.150598539196E-02 3424 -0.148622205526 0.164238548505E-02 3425 0.643582248983 -0.204348192986 3426 -0.100872621642 -0.139335326793 3427 -0.125764809848 -0.172137855807 3428 -0.163895364985 -0.125273181120 3429 -0.163905043711 -0.125275695468 3430 -0.125761543201 -0.172153598471 3431 -0.125809063718 -0.172221870272 3432 -0.163813477657 -0.125200146666 3433 0.148547714621 -0.143668584114E-02 3434 0.148531543077 -0.141680849008E-02 3435 0.148678667239 -0.157401753958E-02 3436 -0.100818997513 -0.139306323267 3437 0.643581416192 -0.204348272527 3438 -0.163865972067 -0.125320527264 3439 -0.125770962454 -0.172123863404 3440 -0.125747536322 -0.172149845398 3441 -0.163842010303 -0.125324092069 3442 -0.163821469704 -0.125258725647 3443 -0.125857927152 -0.172215922544 3444 0.148593050048 -0.144984867691E-02 3445 -0.148649928625 0.156575277587E-02 3446 0.148552560938 -0.151390721750E-02 3447 -0.125747576119 -0.172149828535 3448 -0.163904876987 -0.125275712343 3449 0.643655353753 -0.204249533673 3450 -0.163943117686 -0.125367465833 3451 -0.100981124938 -0.139404809805 3452 -0.125706160527 -0.172088677552 3453 -0.125699123695 -0.172206165524 3454 -0.163888491913 -0.125316576632 3455 0.148604575046 -0.164800117555E-02 3456 -0.148430123542 0.145635004210E-02 3457 -0.148534329508 0.151783718697E-02 3458 -0.163842170346 -0.125324078248 3459 -0.125761559496 -0.172153632120 3460 -0.163928450934 -0.125370224682 3461 0.643698189659 -0.204226890188 3462 -0.125706062325 -0.172088681151 3463 -0.100959284045 -0.139528087225 3464 -0.163932678480 -0.125268676607 3465 -0.125754693081 -0.172115279524 3466 -0.148494062321 0.154410901800E-02 3467 0.148621328736 -0.158850619445E-02 3468 -0.148553785846 0.148918960971E-02 3469 -0.163866138096 -0.125320518711 3470 -0.125764769159 -0.172137883191 3471 -0.100964779059 -0.139491822508 3472 -0.125731360502 -0.172073947155 3473 0.643655348729 -0.204249522967 3474 -0.163928604670 -0.125370219549 3475 -0.163920243779 -0.125295827674 3476 -0.125772336918 -0.172109998334 3477 -0.148691419612 0.154846430177E-02 3478 0.148489926442 -0.141831074329E-02 3479 0.148547579291 -0.148293653435E-02 3480 -0.125770947609 -0.172123819291 3481 -0.163895206908 -0.125273179539 3482 -0.125731459365 -0.172073947167 3483 -0.100995377393 -0.139383970024 3484 -0.163943273356 -0.125367463529 3485 0.643698644474 -0.204226858937 3486 -0.125706843560 -0.172180618459 3487 -0.163900241139 -0.125348864322 3488 0.148610108773 -0.158105522171E-02 3489 0.148628340126 -0.165281191236E-02 3490 -0.148673972868 0.156984079195E-02 3491 -0.125857994066 -0.172215939867 3492 -0.163812904778 -0.125200150570 3493 -0.125772185688 -0.172110040891 3494 -0.163899804760 -0.125348862727 3495 -0.163888174506 -0.125316577680 3496 -0.125754676774 -0.172115300967 3497 0.643452254749 -0.204404444703 3498 -0.100723694121 -0.139341541444 3499 -0.148612609583 0.156790912100E-02 3500 -0.148709550443 0.155632079338E-02 3501 0.148589020994 -0.164941274895E-02 3502 -0.163822042719 -0.125258714102 3503 -0.125808995791 -0.172221859458 3504 -0.163920561364 -0.125295834768 3505 -0.125706858449 -0.172180578170 3506 -0.125699273973 -0.172206124723 3507 -0.163933113007 -0.125268672313 3508 -0.100812276485 -0.139278045096 3509 0.643453497411 -0.204404330021 3510 0.753629632040E-01 -0.534644922457 3511 0.933425167660E-05 0.376538269069E-05 3512 -0.200495757718E-04 -0.133678188201E-05 3513 -0.184542730214 -0.166960259894E-01 3514 0.184479987953 0.166436035390E-01 3515 0.184517539509 0.166092870387E-01 3516 0.184657170662 0.166481262225E-01 3517 -0.184582323030 -0.167059279814E-01 3518 -0.184622244858 -0.165528268872E-01 3519 0.184606714319 0.166077490875E-01 3520 -0.184605181585 -0.166004469678E-01 3521 0.933386792747E-05 0.376540561653E-05 3522 0.753467739254E-01 -0.534650957078 3523 -0.371950099346E-04 -0.132882722766E-04 3524 -0.184513313436 -0.167191632165E-01 3525 0.184457109663 0.166286036272E-01 3526 -0.184619247926 -0.165990923148E-01 3527 -0.184487397334 -0.166973258861E-01 3528 0.184637768224 0.166169262421E-01 3529 0.184439995366 0.166629569982E-01 3530 0.184684926337 0.166451864207E-01 3531 -0.184648503173 -0.165526064998E-01 3532 -0.200492651018E-04 -0.133695992840E-05 3533 -0.371953549215E-04 -0.132879349777E-04 3534 0.753836933863E-01 -0.534644592333 3535 -0.184667682960 -0.166116068428E-01 3536 0.184639049689 0.165419427379E-01 3537 0.184546111013 0.166731514066E-01 3538 -0.184534097487 -0.166787834174E-01 3539 -0.184540166812 -0.166489970052E-01 3540 0.184525744459 0.166473185580E-01 3541 -0.184603635012 -0.165370616866E-01 3542 0.184655994451 0.166133192119E-01 3543 -0.184479990080 -0.166436049071E-01 3544 -0.184457120916 -0.166286153507E-01 3545 -0.184639019329 -0.165419908290E-01 3546 0.668625613687 -0.250201999419 3547 -0.872480931779E-01 -0.133590400329 3548 -0.784713371722E-01 -0.196759333206 3549 -0.166598036565 -0.117754841043 3550 -0.166614215537 -0.117759618225 3551 -0.784677251053E-01 -0.196768944513 3552 -0.784504510566E-01 -0.196869766324 3553 -0.166542021864 -0.117612359166 3554 0.184542728919 0.166960271320E-01 3555 0.184513301870 0.167191527082E-01 3556 0.184667713192 0.166115591095E-01 3557 -0.871501500288E-01 -0.133519015592 3558 0.668624767957 -0.250202101158 3559 -0.166538327837 -0.117781708589 3560 -0.784898146510E-01 -0.196741885044 3561 -0.784492150308E-01 -0.196769429121 3562 -0.166509111177 -0.117787617401 3563 -0.166557512420 -0.117690846731 3564 -0.785398842089E-01 -0.196909047737 3565 0.184582417356 0.167059461859E-01 3566 -0.184637742488 -0.166169319956E-01 3567 0.184540135874 0.166489993224E-01 3568 -0.784492631128E-01 -0.196769395992 3569 -0.166614043056 -0.117759628306 3570 0.668619692770 -0.250029004151 3571 -0.166601787432 -0.117897098522 3572 -0.872664117250E-01 -0.133735866873 3573 -0.784455268576E-01 -0.196656075652 3574 -0.783669909998E-01 -0.196816738882 3575 -0.166576623158 -0.117773953065 3576 0.184622230866 0.165528535651E-01 3577 -0.184439974813 -0.166629299510E-01 3578 -0.184525784760 -0.166472912947E-01 3579 -0.166509272870 -0.117787605372 3580 -0.784677314363E-01 -0.196768997475 3581 -0.166564159622 -0.117881941566 3582 0.668659648174 -0.249988574712 3583 -0.784454183615E-01 -0.196656087384 3584 -0.872162914825E-01 -0.133857785714 3585 -0.166635603799 -0.117747042708 3586 -0.784703369064E-01 -0.196753762034 3587 -0.184517444886 -0.166092698767E-01 3588 0.184619273256 0.165990895047E-01 3589 -0.184546142814 -0.166731520157E-01 3590 -0.166538496271 -0.117781706451 3591 -0.784712848131E-01 -0.196759375616 3592 -0.872283374015E-01 -0.133809915318 3593 -0.784829751853E-01 -0.196654089433 3594 0.668619687622 -0.250029003394 3595 -0.166564314893 -0.117881938381 3596 -0.166620448741 -0.117779340446 3597 -0.784891291365E-01 -0.196757332471 3598 -0.184657184565 -0.166481005778E-01 3599 0.184487415646 0.166973537728E-01 3600 0.184534058540 0.166788097388E-01 3601 -0.784898075869E-01 -0.196741821970 3602 -0.166597875061 -0.117754837301 3603 -0.784830852319E-01 -0.196654081919 3604 -0.872754304780E-01 -0.133712652793 3605 -0.166601945628 -0.117897099303 3606 0.668660112096 -0.249988531611 3607 -0.783905496695E-01 -0.196788238880 3608 -0.166580072920 -0.117813782985 3609 0.184605231255 0.166004267976E-01 3610 0.184648502699 0.165525721278E-01 3611 -0.184655937122 -0.166132821480E-01 3612 -0.785399499098E-01 -0.196909069844 3613 -0.166541443142 -0.117612354387 3614 -0.784889517602E-01 -0.196757382993 3615 -0.166579631127 -0.117813773794 3616 -0.166576302976 -0.117773949402 3617 -0.784703086357E-01 -0.196753790864 3618 0.668502878471 -0.250285282178 3619 -0.870493536955E-01 -0.133536413360 3620 -0.184606664212 -0.166077722069E-01 3621 -0.184684925920 -0.166452252103E-01 3622 0.184603693930 0.165370985547E-01 3623 -0.166558088041 -0.117690844068 3624 -0.784503811189E-01 -0.196869750028 3625 -0.166620768277 -0.117779352912 3626 -0.783905755184E-01 -0.196788189248 3627 -0.783671671296E-01 -0.196816689712 3628 -0.166636043110 -0.117747045629 3629 -0.871961343607E-01 -0.133530997417 3630 0.668504137872 -0.250285139208 3631 -0.229074872750 -0.939166839643 3632 0.121963088726E-04 0.156474219027E-04 3633 -0.207340139464E-04 -0.176284456682E-04 3634 -0.221078563337 -0.678988146882E-01 3635 0.221071703919 0.678163007518E-01 3636 0.221129125090 0.677880341142E-01 3637 0.221210513147 0.679310764401E-01 3638 -0.221121791254 -0.679262156350E-01 3639 -0.221238609554 -0.678207886952E-01 3640 0.221192569448 0.678676825744E-01 3641 -0.221200603997 -0.678617862824E-01 3642 0.121967337882E-04 0.156461746341E-04 3643 -0.229091073167 -0.939189353093 3644 -0.353786025606E-04 -0.497122290490E-04 3645 -0.221047234357 -0.678997921109E-01 3646 0.221053214180 0.677768988984E-01 3647 -0.221210729771 -0.678626412027E-01 3648 -0.221040545036 -0.678565528337E-01 3649 0.221207568790 0.678941871099E-01 3650 0.221021019687 0.677976740977E-01 3651 0.221243662274 0.679492112962E-01 3652 -0.221273244326 -0.678388876667E-01 3653 -0.207343444988E-04 -0.176264217474E-04 3654 -0.353782284336E-04 -0.497151841070E-04 3655 -0.229049770312 -0.939149779189 3656 -0.221242304210 -0.679086447662E-01 3657 0.221256282344 0.678221004624E-01 3658 0.221107660819 0.678780529541E-01 3659 -0.221092148154 -0.678752808545E-01 3660 -0.221129160324 -0.678587844619E-01 3661 0.221106546777 0.678554761618E-01 3662 -0.221231345526 -0.677921183153E-01 3663 0.221221948632 0.678928555573E-01 3664 -0.221071758225 -0.678162912060E-01 3665 -0.221053276018 -0.677768712334E-01 3666 -0.221256281006 -0.678221668722E-01 3667 0.676333784597 -0.208117365207 3668 -0.576814104430E-01 -0.109883047737 3669 -0.361393185098E-01 -0.122245415258 3670 -0.145429948160 -0.980774117107E-01 3671 -0.145444684107 -0.980930111587E-01 3672 -0.361411251345E-01 -0.122267955365 3673 -0.361262486762E-01 -0.122304659306 3674 -0.145413423738 -0.979740062065E-01 3675 0.221078508671 0.678988254689E-01 3676 0.221047171851 0.678998218381E-01 3677 0.221242304953 0.679085816139E-01 3678 -0.576539605425E-01 -0.109771302797 3679 0.676332919767 -0.208117444515 3680 -0.145386553183 -0.980947056160E-01 3681 -0.361684276349E-01 -0.122238633197 3682 -0.361250817108E-01 -0.122243007725 3683 -0.145363396471 -0.980877837839E-01 3684 -0.145398513965 -0.980449202761E-01 3685 -0.361668888626E-01 -0.122360229898 3686 0.221121832607 0.679262371830E-01 3687 -0.221207546154 -0.678941953508E-01 3688 0.221129138958 0.678587892229E-01 3689 -0.361251397193E-01 -0.122242986101 3690 -0.145444489527 -0.980930146957E-01 3691 0.676302615886 -0.208028433908 3692 -0.145402930105 -0.981850797481E-01 3693 -0.576897137749E-01 -0.109925745686 3694 -0.361465912646E-01 -0.122167125151 3695 -0.360451441449E-01 -0.122258141762 3696 -0.145423614251 -0.981016252468E-01 3697 0.221238557178 0.678208373029E-01 3698 -0.221020998492 -0.677976379575E-01 3699 -0.221106553721 -0.678554380302E-01 3700 -0.145363570409 -0.980877661492E-01 3701 -0.361411324911E-01 -0.122267990351 3702 -0.145395868259 -0.981547826564E-01 3703 0.676335432973 -0.207981082489 3704 -0.361464654841E-01 -0.122167125321 3705 -0.576330830827E-01 -0.110038641095 3706 -0.145472263722 -0.980778350489E-01 3707 -0.361271089420E-01 -0.122222923922 3708 -0.221129082602 -0.677880132759E-01 3709 0.221210751201 0.678626348920E-01 3710 -0.221107679770 -0.678780536660E-01 3711 -0.145386746284 -0.980947089688E-01 3712 -0.361392590392E-01 -0.122245444966 3713 -0.576563107817E-01 -0.109998788666 3714 -0.361599966185E-01 -0.122178533565 3715 0.676302614925 -0.208028427767 3716 -0.145396043937 -0.981547755417E-01 3717 -0.145432932857 -0.981169442694E-01 3718 -0.361397993270E-01 -0.122222975818 3719 -0.221210564858 -0.679310307949E-01 3720 0.221040561143 0.678565913257E-01 3721 0.221092140478 0.678753206480E-01 3722 -0.361684197736E-01 -0.122238585747 3723 -0.145429774300 -0.980774107617E-01 3724 -0.361601211829E-01 -0.122178536804 3725 -0.577084989370E-01 -0.109909517986 3726 -0.145403104670 -0.981850766443E-01 3727 0.676335909027 -0.207981052419 3728 -0.360730392547E-01 -0.122248055785 3729 -0.145407661054 -0.981448284970E-01 3730 0.221200565222 0.678617679271E-01 3731 0.221273187147 0.678388740836E-01 3732 -0.221221868245 -0.678928222538E-01 3733 -0.361669623422E-01 -0.122360249540 3734 -0.145412786735 -0.979740075011E-01 3735 -0.361396047123E-01 -0.122223001163 3736 -0.145407177161 -0.981448187879E-01 3737 -0.145423263741 -0.981016221117E-01 3738 -0.361270761711E-01 -0.122222940442 3739 0.676231165763 -0.208216708408 3740 -0.575379368208E-01 -0.109772413046 3741 -0.221192606430 -0.678677047562E-01 3742 -0.221243717113 -0.679492289527E-01 3743 0.221231426729 0.677921515933E-01 3744 -0.145399149228 -0.980449095533E-01 3745 -0.361261731782E-01 -0.122304644036 3746 -0.145433281328 -0.981169556696E-01 3747 -0.360730716335E-01 -0.122248017579 3748 -0.360453367989E-01 -0.122258117819 3749 -0.145472747193 -0.980778377513E-01 3750 -0.576330052635E-01 -0.109787673369 3751 0.676232454384 -0.208216600553 3752 0.656159963197E-01 -1.31143762784 3753 0.541513616602E-05 0.186470031526E-04 3754 -0.448367002757E-05 -0.137736107127E-04 3755 -0.227185827120 -0.122470112102 3756 0.227219351979 0.122445574350 3757 0.227302866109 0.122439012870 3758 0.227227118937 0.122555905086 3759 -0.227230063008 -0.122518012558 3760 -0.227296367668 -0.122512209767 3761 0.227241532462 0.122510118339 3762 -0.227248183810 -0.122534522638 3763 0.541514776684E-05 0.186472160907E-04 3764 0.656169549750E-01 -1.31145729742 3765 0.493470665701E-05 -0.387430120483E-04 3766 -0.227189724758 -0.122471841412 3767 0.227241419001 0.122396623359 3768 -0.227261665326 -0.122526920703 3769 -0.227223391695 -0.122434874762 3770 0.227230959111 0.122530208958 3771 0.227225865550 0.122395416290 3772 0.227233016212 0.122586239701 3773 -0.227315359636 -0.122548804380 3774 -0.448318299477E-05 -0.137736819339E-04 3775 0.493490634949E-05 -0.387431926338E-04 3776 0.656261615023E-01 -1.31141802216 3777 -0.227256856420 -0.122564273491 3778 0.227303625167 0.122515173949 3779 0.227207447952 0.122471732724 3780 -0.227206977925 -0.122464081695 3781 -0.227230902663 -0.122501982409 3782 0.227214800888 0.122485515787 3783 -0.227308027725 -0.122498055113 3784 0.227253231562 0.122538324657 3785 -0.227219331471 -0.122445598799 3786 -0.227241413190 -0.122396650839 3787 -0.227303599388 -0.122515257800 3788 0.639820949706 -0.312202365539 3789 -0.485420797009E-01 -0.197918288288 3790 -0.661040339578E-01 -0.181285695125 3791 -0.187080891268 -0.193176630399 3792 -0.187080461435 -0.193208826247 3793 -0.660893650237E-01 -0.181306140451 3794 -0.661032791320E-01 -0.181318188347 3795 -0.187075790113 -0.193118690092 3796 0.227185848008 0.122470087636 3797 0.227189725794 0.122471813708 3798 0.227256877410 0.122564189017 3799 -0.485428895461E-01 -0.197834692626 3800 0.639820033500 -0.312202457614 3801 -0.187040056858 -0.193192432274 3802 -0.661126441628E-01 -0.181289934890 3803 -0.660831299346E-01 -0.181286595266 3804 -0.187019473335 -0.193196220172 3805 -0.187043881148 -0.193177793545 3806 -0.661001345478E-01 -0.181367867319 3807 0.227230166783 0.122517977407 3808 -0.227230878890 -0.122530244490 3809 0.227230838319 0.122501992534 3810 -0.660831810868E-01 -0.181286571111 3811 -0.187080268505 -0.193208838056 3812 0.639791703917 -0.312180737574 3813 -0.187038713136 -0.193254154087 3814 -0.485576792830E-01 -0.197922098604 3815 -0.661164005780E-01 -0.181253004366 3816 -0.660433739664E-01 -0.181287582425 3817 -0.187067751283 -0.193216961176 3818 0.227296368721 0.122512234969 3819 -0.227225808162 -0.122395407502 3820 -0.227214872984 -0.122485427920 3821 -0.187019647910 -0.193196194624 3822 -0.660893851763E-01 -0.181306200202 3823 -0.187048239831 -0.193232232931 3824 0.639807808478 -0.312130039478 3825 -0.661162796171E-01 -0.181252994098 3826 -0.484986366425E-01 -0.198010678046 3827 -0.187100491982 -0.193196843783 3828 -0.660958545778E-01 -0.181264982017 3829 -0.227302761855 -0.122439046443 3830 0.227261743955 0.122526886215 3831 -0.227207509518 -0.122471722368 3832 -0.187040247120 -0.193192429339 3833 -0.661039806133E-01 -0.181285729944 3834 -0.485343921135E-01 -0.197996000542 3835 -0.661244274953E-01 -0.181242147174 3836 0.639791692126 -0.312180727462 3837 -0.187048419194 -0.193232220843 3838 -0.187058535821 -0.193215657629 3839 -0.661119666738E-01 -0.181270338173 3840 -0.227227115082 -0.122555881468 3841 0.227223444113 0.122434881606 3842 0.227206903200 0.122464169100 3843 -0.661126242110E-01 -0.181289863299 3844 -0.187080717666 -0.193176638061 3845 -0.661245505355E-01 -0.181242159530 3846 -0.485781832371E-01 -0.197906159210 3847 -0.187038893480 -0.193254144108 3848 0.639808308450 -0.312130006203 3849 -0.660634345405E-01 -0.181290354638 3850 -0.187046823443 -0.193235290234 3851 0.227248265001 0.122534455141 3852 0.227315384323 0.122548742649 3853 -0.227253225954 -0.122538264380 3854 -0.661002179609E-01 -0.181367895358 3855 -0.187075163485 -0.193118714658 3856 -0.661117802275E-01 -0.181270374441 3857 -0.187046355125 -0.193235294677 3858 -0.187067416432 -0.193216967627 3859 -0.660958296097E-01 -0.181265005411 3860 0.639748668987 -0.312300780361 3861 -0.484711447325E-01 -0.197827348884 3862 -0.227241446804 -0.122510187601 3863 -0.227232986448 -0.122586302461 3864 0.227308035655 0.122498115157 3865 -0.187044504694 -0.193177760674 3866 -0.661031940065E-01 -0.181318167313 3867 -0.187058869888 -0.193215660157 3868 -0.660634578480E-01 -0.181290309252 3869 -0.660435587202E-01 -0.181287547180 3870 -0.187100958861 -0.193196833648 3871 -0.485206512747E-01 -0.197855209169 3872 0.639750041834 -0.312300655014 3873 -0.345935739006 -1.66229516888 3874 0.146259310486E-04 0.404089904427E-04 3875 -0.207752987706E-04 -0.216373995685E-04 3876 -0.305619204500 -0.215350839605 3877 0.305597666240 0.215384463607 3878 0.305727395852 0.215419773354 3879 0.305621132267 0.215415351330 3880 -0.305672958126 -0.215464383606 3881 -0.305672148370 -0.215359443347 3882 0.305630779548 0.215368187546 3883 -0.305608760884 -0.215396053023 3884 0.146259708368E-04 0.404081011365E-04 3885 -0.345946514981 -1.66232848578 3886 -0.242991682803E-04 -0.601681097662E-04 3887 -0.305622478171 -0.215447975999 3888 0.305658036747 0.215351748099 3889 -0.305641872021 -0.215389511690 3890 -0.305662633438 -0.215437035720 3891 0.305609476023 0.215348667002 3892 0.305648770045 0.215384572136 3893 0.305628045802 0.215407723117 3894 -0.305686968167 -0.215410415555 3895 -0.207752091189E-04 -0.216356219419E-04 3896 -0.242986624365E-04 -0.601688483071E-04 3897 -0.345913269926 -1.66225863758 3898 -0.305644649276 -0.215438684715 3899 0.305678562922 0.215370815971 3900 0.305640248007 0.215339379030 3901 -0.305645138148 -0.215367474929 3902 -0.305593971636 -0.215417385156 3903 0.305581479302 0.215390602339 3904 -0.305676383743 -0.215389087411 3905 0.305650433535 0.215396030761 3906 -0.305597780806 -0.215384355239 3907 -0.305658068853 -0.215351713141 3908 -0.305678575532 -0.215370949874 3909 0.669787408987 -0.464170502836 3910 0.771075480702E-01 -0.250615051794 3911 0.667799558812E-02 -0.274240635477 3912 -0.137693099249 -0.329884186947 3913 -0.137664800385 -0.329927832830 3914 0.668926591606E-02 -0.274244022050 3915 0.668043760053E-02 -0.274259230502 3916 -0.137674666485 -0.329855572222 3917 0.305619090633 0.215350951467 3918 0.305622444065 0.215448012216 3919 0.305644634137 0.215438553383 3920 0.771323418649E-01 -0.250523983216 3921 0.669786522873 -0.464170636012 3922 -0.137646048675 -0.329884053125 3923 0.668554186644E-02 -0.274215138021 3924 0.670937849112E-02 -0.274223582372 3925 -0.137603003321 -0.329910504612 3926 -0.137633770479 -0.329883967001 3927 0.670346013070E-02 -0.274295686507 3928 0.305672943305 0.215464476527 3929 -0.305609454871 -0.215348651303 3930 0.305593915445 0.215417389940 3931 0.670932022817E-02 -0.274223527623 3932 -0.137664562925 -0.329927879342 3933 0.669766519766 -0.464180893936 3934 -0.137624747828 -0.329946017178 3935 0.771269200114E-01 -0.250599522352 3936 0.668481179964E-02 -0.274224908088 3937 0.672389215635E-02 -0.274250823488 3938 -0.137647300096 -0.329918063673 3939 0.305672047617 0.215359616871 3940 -0.305648736582 -0.215384490415 3941 -0.305581519547 -0.215390520516 3942 -0.137603192556 -0.329910452962 3943 0.668926409301E-02 -0.274244147086 3944 -0.137642969020 -0.329932536880 3945 0.669772449007 -0.464139115371 3946 0.668494072948E-02 -0.274224895936 3947 0.771668183739E-01 -0.250667686116 3948 -0.137666508605 -0.329900173901 3949 0.668670458823E-02 -0.274239323897 3950 -0.305727411451 -0.215419681538 3951 0.305641893795 0.215389526657 3952 -0.305640303053 -0.215339380117 3953 -0.137646280907 -0.329884017062 3954 0.667805868153E-02 -0.274240701040 3955 0.771560969591E-01 -0.250670604177 3956 0.665090495424E-02 -0.274196148943 3957 0.669766493706 -0.464180867888 3958 -0.137643159219 -0.329932498087 3959 -0.137644226681 -0.329911857703 3960 0.668237027705E-02 -0.274256567763 3961 -0.305621231895 -0.215415179342 3962 0.305662661654 0.215437118155 3963 0.305645096954 0.215367558059 3964 0.668554526789E-02 -0.274215001737 3965 -0.137692908381 -0.329884220482 3966 0.665077219169E-02 -0.274196163489 3967 0.771082576380E-01 -0.250579618896 3968 -0.137624940020 -0.329945981823 3969 0.669772942339 -0.464139070773 3970 0.671658480308E-02 -0.274252792742 3971 -0.137641149099 -0.329921611070 3972 0.305608670407 0.215396087983 3973 0.305686924631 0.215410381264 3974 -0.305650392787 -0.215395978034 3975 0.670336500776E-02 -0.274295737912 3976 -0.137673961083 -0.329855680317 3977 0.668260219582E-02 -0.274256652662 3978 -0.137640615694 -0.329921677032 3979 -0.137646919751 -0.329918102128 3980 0.668674113379E-02 -0.274239379025 3981 0.669745012399 -0.464257287650 3982 0.771826429474E-01 -0.250558871159 3983 -0.305630867881 -0.215368154933 3984 -0.305628089156 -0.215407756089 3985 0.305676426765 0.215389143636 3986 -0.137634469219 -0.329883850353 3987 0.668053802933E-02 -0.274259187799 3988 -0.137644604855 -0.329911828348 3989 0.671655062191E-02 -0.274252714175 3990 0.672366274267E-02 -0.274250740083 3991 -0.137667038622 -0.329900102546 3992 0.771652147301E-01 -0.250588793670 3993 0.669746351058 -0.464257125009 3994 0.607540142970 -4.03157268086 3995 -0.113553268557E-03 0.605106794751E-04 3996 0.528736084533E-04 -0.305314030221E-04 3997 -0.980778627495E-01 -0.660684816757 3998 0.978829115016E-01 0.660661970730 3999 0.979486605935E-01 0.660905549088 4000 0.978592001851E-01 0.660711446957 4001 -0.979068494966E-01 -0.660915729944 4002 -0.980657799292E-01 -0.660729832547 4003 0.980086470705E-01 0.660688811915 4004 -0.979774860394E-01 -0.660683200753 4005 -0.113550937049E-03 0.605113806031E-04 4006 0.607641403382 -4.03160973891 4007 0.178083969201E-03 -0.699830741017E-04 4008 -0.978044974761E-01 -0.660816373327 4009 0.980297262993E-01 0.660728403819 4010 -0.979346594004E-01 -0.660713062409 4011 -0.978423795033E-01 -0.660840087448 4012 0.980206390627E-01 0.660604073552 4013 0.979277763739E-01 0.660744495749 4014 0.980035078620E-01 0.660733086033 4015 -0.980080653559E-01 -0.660826025680 4016 0.528696278653E-04 -0.305327579841E-04 4017 0.178086393866E-03 -0.699831657175E-04 4018 0.607440257599 -4.03153000696 4019 -0.978611803249E-01 -0.660749850516 4020 0.980469353196E-01 0.660702667682 4021 0.981285755345E-01 0.660721776383 4022 -0.979960604571E-01 -0.660762463477 4023 -0.978688176116E-01 -0.660712705678 4024 0.979001739898E-01 0.660662020292 4025 -0.980153167006E-01 -0.660788314775 4026 0.980439122299E-01 0.660752591742 4027 -0.978828363075E-01 -0.660662027772 4028 -0.980296895121E-01 -0.660728438669 4029 -0.980468545614E-01 -0.660702986864 4030 1.03102668742 -0.734172167414 4031 0.204671771626 -0.411771988949E-01 4032 0.178403534835 -0.206927694623 4033 0.128145212249 -0.429161755385 4034 0.128270674110 -0.429158590180 4035 0.178426513195 -0.206939490192 4036 0.178378201570 -0.206972469436 4037 0.128242990867 -0.429099153992 4038 0.980779325799E-01 0.660684759724 4039 0.978045244826E-01 0.660816335029 4040 0.978612512619E-01 0.660749529990 4041 0.204632144011 -0.410690175431E-01 4042 1.03102573415 -0.734172209466 4043 0.128188687697 -0.429133405644 4044 0.178344913864 -0.206881709425 4045 0.178412709811 -0.206894160532 4046 0.128338836591 -0.429108922650 4047 0.128231779519 -0.429100946524 4048 0.178414509579 -0.206945277497 4049 0.979070147034E-01 0.660915602150 4050 -0.980205579002E-01 -0.660604138951 4051 0.978687784880E-01 0.660712742891 4052 0.178412623391 -0.206894093628 4053 0.128270888846 -0.429158572774 4054 1.03107511038 -0.734234079579 4055 0.128258104691 -0.429153034298 4056 0.204613932868 -0.411073725914E-01 4057 0.178452104893 -0.206894097731 4058 0.178443879701 -0.206979102749 4059 0.128234669682 -0.429130771553 4060 0.980657898654E-01 0.660729926660 4061 -0.979277332990E-01 -0.660744411252 4062 -0.979002915500E-01 -0.660661801983 4063 0.128338613274 -0.429108866303 4064 0.178426560770 -0.206939674513 4065 0.128245957552 -0.429180149949 4066 1.03107488656 -0.734174697799 4067 0.178452223360 -0.206894039779 4068 0.204668820488 -0.411856587188E-01 4069 0.128216008517 -0.429103364138 4070 0.178435252837 -0.206946471678 4071 -0.979484900827E-01 -0.660905676737 4072 0.979347459534E-01 0.660712998868 4073 -0.981286043578E-01 -0.660721741238 4074 0.128188485572 -0.429133431159 4075 0.178403628589 -0.206927772260 4076 0.204657224382 -0.411512313876E-01 4077 0.178311375707 -0.206896700580 4078 1.03107511682 -0.734234057922 4079 0.128245762928 -0.429180107981 4080 0.128232951949 -0.429113166435 4081 0.178440477054 -0.206938775684 4082 -0.978591833576E-01 -0.660711351612 4083 0.978424104051E-01 0.660840167899 4084 0.979959342802E-01 0.660762683500 4085 0.178344868336 -0.206881510592 4086 0.128145437237 -0.429161791399 4087 0.178311247949 -0.206896762254 4088 0.204546632160 -0.410796138664E-01 4089 0.128257906255 -0.429152993035 4090 1.03107543823 -0.734174698322 4091 0.178427182225 -0.206958256212 4092 0.128218605145 -0.429123898629 4093 0.979776467767E-01 0.660682926212 4094 0.980081331533E-01 0.660825825719 4095 -0.980439174602E-01 -0.660752480770 4096 0.178414451916 -0.206945388180 4097 0.128243732120 -0.429099215737 4098 0.178440716705 -0.206938810435 4099 0.128219149604 -0.429123911613 4100 0.128235073416 -0.429130762396 4101 0.178435327869 -0.206946529673 4102 1.03099538399 -0.734266547898 4103 0.204729780894 -0.411052162792E-01 4104 -0.980084761750E-01 -0.660689083074 4105 -0.980034396548E-01 -0.660733287716 4106 0.980153095262E-01 0.660788430779 4107 0.128231047763 -0.429100868100 4108 0.178378268587 -0.206972360926 4109 0.128232548928 -0.429113180027 4110 0.178427112095 -0.206958170722 4111 0.178443641335 -0.206979062134 4112 0.128215470811 -0.429103340359 4113 0.204730566527 -0.411031164164E-01 4114 1.03099681634 -0.734266519982 4115 3.29181755287 -1.92252349394 4116 -0.130059257038E-04 -0.397959113150E-04 4117 0.751427919769E-05 0.668679495788E-05 4118 0.325725648959 -0.271543668037 4119 -0.325740438715 0.271410412506 4120 -0.325838154121 0.271521178241 4121 -0.325744180197 0.271411036985 4122 0.325892453580 -0.271504941707 4123 0.325712938359 -0.271538074388 4124 -0.325717879429 0.271495649128 4125 0.325749357579 -0.271477265016 4126 -0.130063889421E-04 -0.397932061378E-04 4127 3.29181781668 -1.92248099216 4128 0.488501146276E-05 0.738582109458E-04 4129 0.325842098612 -0.271391510137 4130 -0.325739260159 0.271522802353 4131 0.325723247118 -0.271449149553 4132 0.325820523737 -0.271421664013 4133 -0.325659098241 0.271494959615 4134 -0.325765758983 0.271464746851 4135 -0.325772964237 0.271532369960 4136 0.325793844898 -0.271532277464 4137 0.751540455870E-05 0.668332705075E-05 4138 0.488535919093E-05 0.738588127565E-04 4139 3.29181586145 -1.92255087764 4140 0.325764452727 -0.271423202796 4141 -0.325694822283 0.271531675656 4142 -0.325742117185 0.271582309484 4143 0.325760943019 -0.271499600596 4144 0.325784201780 -0.271410854812 4145 -0.325747344574 0.271425144972 4146 0.325782779057 -0.271504325527 4147 -0.325780702115 0.271528565392 4148 0.325740438327 -0.271410486301 4149 0.325739239516 -0.271522858449 4150 0.325695117447 -0.271531750827 4151 1.27828534564 -0.296647190171 4152 0.655517378632E-01 -0.454794752797E-01 4153 0.152201074187 -0.914717331144E-01 4154 0.240058294258 -0.168196637730 4155 0.240097338964 -0.168119136707 4156 0.152220620605 -0.914649728921E-01 4157 0.152198385511 -0.915008510967E-01 4158 0.240089239867 -0.168109800113 4159 -0.325725650114 0.271543592504 4160 -0.325842125196 0.271391444966 4161 -0.325764160939 0.271423119711 4162 0.655148065684E-01 -0.454560806577E-01 4163 1.27828435955 -0.296647214997 4164 0.240074757244 -0.168185493133 4165 0.152174527442 -0.914976387450E-01 4166 0.152197757436 -0.914601145852E-01 4167 0.240102175238 -0.168077601840 4168 0.240086982168 -0.168148979935 4169 0.152191629999 -0.914821440118E-01 4170 -0.325892277817 0.271504835652 4171 0.325659167183 -0.271495052780 4172 -0.325784281893 0.271410929642 4173 0.152197622979 -0.914601006776E-01 4174 0.240097556312 -0.168119124570 4175 1.27838074511 -0.296658571804 4176 0.240077665473 -0.168150762898 4177 0.654721066661E-01 -0.454586956299E-01 4178 0.152218317633 -0.914196903546E-01 4179 0.152267678668 -0.914933249031E-01 4180 0.240063948024 -0.168158668722 4181 -0.325713075511 0.271538064427 4182 0.325765694230 -0.271464757955 4183 0.325747114711 -0.271425000209 4184 0.240101918057 -0.168077573045 4185 0.152220777895 -0.914650223197E-01 4186 0.240079766198 -0.168164943510 4187 1.27834812509 -0.296622542354 4188 0.152218408519 -0.914196604503E-01 4189 0.655065023010E-01 -0.455075798200E-01 4190 0.240043981827 -0.168119185753 4191 0.152245936405 -0.914555677691E-01 4192 0.325838331538 -0.271521282675 4193 -0.325723178719 0.271449059559 4194 0.325742040770 -0.271582228408 4195 0.240074547190 -0.168185503797 4196 0.152201214316 -0.914717510280E-01 4197 0.654763695344E-01 -0.455059515567E-01 4198 0.152188880418 -0.915072727342E-01 4199 1.27838072968 -0.296658548280 4200 0.240079536577 -0.168164930102 4201 0.240076092423 -0.168138000999 4202 0.152236348741 -0.914528033499E-01 4203 0.325744045666 -0.271411042560 4204 -0.325820594740 0.271421640287 4205 -0.325761174851 0.271499739776 4206 0.152174372938 -0.914975726066E-01 4207 0.240058552973 -0.168196643226 4208 0.152188785437 -0.915073148952E-01 4209 0.654469049428E-01 -0.454894456184E-01 4210 0.240077433931 -0.168150755460 4211 1.27834870162 -0.296622546202 4212 0.152252506948 -0.915010294170E-01 4213 0.240053575679 -0.168168489027 4214 -0.325749123920 0.271477099383 4215 -0.325793720380 0.271532138242 4216 0.325780673536 -0.271528470057 4217 0.152191637021 -0.914821754072E-01 4218 0.240090073029 -0.168109783625 4219 0.152236608298 -0.914527997828E-01 4220 0.240054175687 -0.168168460806 4221 0.240064368585 -0.168158639248 4222 0.152246044037 -0.914555693929E-01 4223 1.27829318714 -0.296698351288 4224 0.655757318924E-01 -0.454592516647E-01 4225 0.325718115084 -0.271495807457 4226 0.325773089316 -0.271532511952 4227 -0.325782809513 0.271504419928 4228 0.240086152197 -0.168148977827 4229 0.152198382656 -0.915008191459E-01 4230 0.240075670422 -0.168138041300 4231 0.152252398414 -0.915009997038E-01 4232 0.152267418004 -0.914933284611E-01 4233 0.240043382781 -0.168119201725 4234 0.655794181024E-01 -0.454295650813E-01 4235 1.27829468712 -0.296698348240 4236 2.14003407796 -0.887279484851 4237 -0.109391029353E-04 -0.502903286437E-05 4238 0.362356136629E-05 -0.442725046778E-05 4239 0.154420991523 -0.102648132691 4240 -0.154408658005 0.102550303517 4241 -0.154494923276 0.102585586969 4242 -0.154391116150 0.102539279065 4243 0.154507934957 -0.102588254206 4244 0.154407742677 -0.102616619406 4245 -0.154402985573 0.102591082172 4246 0.154411272860 -0.102577645133 4247 -0.109392905939E-04 -0.502860360098E-05 4248 2.14003497812 -0.887274009524 4249 0.336912422309E-05 0.815884388624E-05 4250 0.154465650740 -0.102541745196 4251 -0.154460072762 0.102612087616 4252 0.154379294002 -0.102580280204 4253 0.154467250756 -0.102566553918 4254 -0.154366377059 0.102602804444 4255 -0.154466657507 0.102585148084 4256 -0.154425957381 0.102597713661 4257 0.154432547289 -0.102594734237 4258 0.362396831804E-05 -0.442740319420E-05 4259 0.336886644566E-05 0.816019460812E-05 4260 2.14003268240 -0.887279803022 4261 0.154398257928 -0.102553528216 4262 -0.154394379470 0.102613545896 4263 -0.154443651459 0.102651595359 4264 0.154439861816 -0.102612349478 4265 0.154423107180 -0.102530106692 4266 -0.154424635955 0.102549283629 4267 0.154436529165 -0.102568967409 4268 -0.154434469442 0.102589347878 4269 0.154408698996 -0.102550366721 4270 0.154460101828 -0.102612144825 4271 0.154394548982 -0.102613572636 4272 1.04838727410 -0.116684143855 4273 0.199937297020E-01 -0.261117503961E-01 4274 0.594118682781E-01 -0.424481017772E-01 4275 0.101157363089 -0.577450921410E-01 4276 0.101156043133 -0.576868989831E-01 4277 0.594145822497E-01 -0.424430064293E-01 4278 0.593907936707E-01 -0.424776815857E-01 4279 0.101189394452 -0.576733152365E-01 4280 -0.154420950660 0.102648069016 4281 -0.154465623637 0.102541681710 4282 -0.154398090939 0.102553498666 4283 0.199987291691E-01 -0.260791636133E-01 4284 1.04838620902 -0.116684156597 4285 0.101167661791 -0.577413694730E-01 4286 0.594008185098E-01 -0.424504742524E-01 4287 0.594132120124E-01 -0.424381466077E-01 4288 0.101167146817 -0.576773904584E-01 4289 0.101186875860 -0.577108623282E-01 4290 0.593747055903E-01 -0.424574317734E-01 4291 -0.154507725565 0.102588181317 4292 0.154366492186 -0.102602874377 4293 -0.154423213360 0.102530154994 4294 0.594131130465E-01 -0.424381482937E-01 4295 0.101156265500 -0.576868877936E-01 4296 1.04848586113 -0.116653326087 4297 0.101135645395 -0.577270325625E-01 4298 0.199118606415E-01 -0.261048705221E-01 4299 0.594295168734E-01 -0.423990840013E-01 4300 0.594688462386E-01 -0.424747129711E-01 4301 0.101149515829 -0.577210145974E-01 4302 -0.154407795530 0.102616592297 4303 0.154466680380 -0.102585172030 4304 0.154424430763 -0.102549196522 4305 0.101166901897 -0.576773776279E-01 4306 0.594146699488E-01 -0.424430196116E-01 4307 0.101146078848 -0.577397444854E-01 4308 1.04847472634 -0.116638705792 4309 0.594296187022E-01 -0.423990710348E-01 4310 0.199217545246E-01 -0.261727388427E-01 4311 0.101122304887 -0.576811357528E-01 4312 0.594460479396E-01 -0.424244397909E-01 4313 0.154495132564 -0.102585657708 4314 -0.154379178882 0.102580214431 4315 0.154443547130 -0.102651545207 4316 0.101167441918 -0.577413812122E-01 4317 0.594119692998E-01 -0.424481059157E-01 4318 0.199190313650E-01 -0.261662352020E-01 4319 0.594286227852E-01 -0.424522911257E-01 4320 1.04848583840 -0.116653312961 4321 0.101145849884 -0.577397396676E-01 4322 0.101148148219 -0.576977001241E-01 4323 0.594401679207E-01 -0.424185931989E-01 4324 0.154391065652 -0.102539305086 4325 -0.154467230699 0.102566522599 4326 -0.154440069369 0.102612433518 4327 0.594007317121E-01 -0.424504448452E-01 4328 0.101157607862 -0.577450814037E-01 4329 0.594285197756E-01 -0.424523142599E-01 4330 0.199023604314E-01 -0.261143156991E-01 4331 0.101135415867 -0.577270342873E-01 4332 1.04847533245 -0.116638704870 4333 0.594616525433E-01 -0.424744041781E-01 4334 0.101137754267 -0.577371905821E-01 4335 -0.154411057301 0.102577543840 4336 -0.154432413232 0.102594636309 4337 0.154434442523 -0.102589280075 4338 0.593746710497E-01 -0.424574427239E-01 4339 0.101190205747 -0.576732792146E-01 4340 0.594404083334E-01 -0.424185896504E-01 4341 0.101138348926 -0.577371579691E-01 4342 0.101149930992 -0.577209887582E-01 4343 0.594461184576E-01 -0.424244271343E-01 4344 1.04835761035 -0.116697162976 4345 0.200658154135E-01 -0.261137195295E-01 4346 0.154403201620 -0.102591181807 4347 0.154426092771 -0.102597815729 4348 -0.154436556730 0.102569034111 4349 0.101186066005 -0.577108830204E-01 4350 0.593908295091E-01 -0.424776729589E-01 4351 0.101147733155 -0.576977378817E-01 4352 0.594615815849E-01 -0.424743896401E-01 4353 0.594686058043E-01 -0.424747188120E-01 4354 0.101121710384 -0.576811584395E-01 4355 0.200456251576E-01 -0.260696500975E-01 4356 1.04835922535 -0.116697159133 4357 1.92070455705 -0.507536673810 4358 -0.919134226080E-05 -0.192433105346E-05 4359 0.510894223267E-05 -0.450301878151E-05 4360 0.108153568271 -0.569379858457E-01 4361 -0.108144963516 0.568665679026E-01 4362 -0.108207394800 0.568803241913E-01 4363 -0.108105027765 0.568519935458E-01 4364 0.108204556085 -0.568860808427E-01 4365 0.108130286548 -0.568982404177E-01 4366 -0.108130004168 0.568853342790E-01 4367 0.108135139986 -0.568752716909E-01 4368 -0.919254711586E-05 -0.192390182886E-05 4369 1.92070598442 -0.507535347927 4370 0.350509924918E-05 0.118416038869E-05 4371 0.108175320008 -0.568589598061E-01 4372 -0.108187803324 0.569043749911E-01 4373 0.108109587877 -0.568813361626E-01 4374 0.108183608542 -0.568786319813E-01 4375 -0.108098506821 0.568977686084E-01 4376 -0.108193635015 0.568902771082E-01 4377 -0.108137233757 0.568893714279E-01 4378 0.108149410982 -0.568798749427E-01 4379 0.510912799797E-05 -0.450318182271E-05 4380 0.350570349350E-05 0.118451069743E-05 4381 1.92070172979 -0.507534087029 4382 0.108118715863 -0.568605612414E-01 4383 -0.108127889560 0.569015615445E-01 4384 -0.108167275163 0.569292067982E-01 4385 0.108160113669 -0.569038453966E-01 4386 0.108137710484 -0.568405357790E-01 4387 -0.108142571116 0.568572231398E-01 4388 0.108154794385 -0.568627653593E-01 4389 -0.108148041612 0.568835516445E-01 4390 0.108144942557 -0.568665768538E-01 4391 0.108187792194 -0.569043782356E-01 4392 0.108128062031 -0.569016035447E-01 4393 1.02438036575 -0.985338243169E-01 4394 0.480661775056E-01 -0.386288532565E-01 4395 0.753362351581E-01 -0.472311939262E-01 4396 0.899813724498E-01 -0.466059101226E-01 4397 0.899716875220E-01 -0.465599673786E-01 4398 0.753341002392E-01 -0.472248205256E-01 4399 0.753250031544E-01 -0.472447510093E-01 4400 0.899985359192E-01 -0.465396909324E-01 4401 -0.108153587431 0.569379764748E-01 4402 -0.108175332742 0.568589512126E-01 4403 -0.108118544888 0.568605145741E-01 4404 0.480807874381E-01 -0.385803921956E-01 4405 1.02437928628 -0.985338624272E-01 4406 0.899856480427E-01 -0.465980671959E-01 4407 0.753246906901E-01 -0.472315325188E-01 4408 0.753381978245E-01 -0.472223075211E-01 4409 0.899861085548E-01 -0.465518552773E-01 4410 0.899907526390E-01 -0.465858526613E-01 4411 0.753096655430E-01 -0.472418413420E-01 4412 -0.108204416252 0.568860680645E-01 4413 0.108098593764 -0.568977747941E-01 4414 -0.108137798988 0.568405315152E-01 4415 0.753380860987E-01 -0.472222982365E-01 4416 0.899719284917E-01 -0.465599621140E-01 4417 1.02444307683 -0.985035885260E-01 4418 0.899652581678E-01 -0.465925301720E-01 4419 0.480258441111E-01 -0.386056066901E-01 4420 0.753384839377E-01 -0.471897771108E-01 4421 0.753895599759E-01 -0.472537038546E-01 4422 0.899610307767E-01 -0.465835880500E-01 4423 -0.108130395495 0.568982500699E-01 4424 0.108193629592 -0.568902538134E-01 4425 0.108142390977 -0.568571952716E-01 4426 0.899858534086E-01 -0.465518420287E-01 4427 0.753341951074E-01 -0.472248389275E-01 4428 0.899759341108E-01 -0.465954368482E-01 4429 1.02443504984 -0.984955650858E-01 4430 0.753386023981E-01 -0.471897786288E-01 4431 0.480218694747E-01 -0.386768993257E-01 4432 0.899416568125E-01 -0.465466921170E-01 4433 0.753760634650E-01 -0.472113601568E-01 4434 0.108207533752 -0.568803360315E-01 4435 -0.108109501439 0.568813326299E-01 4436 0.108167187597 -0.569292081211E-01 4437 0.899854084938E-01 -0.465980746437E-01 4438 0.753363481501E-01 -0.472312100247E-01 4439 0.480207524276E-01 -0.386696068975E-01 4440 0.753407422563E-01 -0.472321860433E-01 4441 1.02444305388 -0.985035893957E-01 4442 0.899756927499E-01 -0.465954350247E-01 4443 0.899623601139E-01 -0.465639028293E-01 4444 0.753703332515E-01 -0.472094031066E-01 4445 0.108104920567 -0.568519818232E-01 4446 -0.108183616393 0.568786496433E-01 4447 -0.108160294983 0.569038689587E-01 4448 0.753245964740E-01 -0.472314962852E-01 4449 0.899816275857E-01 -0.466058988274E-01 4450 0.753406229202E-01 -0.472321935061E-01 4451 0.480183836563E-01 -0.386075404587E-01 4452 0.899650168883E-01 -0.465925338339E-01 4453 1.02443566427 -0.984955493567E-01 4454 0.753820044968E-01 -0.472543889591E-01 4455 0.899479475738E-01 -0.465992283695E-01 4456 -0.108134986850 0.568752400132E-01 4457 -0.108149329141 0.568798567872E-01 4458 0.108148038309 -0.568835302624E-01 4459 0.753096248039E-01 -0.472418532142E-01 4460 0.899993922378E-01 -0.465396735992E-01 4461 0.753705968870E-01 -0.472094113167E-01 4462 0.899485755348E-01 -0.465992116048E-01 4463 0.899614740767E-01 -0.465835832863E-01 4464 0.753761434788E-01 -0.472113581724E-01 4465 1.02433718090 -0.985348426855E-01 4466 0.481487737063E-01 -0.386212077528E-01 4467 0.108130158299 -0.568853632613E-01 4468 0.108137317531 -0.568893915360E-01 4469 -0.108154797660 0.568627845670E-01 4470 0.899898979787E-01 -0.465858526136E-01 4471 0.753250445898E-01 -0.472447412377E-01 4472 0.899619172189E-01 -0.465639180637E-01 4473 0.753819240682E-01 -0.472543627149E-01 4474 0.753892969447E-01 -0.472536961750E-01 4475 0.899410286157E-01 -0.465466989090E-01 4476 0.481319376226E-01 -0.385945018206E-01 4477 1.02433881971 -0.985347900500E-01 4478 1.62704731702 -0.361501274751 4479 -0.919433278761E-05 -0.412457750299E-06 4480 0.606821936273E-05 -0.232571525549E-05 4481 0.670372400530E-01 -0.378049722523E-01 4482 -0.670139916233E-01 0.377310816884E-01 4483 -0.670677934713E-01 0.377372762023E-01 4484 -0.669701962365E-01 0.377500457748E-01 4485 0.670773728303E-01 -0.377574848592E-01 4486 0.669874730158E-01 -0.377827613172E-01 4487 -0.669931911837E-01 0.377696097456E-01 4488 0.669966559129E-01 -0.377603078835E-01 4489 -0.919538850858E-05 -0.411590098716E-06 4490 1.62705036654 -0.361500621849 4491 0.666924642479E-05 0.952270364448E-06 4492 0.670526207585E-01 -0.377313725808E-01 4493 -0.670604626318E-01 0.377579662220E-01 4494 0.669703214037E-01 -0.377704687619E-01 4495 0.670639713590E-01 -0.377404256035E-01 4496 -0.669676686343E-01 0.377859060876E-01 4497 -0.670703387404E-01 0.377404380956E-01 4498 -0.670009375302E-01 0.377818904014E-01 4499 0.669975983147E-01 -0.377649503426E-01 4500 0.606865154183E-05 -0.232616178227E-05 4501 0.666914155824E-05 0.952404133507E-06 4502 1.62704255808 -0.361499572409 4503 0.669785049384E-01 -0.377563058852E-01 4504 -0.669840970563E-01 0.377822734979E-01 4505 -0.670390975604E-01 0.377992598495E-01 4506 0.670343468568E-01 -0.377784299710E-01 4507 0.670024849287E-01 -0.377206590047E-01 4508 -0.670128006269E-01 0.377326724646E-01 4509 0.670053320529E-01 -0.377438932139E-01 4510 -0.670121910134E-01 0.377712997235E-01 4511 0.670139710742E-01 -0.377310784256E-01 4512 0.670604500152E-01 -0.377579600576E-01 4513 0.669842579091E-01 -0.377823058015E-01 4514 0.956876664499 -0.776003580486E-01 4515 0.348019553613E-01 -0.228458236765E-01 4516 0.563674711009E-01 -0.249862693810E-01 4517 0.657453973827E-01 -0.875171111527E-02 4518 0.657293711909E-01 -0.870820644508E-02 4519 0.563648791030E-01 -0.249869363561E-01 4520 0.563339089946E-01 -0.250258793285E-01 4521 0.657875489896E-01 -0.867288369726E-02 4522 -0.670372597461E-01 0.378049765213E-01 4523 -0.670526327768E-01 0.377313747275E-01 4524 -0.669783444120E-01 0.377562697226E-01 4525 0.348176576001E-01 -0.227975208612E-01 4526 0.956875525227 -0.776004085889E-01 4527 0.657544828552E-01 -0.875615845891E-02 4528 0.563524168654E-01 -0.249821243130E-01 4529 0.563670935347E-01 -0.249783951947E-01 4530 0.657512360901E-01 -0.871462114577E-02 4531 0.657795111296E-01 -0.872187288737E-02 4532 0.563059107070E-01 -0.250117323231E-01 4533 -0.670772263529E-01 0.377574940973E-01 4534 0.669677424233E-01 -0.377859021679E-01 4535 -0.670025616142E-01 0.377206565152E-01 4536 0.563669846611E-01 -0.249783872662E-01 4537 0.657296227878E-01 -0.870819740565E-02 4538 0.956968045507 -0.775393422175E-01 4539 0.657033574638E-01 -0.876155734128E-02 4540 0.347124703634E-01 -0.228422478610E-01 4541 0.563868256545E-01 -0.249309496378E-01 4542 0.564288363368E-01 -0.250177565352E-01 4543 0.657284696996E-01 -0.873973568808E-02 4544 -0.669875708580E-01 0.377827814950E-01 4545 0.670703308606E-01 -0.377404153973E-01 4546 0.670126378557E-01 -0.377326542035E-01 4547 0.657509751421E-01 -0.871461292150E-02 4548 0.563649611506E-01 -0.249869516120E-01 4549 0.657191017097E-01 -0.877029883274E-02 4550 0.956972017711 -0.775280861376E-01 4551 0.563869553771E-01 -0.249309510720E-01 4552 0.347196964236E-01 -0.229424998635E-01 4553 0.656931675109E-01 -0.869428048070E-02 4554 0.563976375587E-01 -0.249522866742E-01 4555 0.670679406551E-01 -0.377372669210E-01 4556 -0.669702457957E-01 0.377704751721E-01 4557 0.670390205440E-01 -0.377992619905E-01 4558 0.657542325786E-01 -0.875617173005E-02 4559 0.563675811979E-01 -0.249862855764E-01 4560 0.347251518033E-01 -0.229254677202E-01 4561 0.563921207700E-01 -0.249663821420E-01 4562 0.956968030196 -0.775393397940E-01 4563 0.657188546091E-01 -0.877030120123E-02 4564 0.657226823408E-01 -0.871357128841E-02 4565 0.563911561771E-01 -0.249467315052E-01 4566 0.669700999863E-01 -0.377500240124E-01 4567 -0.670639807643E-01 0.377404414165E-01 4568 -0.670345086024E-01 0.377784445734E-01 4569 0.563523351431E-01 -0.249820914741E-01 4570 0.657456580575E-01 -0.875169416256E-02 4571 0.563919904285E-01 -0.249663895876E-01 4572 0.347043832764E-01 -0.228442670926E-01 4573 0.657031107014E-01 -0.876156515880E-02 4574 0.956972660898 -0.775280639523E-01 4575 0.564225177718E-01 -0.250151357596E-01 4576 0.657189178321E-01 -0.876545711245E-02 4577 -0.669965168178E-01 0.377602939884E-01 4578 -0.669975362405E-01 0.377649347904E-01 4579 0.670122055803E-01 -0.377712820722E-01 4580 0.563058573854E-01 -0.250117478525E-01 4581 0.657884351817E-01 -0.867285082083E-02 4582 0.563914226528E-01 -0.249467449933E-01 4583 0.657195721059E-01 -0.876543141951E-02 4584 0.657289341532E-01 -0.873972503811E-02 4585 0.563977116923E-01 -0.249522867128E-01 4586 0.956809641181 -0.776115532671E-01 4587 0.349094823400E-01 -0.228355764710E-01 4588 0.669933307564E-01 -0.377696212427E-01 4589 0.670010004459E-01 -0.377819090153E-01 4590 -0.670053152251E-01 0.377439099722E-01 4591 0.657786254048E-01 -0.872188923895E-02 4592 0.563339624633E-01 -0.250258676547E-01 4593 0.657222179978E-01 -0.871359363462E-02 4594 0.564224432937E-01 -0.250151067951E-01 4595 0.564285699606E-01 -0.250177439404E-01 4596 0.656925127103E-01 -0.869429638760E-02 4597 0.348705323121E-01 -0.227860622280E-01 4598 0.956811362559 -0.776114800757E-01 4599 1.39975771218 -0.544787533089 4600 -0.101419953647E-04 0.126496293065E-05 4601 0.386212543213E-05 -0.444728573786E-05 4602 0.380056363228E-01 -0.579909177622E-01 4603 -0.379825090625E-01 0.579213516536E-01 4604 -0.380274323331E-01 0.579132633753E-01 4605 -0.379316534579E-01 0.579246387023E-01 4606 0.380316731541E-01 -0.579449198159E-01 4607 0.379609975149E-01 -0.579472381798E-01 4608 -0.379591317029E-01 0.579437362058E-01 4609 0.379609176625E-01 -0.579368650499E-01 4610 -0.101424932396E-04 0.126477548869E-05 4611 1.39976050419 -0.544788582681 4612 0.526537887701E-05 -0.312139971496E-05 4613 0.380096059358E-01 -0.579333092522E-01 4614 -0.380256506747E-01 0.579425370897E-01 4615 0.379426707136E-01 -0.579449674708E-01 4616 0.380271988166E-01 -0.579393078193E-01 4617 -0.379404477233E-01 0.579555970723E-01 4618 -0.380347404412E-01 0.579301855477E-01 4619 -0.379575581952E-01 0.579495231550E-01 4620 0.379629767383E-01 -0.579309971377E-01 4621 0.386138185399E-05 -0.444867998181E-05 4622 0.526541648222E-05 -0.312084090301E-05 4623 1.39975358950 -0.544784264834 4624 0.379388635989E-01 -0.579330693712E-01 4625 -0.379524787612E-01 0.579483002905E-01 4626 -0.380029492021E-01 0.579768542084E-01 4627 0.379984262374E-01 -0.579622843385E-01 4628 0.379681699250E-01 -0.579127211223E-01 4629 -0.379809574521E-01 0.579213070607E-01 4630 0.379723794180E-01 -0.579127085024E-01 4631 -0.379671385747E-01 0.579380474942E-01 4632 0.379824694076E-01 -0.579213556301E-01 4633 0.380256349922E-01 -0.579425337674E-01 4634 0.379526401059E-01 -0.579483378527E-01 4635 0.909287094347 -0.716812147578E-01 4636 0.176819636620E-01 -0.579188344370E-02 4637 0.282068358986E-01 -0.169315635673E-01 4638 0.247219194207E-01 -0.838456341950E-02 4639 0.247027525410E-01 -0.834630092859E-02 4640 0.282048962302E-01 -0.169304515981E-01 4641 0.281726235074E-01 -0.169733736826E-01 4642 0.247657228903E-01 -0.830679636377E-02 4643 -0.380056750803E-01 0.579909140582E-01 4644 -0.380096232705E-01 0.579333089536E-01 4645 -0.379387038174E-01 0.579330298779E-01 4646 0.177015717040E-01 -0.573607755782E-02 4647 0.909285908311 -0.716812529660E-01 4648 0.247311795689E-01 -0.838939967686E-02 4649 0.281925776940E-01 -0.169212331292E-01 4650 0.282082246812E-01 -0.169222221898E-01 4651 0.247263357874E-01 -0.835780999133E-02 4652 0.247592539525E-01 -0.835544382382E-02 4653 0.281416527181E-01 -0.169594917729E-01 4654 -0.380315501002E-01 0.579449082379E-01 4655 0.379405041480E-01 -0.579556083955E-01 4656 -0.379682399555E-01 0.579127305790E-01 4657 0.282081156022E-01 -0.169222172792E-01 4658 0.247030122145E-01 -0.834629031027E-02 4659 0.909377462375 -0.716130169230E-01 4660 0.246759121386E-01 -0.840241058485E-02 4661 0.175893583170E-01 -0.579500455311E-02 4662 0.282271727368E-01 -0.168773515699E-01 4663 0.282704637570E-01 -0.169656196659E-01 4664 0.247044295759E-01 -0.837103916038E-02 4665 -0.379611076897E-01 0.579472520874E-01 4666 0.380347246580E-01 -0.579301754059E-01 4667 0.379808066997E-01 -0.579212715572E-01 4668 0.247260712348E-01 -0.835780076753E-02 4669 0.282049712487E-01 -0.169304635702E-01 4670 0.246972142846E-01 -0.840726818828E-02 4671 0.909384625028 -0.716017312391E-01 4672 0.282273110134E-01 -0.168773483652E-01 4673 0.176029264832E-01 -0.589876694539E-02 4674 0.246677170722E-01 -0.832836780491E-02 4675 0.282351260089E-01 -0.168991708953E-01 4676 0.380275552217E-01 -0.579132745418E-01 4677 -0.379426141842E-01 0.579449602467E-01 4678 0.380028796743E-01 -0.579768454128E-01 4679 0.247309209779E-01 -0.838941512928E-02 4680 0.282069462167E-01 -0.169315777876E-01 4681 0.176083801410E-01 -0.588162412117E-02 4682 0.282329725076E-01 -0.169068118125E-01 4683 0.909377447171 -0.716130157118E-01 4684 0.246969615751E-01 -0.840726883722E-02 4685 0.246961341752E-01 -0.834621744333E-02 4686 0.282264697937E-01 -0.168934628230E-01 4687 0.379315451052E-01 -0.579246221046E-01 4688 -0.380272159515E-01 0.579393124074E-01 4689 -0.379985764398E-01 0.579623182335E-01 4690 0.281925028869E-01 -0.169212032039E-01 4691 0.247221836046E-01 -0.838454681803E-02 4692 0.282328337326E-01 -0.169068237869E-01 4693 0.175821185181E-01 -0.579235176097E-02 4694 0.246756604741E-01 -0.840241639753E-02 4695 0.909385292524 -0.716017146972E-01 4696 0.282653623161E-01 -0.169624587147E-01 4697 0.246945687447E-01 -0.839828322107E-02 4698 -0.379608028475E-01 0.579368321984E-01 4699 -0.379629197382E-01 0.579309751910E-01 4700 0.379671504376E-01 -0.579380324223E-01 4701 0.281415945471E-01 -0.169595079291E-01 4702 0.247666337306E-01 -0.830676384555E-02 4703 0.282267493764E-01 -0.168934662130E-01 4704 0.246952443089E-01 -0.839825575888E-02 4705 0.247049107506E-01 -0.837102727567E-02 4706 0.282352014726E-01 -0.168991640296E-01 4707 0.909211555871 -0.716882748935E-01 4708 0.177976063612E-01 -0.578636924836E-02 4709 0.379592471055E-01 -0.579437661179E-01 4710 0.379576161916E-01 -0.579495481564E-01 4711 -0.379723669350E-01 0.579127250658E-01 4712 0.247583435586E-01 -0.835546012075E-02 4713 0.281726812030E-01 -0.169733623336E-01 4714 0.246956539178E-01 -0.834624194429E-02 4715 0.282652860554E-01 -0.169624352790E-01 4716 0.282701840757E-01 -0.169656175292E-01 4717 0.246670411336E-01 -0.832838556280E-02 4718 0.177553798390E-01 -0.573352137905E-02 4719 0.909213342001 -0.716882211644E-01 4720 1.64816006982 -0.439209318274 4721 -0.947929174895E-05 -0.175243024958E-05 4722 0.702476304942E-05 -0.185568064011E-05 4723 0.603253543364E-01 -0.461554352996E-01 4724 -0.602785494910E-01 0.461068813975E-01 4725 -0.603149675380E-01 0.460833885835E-01 4726 -0.602363803441E-01 0.461309110797E-01 4727 0.603335208794E-01 -0.460999642013E-01 4728 0.602636415440E-01 -0.461409234938E-01 4729 -0.602662921459E-01 0.461369381681E-01 4730 0.602688127631E-01 -0.461288391990E-01 4731 -0.947964198931E-05 -0.175226180090E-05 4732 1.64816433676 -0.439207746294 4733 0.913532333220E-05 0.404077547973E-05 4734 0.603134740482E-01 -0.460840223047E-01 4735 -0.603273011319E-01 0.460932067686E-01 4736 0.602499720260E-01 -0.461510096462E-01 4737 0.603207647236E-01 -0.460822798759E-01 4738 -0.602495799656E-01 0.461613517391E-01 4739 -0.603314202748E-01 0.460766625262E-01 4740 -0.602730912856E-01 0.461547680397E-01 4741 0.602626708233E-01 -0.461393844738E-01 4742 0.702441186204E-05 -0.185568489058E-05 4743 0.913576990429E-05 0.404089853015E-05 4744 1.64815485542 -0.439207749925 4745 0.602509584689E-01 -0.461329475059E-01 4746 -0.602621447551E-01 0.461440962709E-01 4747 -0.603236163118E-01 0.461447102333E-01 4748 0.603128246059E-01 -0.461299082913E-01 4749 0.602550938025E-01 -0.460968604794E-01 4750 -0.602716658481E-01 0.460991447291E-01 4751 0.602641538661E-01 -0.461038537193E-01 4752 -0.602795967313E-01 0.461295195729E-01 4753 0.602785184726E-01 -0.461068913548E-01 4754 0.603272747319E-01 -0.460932090891E-01 4755 0.602623268849E-01 -0.461441479695E-01 4756 0.907315595836 -0.821869810261E-01 4757 0.694757208285E-02 -0.237499656914E-01 4758 0.249511685853E-01 -0.308334067513E-01 4759 0.179195231704E-01 -0.209307386543E-01 4760 0.178947010986E-01 -0.209044551700E-01 4761 0.249428498349E-01 -0.308386910509E-01 4762 0.249269528040E-01 -0.308511731036E-01 4763 0.179363765208E-01 -0.208692561944E-01 4764 -0.603253852453E-01 0.461554272154E-01 4765 -0.603135023088E-01 0.460840152868E-01 4766 -0.602507764277E-01 0.461328917976E-01 4767 0.695391523069E-02 -0.236898351488E-01 4768 0.907314362995 -0.821870243878E-01 4769 0.179145568745E-01 -0.209379056585E-01 4770 0.249344303242E-01 -0.308351289003E-01 4771 0.249466821581E-01 -0.308293481189E-01 4772 0.179130378708E-01 -0.209074948595E-01 4773 0.179289940262E-01 -0.209276425580E-01 4774 0.249049552603E-01 -0.308571593791E-01 4775 -0.603333789945E-01 0.460999680386E-01 4776 0.602496534686E-01 -0.461613510677E-01 4777 -0.602551739420E-01 0.460968563094E-01 4778 0.249465652720E-01 -0.308293371181E-01 4779 0.178949605775E-01 -0.209044461931E-01 4780 0.907364643419 -0.821421734877E-01 4781 0.178849286526E-01 -0.209428128762E-01 4782 0.688986135746E-02 -0.237178741098E-01 4783 0.249471156889E-01 -0.307968013817E-01 4784 0.250028257146E-01 -0.308548042389E-01 4785 0.178807264158E-01 -0.209293857612E-01 4786 -0.602637598458E-01 0.461409411290E-01 4787 0.603314042068E-01 -0.460766285209E-01 4788 0.602714941174E-01 -0.460991160982E-01 4789 0.179127636213E-01 -0.209074829383E-01 4790 0.249429323622E-01 -0.308387132108E-01 4791 0.178959026833E-01 -0.209398073340E-01 4792 0.907371103385 -0.821342033574E-01 4793 0.249472580033E-01 -0.307968039602E-01 4794 0.689321239032E-02 -0.238208435977E-01 4795 0.178555751988E-01 -0.208905894102E-01 4796 0.249856201263E-01 -0.308056795334E-01 4797 0.603151098316E-01 -0.460833843916E-01 4798 -0.602498991222E-01 0.461510144254E-01 4799 0.603235371167E-01 -0.461447144265E-01 4800 0.179142985453E-01 -0.209379199468E-01 4801 0.249512865780E-01 -0.308334279594E-01 4802 0.689420075109E-02 -0.237929285442E-01 4803 0.249605256056E-01 -0.308208964969E-01 4804 0.907364627284 -0.821421727012E-01 4805 0.178956410363E-01 -0.209398092850E-01 4806 0.178807021319E-01 -0.209077016442E-01 4807 0.249782970910E-01 -0.307985983539E-01 4808 0.602362630507E-01 -0.461308915299E-01 4809 -0.603207825130E-01 0.460823079965E-01 4810 -0.603129967071E-01 0.461299346261E-01 4811 0.249343473808E-01 -0.308350878985E-01 4812 0.179197966979E-01 -0.209307236287E-01 4813 0.249603827411E-01 -0.308209029332E-01 4814 0.688863113100E-02 -0.237144106316E-01 4815 0.178846672354E-01 -0.209428194313E-01 4816 0.907371796461 -0.821341844318E-01 4817 0.249999823363E-01 -0.308541200037E-01 4818 0.178746310059E-01 -0.209478633106E-01 4819 -0.602686668538E-01 0.461288055484E-01 4820 -0.602626058759E-01 0.461393529935E-01 4821 0.602796112163E-01 -0.461294846730E-01 4822 0.249048999741E-01 -0.308571769947E-01 4823 0.179373113096E-01 -0.208692262752E-01 4824 0.249785849669E-01 -0.307986148443E-01 4825 0.178753219779E-01 -0.209478381045E-01 4826 0.178812185029E-01 -0.209293750498E-01 4827 0.249857008707E-01 -0.308056810067E-01 4828 0.907233947878 -0.821914269202E-01 4829 0.704592267173E-02 -0.237194182180E-01 4830 0.602664379694E-01 -0.461369712809E-01 4831 0.602731583730E-01 -0.461548014395E-01 4832 -0.602641389954E-01 0.461038889293E-01 4833 0.179280596687E-01 -0.209276557844E-01 4834 0.249270084713E-01 -0.308511616490E-01 4835 0.178802108590E-01 -0.209077242506E-01 4836 0.249999016143E-01 -0.308540872156E-01 4837 0.250025381603E-01 -0.308547894164E-01 4838 0.178548837280E-01 -0.208906053357E-01 4839 0.701822672712E-02 -0.236905111512E-01 4840 0.907235805800 -0.821913664074E-01 4841 1.43344954459 -0.223880779549 4842 -0.804759320684E-05 -0.610883590494E-07 4843 0.492079300260E-05 -0.104270953177E-05 4844 0.326897520137E-01 -0.270492059822E-01 4845 -0.326700213588E-01 0.270066257713E-01 4846 -0.326935222105E-01 0.269992992717E-01 4847 -0.326228598425E-01 0.270276143689E-01 4848 0.326983317022E-01 -0.270180315930E-01 4849 0.326359188366E-01 -0.270341994762E-01 4850 -0.326466122226E-01 0.270312582591E-01 4851 0.326472960329E-01 -0.270238806193E-01 4852 -0.804771974217E-05 -0.610703495267E-07 4853 1.43345206383 -0.223880415888 4854 0.443705372750E-05 0.112277738322E-05 4855 0.326842141775E-01 -0.270066426170E-01 4856 -0.326932978291E-01 0.270093744678E-01 4857 0.326338076130E-01 -0.270377590961E-01 4858 0.326944706321E-01 -0.270076650904E-01 4859 -0.326327095734E-01 0.270446897625E-01 4860 -0.327016690879E-01 0.269972062215E-01 4861 -0.326495363013E-01 0.270415483162E-01 4862 0.326452007651E-01 -0.270278168376E-01 4863 0.492082186336E-05 -0.104284997301E-05 4864 0.443717277212E-05 0.112301461117E-05 4865 1.43344516057 -0.223879714795 4866 0.326330641661E-01 -0.270295948717E-01 4867 -0.326394805993E-01 0.270371243935E-01 4868 -0.326800306807E-01 0.270383564516E-01 4869 0.326761536013E-01 -0.270309356488E-01 4870 0.326464086951E-01 -0.270025222946E-01 4871 -0.326551176829E-01 0.270054622130E-01 4872 0.326488959304E-01 -0.270122037018E-01 4873 -0.326544310855E-01 0.270311477519E-01 4874 0.326699882153E-01 -0.270066328795E-01 4875 0.326932735486E-01 -0.270093766840E-01 4876 0.326396484932E-01 -0.270371480142E-01 4877 0.873576432951 -0.835517322651E-01 4878 -0.338107238613E-02 -0.215776517186E-01 4879 0.152349551509E-01 -0.282141424491E-01 4880 -0.111277576556E-01 -0.143951789500E-02 4881 -0.111518153755E-01 -0.141291807783E-02 4882 0.152291887549E-01 -0.282177045052E-01 4883 0.152228370489E-01 -0.282442841648E-01 4884 -0.111119200709E-01 -0.135392913399E-02 4885 -0.326897852658E-01 0.270491996632E-01 4886 -0.326842386911E-01 0.270066351845E-01 4887 -0.326328964347E-01 0.270295699362E-01 4888 -0.336233283434E-02 -0.215101158715E-01 4889 0.873575155651 -0.835517951210E-01 4890 -0.111239252645E-01 -0.144314340599E-02 4891 0.152185891626E-01 -0.282119570796E-01 4892 0.152338593308E-01 -0.282131990589E-01 4893 -0.111195441393E-01 -0.141789731054E-02 4894 -0.111214254045E-01 -0.142367054082E-02 4895 0.151909753175E-01 -0.282625925548E-01 4896 -0.326981917519E-01 0.270180290858E-01 4897 0.326327805567E-01 -0.270446894576E-01 4898 -0.326464874832E-01 0.270025181593E-01 4899 0.152337393526E-01 -0.282131896965E-01 4900 -0.111515503084E-01 -0.141290380577E-02 4901 0.873605703092 -0.834834307804E-01 4902 -0.111547187660E-01 -0.146806753540E-02 4903 -0.342808050865E-02 -0.215728814793E-01 4904 0.152274675905E-01 -0.281645501234E-01 4905 0.152967332650E-01 -0.282404937012E-01 4906 -0.111619270849E-01 -0.143358869754E-02 4907 -0.326360324252E-01 0.270342030185E-01 4908 0.327016595706E-01 -0.269971914847E-01 4909 0.326549525115E-01 -0.270054463627E-01 4910 -0.111198223004E-01 -0.141789151456E-02 4911 0.152292699644E-01 -0.282177248178E-01 4912 -0.111361260227E-01 -0.146253066360E-02 4913 0.873614936279 -0.834716975644E-01 4914 0.152276200345E-01 -0.281645529904E-01 4915 -0.340995472552E-02 -0.216818920551E-01 4916 -0.111926382539E-01 -0.139895406152E-02 4917 0.152666236110E-01 -0.281902475855E-01 4918 0.326936623730E-01 -0.269993003114E-01 4919 -0.326337372631E-01 0.270377623069E-01 4920 0.326799526121E-01 -0.270383614202E-01 4921 -0.111241894531E-01 -0.144316372984E-02 4922 0.152350766230E-01 -0.282141626164E-01 4923 -0.341232092599E-02 -0.216486529051E-01 4924 0.152324120279E-01 -0.281865771487E-01 4925 0.873605688332 -0.834834303723E-01 4926 -0.111363920892E-01 -0.146253853787E-02 4927 -0.111692598235E-01 -0.141361527341E-02 4928 0.152584170808E-01 -0.281853258766E-01 4929 0.326227466629E-01 -0.270276088652E-01 4930 -0.326944810922E-01 0.270076735520E-01 4931 -0.326763188249E-01 0.270309506476E-01 4932 0.152185075998E-01 -0.282119181780E-01 4933 -0.111274805118E-01 -0.143949631482E-02 4934 0.152322593752E-01 -0.281865832131E-01 4935 -0.342676172500E-02 -0.215603788202E-01 4936 -0.111549848939E-01 -0.146808014344E-02 4937 0.873615651946 -0.834716684536E-01 4938 0.152931148312E-01 -0.282349955196E-01 4939 -0.111680885735E-01 -0.145402900613E-02 4940 -0.326471627426E-01 0.270238635676E-01 4941 -0.326451422229E-01 0.270278026313E-01 4942 0.326544505268E-01 -0.270311318361E-01 4943 0.151909124795E-01 -0.282626090183E-01 4944 -0.111109701092E-01 -0.135387948608E-02 4945 0.152587210693E-01 -0.281853436362E-01 4946 -0.111673840009E-01 -0.145399006277E-02 4947 -0.111614248745E-01 -0.143357038367E-02 4948 0.152667056828E-01 -0.281902474708E-01 4949 0.873485963729 -0.835642898561E-01 4950 -0.326816879292E-02 -0.215364519755E-01 4951 0.326467459173E-01 -0.270312747148E-01 4952 0.326495957083E-01 -0.270415641992E-01 4953 -0.326488762270E-01 0.270122203905E-01 4954 -0.111223751070E-01 -0.142370443947E-02 4955 0.152229000252E-01 -0.282442747057E-01 4956 -0.111697612251E-01 -0.141364645530E-02 4957 0.152930315960E-01 -0.282349638548E-01 4958 0.152964297339E-01 -0.282404783028E-01 4959 -0.111933431266E-01 -0.139898405388E-02 4960 -0.331345857347E-02 -0.215206695650E-01 4961 0.873487885432 -0.835641995702E-01 4962 1.36137677157 -0.432767653123 4963 -0.922237187452E-05 0.503138089366E-06 4964 0.368808155080E-05 -0.269002145778E-05 4965 0.236325954082E-01 -0.526588064834E-01 4966 -0.236051547742E-01 0.526195418301E-01 4967 -0.236407125802E-01 0.525936888453E-01 4968 -0.235599070291E-01 0.526166315064E-01 4969 0.236350191320E-01 -0.526087676580E-01 4970 0.235963443884E-01 -0.526295270302E-01 4971 -0.235953992017E-01 0.526268965986E-01 4972 0.235934552162E-01 -0.526213092037E-01 4973 -0.922243500307E-05 0.503072956052E-06 4974 1.36137947323 -0.432768384928 4975 0.467323874071E-05 -0.119074453013E-05 4976 0.236201264089E-01 -0.526109997404E-01 4977 -0.236478956825E-01 0.526187251852E-01 4978 0.235806153727E-01 -0.526408094301E-01 4979 0.236338071766E-01 -0.526118824442E-01 4980 -0.235787480187E-01 0.526412928384E-01 4981 -0.236474373146E-01 0.526072103365E-01 4982 -0.235877112738E-01 0.526270211439E-01 4983 0.235956864648E-01 -0.526181259959E-01 4984 0.368850205622E-05 -0.268933335316E-05 4985 0.467336819425E-05 -0.119074121522E-05 4986 1.36137325709 -0.432765806471 4987 0.235729388278E-01 -0.526219335322E-01 4988 -0.235939847763E-01 0.526330326703E-01 4989 -0.236345313306E-01 0.526474405653E-01 4990 0.236275784347E-01 -0.526388987377E-01 4991 0.235851489968E-01 -0.526017285097E-01 4992 -0.235994875629E-01 0.526069042847E-01 4993 0.236019498984E-01 -0.525964788245E-01 4994 -0.235956716423E-01 0.526146056730E-01 4995 0.236051171544E-01 -0.526195434384E-01 4996 0.236478724132E-01 -0.526187257951E-01 4997 0.235941544104E-01 -0.526330748997E-01 4998 0.845269197673 -0.911703405720E-01 4999 -0.160759939540E-01 -0.168848865051E-01 5000 0.352287371795E-02 -0.207195967608E-01 5001 -0.334692453577E-01 -0.117034844217E-01 5002 -0.335024053999E-01 -0.116782594479E-01 5003 0.351927265786E-02 -0.207236607189E-01 5004 0.350507020706E-02 -0.207484611946E-01 5005 -0.334580433710E-01 -0.116269505189E-01 5006 -0.236326321705E-01 0.526588062515E-01 5007 -0.236201497080E-01 0.526109941261E-01 5008 -0.235727704725E-01 0.526218893568E-01 5009 -0.160518842186E-01 -0.168202069059E-01 5010 0.845267864193 -0.911703954526E-01 5011 -0.334698585722E-01 -0.117100064282E-01 5012 0.350943605384E-02 -0.207170469875E-01 5013 0.352856287848E-02 -0.207220942186E-01 5014 -0.334707618610E-01 -0.116860738525E-01 5015 -0.334612501997E-01 -0.116968141102E-01 5016 0.347940692191E-02 -0.207643825652E-01 5017 -0.236348774814E-01 0.526087708563E-01 5018 0.235788138861E-01 -0.526412980441E-01 5019 -0.235852259010E-01 0.526017342417E-01 5020 0.352844262899E-02 -0.207220842529E-01 5021 -0.335021339492E-01 -0.116782482679E-01 5022 0.845304408405 -0.911094235290E-01 5023 -0.335126797693E-01 -0.117307032612E-01 5024 -0.161318351490E-01 -0.168854355348E-01 5025 0.352006057262E-02 -0.206789095622E-01 5026 0.358980803394E-02 -0.207530708778E-01 5027 -0.335096715537E-01 -0.117014893598E-01 5028 -0.235964578894E-01 0.526295473934E-01 5029 0.236474277909E-01 -0.526071819078E-01 5030 0.235993201841E-01 -0.526068751790E-01 5031 -0.334710462791E-01 -0.116860631456E-01 5032 0.351934992609E-02 -0.207236861213E-01 5033 -0.334862268148E-01 -0.117275132587E-01 5034 0.845317818965 -0.910971098564E-01 5035 0.352021986143E-02 -0.206789095045E-01 5036 -0.161098187730E-01 -0.169934627099E-01 5037 -0.335405244596E-01 -0.116628874511E-01 5038 0.355630364472E-02 -0.206968091437E-01 5039 0.236408531632E-01 -0.525936848129E-01 5040 -0.235805492419E-01 0.526408079775E-01 5041 0.236344559632E-01 -0.526474363849E-01 5042 -0.334701286291E-01 -0.117100242659E-01 5043 0.352299605519E-02 -0.207196184294E-01 5044 -0.161207678497E-01 -0.169597687959E-01 5045 0.353042198818E-02 -0.206999463406E-01 5046 0.845304392568 -0.911094187081E-01 5047 -0.334864997670E-01 -0.117275172134E-01 5048 -0.335197817982E-01 -0.116783396511E-01 5049 0.354526620746E-02 -0.206878397456E-01 5050 0.235597930609E-01 -0.526166103462E-01 5051 -0.236338176434E-01 0.526119051770E-01 5052 -0.236277461303E-01 0.526389245885E-01 5053 0.350935901036E-02 -0.207170025285E-01 5054 -0.334689616780E-01 -0.117034669748E-01 5055 0.353026173832E-02 -0.206999552417E-01 5056 -0.161364811809E-01 -0.168635859794E-01 5057 -0.335129527911E-01 -0.117307126822E-01 5058 0.845318565793 -0.910970881158E-01 5059 0.358285335503E-02 -0.207465141088E-01 5060 -0.335170348325E-01 -0.117225892381E-01 5061 -0.235933219035E-01 0.526212754777E-01 5062 -0.235956312752E-01 0.526180942212E-01 5063 0.235956939007E-01 -0.526145839859E-01 5064 0.347933825762E-02 -0.207644066734E-01 5065 -0.334570648514E-01 -0.116269152577E-01 5066 0.354557945467E-02 -0.206878522632E-01 5067 -0.335163076242E-01 -0.117225640500E-01 5068 -0.335091503202E-01 -0.117014793963E-01 5069 0.355638509048E-02 -0.206968099583E-01 5070 0.845173144998 -0.911784953191E-01 5071 -0.159674786624E-01 -0.168623266288E-01 5072 0.235955332500E-01 -0.526269298387E-01 5073 0.235877669226E-01 -0.526270563549E-01 5074 -0.236019263578E-01 0.525965006566E-01 5075 -0.334622269224E-01 -0.116968331795E-01 5076 0.350513948479E-02 -0.207484450464E-01 5077 -0.335203024584E-01 -0.116783626771E-01 5078 0.358277125628E-02 -0.207464808476E-01 5079 0.358949566859E-02 -0.207530603407E-01 5080 -0.335412509497E-01 -0.116629032659E-01 5081 -0.160032968409E-01 -0.168395089263E-01 5082 0.845175153112 -0.911784255412E-01 5083 1.38344711335 -0.237643706988 5084 -0.819668407567E-05 0.304291229402E-07 5085 0.514682962547E-05 -0.157421717895E-05 5086 0.278423573688E-01 -0.349114135067E-01 5087 -0.278268723292E-01 0.348643564740E-01 5088 -0.278460580653E-01 0.348485357338E-01 5089 -0.277612636772E-01 0.348901820932E-01 5090 0.278435252247E-01 -0.348801127060E-01 5091 0.277793997779E-01 -0.348802026130E-01 5092 -0.277901289908E-01 0.348857874486E-01 5093 0.277894622814E-01 -0.348756647910E-01 5094 -0.819673850116E-05 0.303274723569E-07 5095 1.38345035790 -0.237643790169 5096 0.571639014003E-05 0.821617227808E-07 5097 0.278438122177E-01 -0.348726087674E-01 5098 -0.278590793703E-01 0.348604234384E-01 5099 0.277796380951E-01 -0.348921148495E-01 5100 0.278537145812E-01 -0.348683569471E-01 5101 -0.277729581938E-01 0.348992861386E-01 5102 -0.278647883180E-01 0.348527145298E-01 5103 -0.277799770494E-01 0.349007449494E-01 5104 0.277814140231E-01 -0.348757638092E-01 5105 0.514698461503E-05 -0.157415108906E-05 5106 0.571650057608E-05 0.823150670294E-07 5107 1.38344286489 -0.237642276315 5108 0.277713277306E-01 -0.348860219457E-01 5109 -0.277817876680E-01 0.348822155153E-01 5110 -0.278349560615E-01 0.348995505631E-01 5111 0.278333955245E-01 -0.348930131808E-01 5112 0.277958485743E-01 -0.348579656043E-01 5113 -0.278062319659E-01 0.348608430874E-01 5114 0.277898209362E-01 -0.348541857905E-01 5115 -0.277898263114E-01 0.348871007328E-01 5116 0.278268279018E-01 -0.348643667139E-01 5117 0.278590422312E-01 -0.348604232581E-01 5118 0.277819793257E-01 -0.348822357907E-01 5119 0.796608240496 -0.108681049406 5120 -0.434333974713E-01 -0.356011823452E-01 5121 -0.186914974848E-01 -0.357936382863E-01 5122 -0.538391468898E-01 -0.278965208768E-01 5123 -0.538652810099E-01 -0.278820016861E-01 5124 -0.186985858844E-01 -0.358022891932E-01 5125 -0.187390093697E-01 -0.358103824856E-01 5126 -0.538080024698E-01 -0.278477054521E-01 5127 -0.278424013806E-01 0.349114051850E-01 5128 -0.278438493341E-01 0.348726041398E-01 5129 -0.277711371956E-01 0.348859995597E-01 5130 -0.434195453047E-01 -0.355309301762E-01 5131 0.796606824506 -0.108681120139 5132 -0.538462155446E-01 -0.279222705860E-01 5133 -0.187054913116E-01 -0.357891406347E-01 5134 -0.186860526073E-01 -0.357930673072E-01 5135 -0.538359197664E-01 -0.278984432077E-01 5136 -0.538044618115E-01 -0.279211688743E-01 5137 -0.187494944201E-01 -0.358159540376E-01 5138 -0.278433900093E-01 0.348801039103E-01 5139 0.277730236920E-01 -0.348992919450E-01 5140 -0.277959240896E-01 0.348579671485E-01 5141 -0.186861810528E-01 -0.357930564977E-01 5142 -0.538650040921E-01 -0.278819965161E-01 5143 0.796665810828 -0.108654541831 5144 -0.538931212566E-01 -0.279254199938E-01 5145 -0.435134409686E-01 -0.355571609005E-01 5146 -0.186744416938E-01 -0.357704821013E-01 5147 -0.186311248895E-01 -0.358320665793E-01 5148 -0.538875755476E-01 -0.279176600016E-01 5149 -0.277795255515E-01 0.348802063187E-01 5150 0.278647619291E-01 -0.348527040797E-01 5151 0.278060686131E-01 -0.348608238414E-01 5152 -0.538362141832E-01 -0.278984297754E-01 5153 -0.186985063333E-01 -0.358023113619E-01 5154 -0.538777648620E-01 -0.279158437935E-01 5155 0.796685988537 -0.108642757215 5156 -0.186742677988E-01 -0.357704829457E-01 5157 -0.435016293266E-01 -0.356798142284E-01 5158 -0.539106622502E-01 -0.278676574185E-01 5159 -0.186450978408E-01 -0.357612546433E-01 5160 0.278461937891E-01 -0.348485445393E-01 5161 -0.277795731799E-01 0.348921124002E-01 5162 0.278348817311E-01 -0.348995494490E-01 5163 -0.538464908643E-01 -0.279222833949E-01 5164 -0.186913670037E-01 -0.357936611698E-01 5165 -0.435120485280E-01 -0.356473116782E-01 5166 -0.186689083431E-01 -0.357842691473E-01 5167 0.796665798645 -0.108654543326 5168 -0.538780464035E-01 -0.279158457000E-01 5169 -0.538908884966E-01 -0.278907304209E-01 5170 -0.186587437671E-01 -0.357515330139E-01 5171 0.277611377064E-01 -0.348901778652E-01 5172 -0.278537423616E-01 0.348683619065E-01 5173 -0.278335593556E-01 0.348930310444E-01 5174 -0.187055713637E-01 -0.357890976475E-01 5175 -0.538388539330E-01 -0.278965048029E-01 5176 -0.186690824594E-01 -0.357842777476E-01 5177 -0.435262477283E-01 -0.355323422785E-01 5178 -0.538934032604E-01 -0.279254271243E-01 5179 0.796686777231 -0.108642724865 5180 -0.186335109713E-01 -0.358233608478E-01 5181 -0.538983569189E-01 -0.279386184331E-01 5182 -0.277893198555E-01 0.348756459332E-01 5183 -0.277813551192E-01 0.348757505826E-01 5184 0.277898563694E-01 -0.348870840483E-01 5185 -0.187495606077E-01 -0.358159754559E-01 5186 -0.538069853417E-01 -0.278476709455E-01 5187 -0.186584164302E-01 -0.357515474101E-01 5188 -0.538975975056E-01 -0.279385869011E-01 5189 -0.538870311738E-01 -0.279176453320E-01 5190 -0.186450103281E-01 -0.357612558084E-01 5191 0.796485145889 -0.108695581702 5192 -0.433162046942E-01 -0.355841257469E-01 5193 0.277902723486E-01 -0.348858056336E-01 5194 0.277800359675E-01 -0.349007597398E-01 5195 -0.277897909964E-01 0.348542036908E-01 5196 -0.538054777802E-01 -0.279211868088E-01 5197 -0.187389417693E-01 -0.358103703661E-01 5198 -0.538914319397E-01 -0.278907592276E-01 5199 -0.186335991255E-01 -0.358233261250E-01 5200 -0.186314513259E-01 -0.358320549392E-01 5201 -0.539114199555E-01 -0.278676795534E-01 5202 -0.433338722280E-01 -0.355372691433E-01 5203 0.796487271655 -0.108695477491 5204 1.28947732078 -0.315378154759 5205 -0.867665386318E-05 0.230737535731E-06 5206 0.587885940042E-05 -0.175558676707E-05 5207 0.196824516835E-01 -0.410637973937E-01 5208 -0.196374861632E-01 0.410048649672E-01 5209 -0.196574411404E-01 0.409701862046E-01 5210 -0.195733217746E-01 0.410614190681E-01 5211 0.196719783764E-01 -0.410197473427E-01 5212 0.195820049646E-01 -0.410470487532E-01 5213 -0.196061364049E-01 0.410497953632E-01 5214 0.195928845788E-01 -0.410459498221E-01 5215 -0.867666941162E-05 0.230814414134E-06 5216 1.28948124781 -0.315378181558 5217 0.776661975637E-05 0.231109470964E-06 5218 0.196689929887E-01 -0.410048986839E-01 5219 -0.196759681305E-01 0.409823184073E-01 5220 0.195857498691E-01 -0.410638299105E-01 5221 0.196864823153E-01 -0.409933340938E-01 5222 -0.195878452114E-01 0.410768128412E-01 5223 -0.196897224487E-01 0.409711337948E-01 5224 -0.195950694792E-01 0.410799662609E-01 5225 0.195791567497E-01 -0.410430327897E-01 5226 0.587890925051E-05 -0.175583461207E-05 5227 0.776680569287E-05 0.231336529285E-06 5228 1.28947227581 -0.315376452189 5229 0.195813510588E-01 -0.410618089900E-01 5230 -0.195856860035E-01 0.410539116448E-01 5231 -0.196652502898E-01 0.410460025843E-01 5232 0.196614187514E-01 -0.410363768425E-01 5233 0.195973527121E-01 -0.410088692850E-01 5234 -0.196116011571E-01 0.410105366304E-01 5235 0.195886464549E-01 -0.410110709803E-01 5236 -0.196064830297E-01 0.410530337307E-01 5237 0.196374504549E-01 -0.410048757931E-01 5238 0.196759385878E-01 -0.409823303488E-01 5239 0.195858546862E-01 -0.410539264749E-01 5240 0.779082457684 -0.191054095898 5241 -0.453163946108E-01 -0.732607210850E-01 5242 -0.319724475027E-01 -0.770951491683E-01 5243 -0.699318160879E-01 -0.603408737589E-01 5244 -0.699648007963E-01 -0.603246355939E-01 5245 -0.319742215699E-01 -0.771033260280E-01 5246 -0.319886079158E-01 -0.771503728680E-01 5247 -0.699106515468E-01 -0.602295846037E-01 5248 -0.196824885507E-01 0.410637881151E-01 5249 -0.196690205754E-01 0.410048825372E-01 5250 -0.195811835460E-01 0.410617912987E-01 5251 -0.452910787323E-01 -0.731691595215E-01 5252 0.779080998252 -0.191054217256 5253 -0.699193452196E-01 -0.603578033814E-01 5254 -0.319928456768E-01 -0.770892878008E-01 5255 -0.319627009691E-01 -0.770975450674E-01 5256 -0.699076081420E-01 -0.603344480196E-01 5257 -0.699090467161E-01 -0.603243476725E-01 5258 -0.320270266564E-01 -0.771819904801E-01 5259 -0.196718235731E-01 0.410197353700E-01 5260 0.195879198159E-01 -0.410768223275E-01 5261 -0.195974383947E-01 0.410088813661E-01 5262 -0.319628274290E-01 -0.770975304161E-01 5263 -0.699645161161E-01 -0.603246380776E-01 5264 0.779097453079 -0.190957572305 5265 -0.699712579265E-01 -0.604112592796E-01 5266 -0.453741907289E-01 -0.732868666673E-01 5267 -0.319701167248E-01 -0.770298947452E-01 5268 -0.318760648334E-01 -0.771325219173E-01 5269 -0.699705142314E-01 -0.603527576763E-01 5270 -0.195821231820E-01 0.410470546525E-01 5271 0.196897159479E-01 -0.409711285457E-01 5272 0.196114227577E-01 -0.410105108138E-01 5273 -0.699079098547E-01 -0.603344321515E-01 5274 -0.319741476865E-01 -0.771033642360E-01 5275 -0.699413716540E-01 -0.603974089644E-01 5276 0.779121223293 -0.190931896984 5277 -0.319699413723E-01 -0.770298889598E-01 5278 -0.453229469858E-01 -0.734260601047E-01 5279 -0.700178611821E-01 -0.603112874369E-01 5280 -0.319350173304E-01 -0.770647675734E-01 5281 0.196575969326E-01 -0.409701983341E-01 5282 -0.195856749219E-01 0.410638246605E-01 5283 0.196651661337E-01 -0.410459902018E-01 5284 -0.699196267650E-01 -0.603578084719E-01 5285 -0.319723175085E-01 -0.770951768887E-01 5286 -0.453452630648E-01 -0.733813261855E-01 5287 -0.319704015786E-01 -0.770477926954E-01 5288 0.779097441666 -0.190957561101 5289 -0.699416653316E-01 -0.603974114572E-01 5290 -0.699924480758E-01 -0.603331205952E-01 5291 -0.319532004371E-01 -0.770594022577E-01 5292 0.195732051653E-01 -0.410614138178E-01 5293 -0.196864907845E-01 0.409933330384E-01 5294 -0.196615972003E-01 0.410364004924E-01 5295 -0.319929200733E-01 -0.770892305772E-01 5296 -0.699315152199E-01 -0.603408606419E-01 5297 -0.319705780056E-01 -0.770478088486E-01 5298 -0.453895567687E-01 -0.732578321309E-01 5299 -0.699715514702E-01 -0.604112684241E-01 5300 0.779122036823 -0.190931843558 5301 -0.318881297384E-01 -0.771199539581E-01 5302 -0.699762657923E-01 -0.603827959871E-01 5303 -0.195927457871E-01 0.410459275101E-01 5304 -0.195790988657E-01 0.410430076398E-01 5305 0.196065089871E-01 -0.410530161941E-01 5306 -0.320271003565E-01 -0.771820140605E-01 5307 -0.699096198186E-01 -0.602295566874E-01 5308 -0.319528671462E-01 -0.770594248653E-01 5309 -0.699754997709E-01 -0.603827683633E-01 5310 -0.699699688798E-01 -0.603527469983E-01 5311 -0.319349328647E-01 -0.770647738443E-01 5312 0.778947585294 -0.191099185409 5313 -0.451611850837E-01 -0.732010147180E-01 5314 0.196062767018E-01 -0.410498168625E-01 5315 0.195951263197E-01 -0.410799954785E-01 5316 -0.195886208815E-01 0.410110888605E-01 5317 -0.699100749710E-01 -0.603243596101E-01 5318 -0.319885304505E-01 -0.771503584917E-01 5319 -0.699929919282E-01 -0.603331473555E-01 5320 -0.318882141019E-01 -0.771199133514E-01 5321 -0.318763962010E-01 -0.771325026509E-01 5322 -0.700186251242E-01 -0.603113029067E-01 5323 -0.452330404216E-01 -0.731845432671E-01 5324 0.778949775825 -0.191099021579 5325 1.33432151018 -0.269547321661 5326 -0.803399126100E-05 -0.165360082087E-06 5327 0.411157520704E-05 0.396266494767E-06 5328 0.220749691564E-01 -0.403611660258E-01 5329 -0.220330569624E-01 0.403427615686E-01 5330 -0.220415732238E-01 0.403219076967E-01 5331 -0.220160026540E-01 0.403752555376E-01 5332 0.220654379755E-01 -0.403334728253E-01 5333 0.220216889258E-01 -0.403826538463E-01 5334 -0.220374634905E-01 0.403699787931E-01 5335 0.220339506569E-01 -0.403737993804E-01 5336 -0.803404596600E-05 -0.165317712596E-06 5337 1.33432417995 -0.269546354548 5338 0.396923560793E-05 0.298169349214E-05 5339 0.220554275472E-01 -0.403245624823E-01 5340 -0.220540666611E-01 0.403267398201E-01 5341 0.220269961438E-01 -0.403890115942E-01 5342 0.220566101698E-01 -0.403149846254E-01 5343 -0.220303287128E-01 0.403843531916E-01 5344 -0.220551720526E-01 0.403115036822E-01 5345 -0.220424371449E-01 0.403856138159E-01 5346 0.220245096607E-01 -0.403825516789E-01 5347 0.411149981785E-05 0.396294735333E-06 5348 0.396941685996E-05 0.298197702607E-05 5349 1.33431798101 -0.269547648621 5350 0.220281663603E-01 -0.403763820297E-01 5351 -0.220300131204E-01 0.403844265847E-01 5352 -0.220659375637E-01 0.403642089304E-01 5353 0.220604671652E-01 -0.403566209310E-01 5354 0.220163893690E-01 -0.403420490666E-01 5355 -0.220268469481E-01 0.403441563788E-01 5356 0.220235871319E-01 -0.403556090947E-01 5357 -0.220428987899E-01 0.403691121425E-01 5358 0.220330182881E-01 -0.403427877027E-01 5359 0.220540295564E-01 -0.403267452439E-01 5360 0.220301966766E-01 -0.403844491306E-01 5361 0.838581584545 -0.199364438812 5362 -0.281269380328E-02 -0.838119633099E-01 5363 0.228187612747E-01 -0.856622351378E-01 5364 -0.317640843059E-01 -0.877306480864E-01 5365 -0.317887260935E-01 -0.877198331061E-01 5366 0.228174897348E-01 -0.856666333353E-01 5367 0.228186063326E-01 -0.856803370532E-01 5368 -0.317798803640E-01 -0.876544128576E-01 5369 -0.220750077258E-01 0.403611412399E-01 5370 -0.220554645988E-01 0.403245533897E-01 5371 -0.220279837711E-01 0.403763571620E-01 5372 -0.280616914404E-02 -0.837276230222E-01 5373 0.838580114904 -0.199364560625 5374 -0.317546062329E-01 -0.877377757150E-01 5375 0.228004993697E-01 -0.856617384890E-01 5376 0.228322475485E-01 -0.856595129315E-01 5377 -0.317426049362E-01 -0.877043633277E-01 5378 -0.317530057850E-01 -0.877329299351E-01 5379 0.228142439875E-01 -0.857183914960E-01 5380 -0.220652742687E-01 0.403334477731E-01 5381 0.220304071081E-01 -0.403843658253E-01 5382 -0.220164781834E-01 0.403420494693E-01 5383 0.228320979249E-01 -0.856594952545E-01 5384 -0.317884239453E-01 -0.877198334681E-01 5385 0.838572099772 -0.199338375486 5386 -0.317683012199E-01 -0.877711563646E-01 5387 -0.282728490936E-02 -0.838014437384E-01 5388 0.228013336940E-01 -0.856226322892E-01 5389 0.229008048964E-01 -0.856733885066E-01 5390 -0.318008205466E-01 -0.877489838655E-01 5391 -0.220218091562E-01 0.403826435506E-01 5392 0.220551667538E-01 -0.403114981969E-01 5393 0.220266726206E-01 -0.403441380428E-01 5394 -0.317429231392E-01 -0.877043450868E-01 5395 0.228175960234E-01 -0.856666731970E-01 5396 -0.317529767042E-01 -0.877527809411E-01 5397 0.838579044910 -0.199310540168 5398 0.228015223786E-01 -0.856226290936E-01 5399 -0.277753566823E-02 -0.838920834292E-01 5400 -0.318277048798E-01 -0.877157471286E-01 5401 0.228619916673E-01 -0.856340815693E-01 5402 0.220417377625E-01 -0.403219311347E-01 5403 -0.220269178830E-01 0.403890030787E-01 5404 0.220658495452E-01 -0.403642084097E-01 5405 -0.317549068941E-01 -0.877377829295E-01 5406 0.228189126276E-01 -0.856622662355E-01 5407 -0.281286438263E-02 -0.838675245800E-01 5408 0.228024798328E-01 -0.856477832398E-01 5409 0.838572082979 -0.199338370113 5410 -0.317532799677E-01 -0.877527847459E-01 5411 -0.318050871113E-01 -0.877362170197E-01 5412 0.228464102590E-01 -0.856335781432E-01 5413 0.220158834481E-01 -0.403752644672E-01 5414 -0.220566166485E-01 0.403149828200E-01 5415 -0.220606420852E-01 0.403566389520E-01 5416 0.228003952560E-01 -0.856616767402E-01 5417 -0.317637669822E-01 -0.877306351657E-01 5418 0.228022931487E-01 -0.856477952765E-01 5419 -0.285184898235E-02 -0.837724725860E-01 5420 -0.317686032666E-01 -0.877711644307E-01 5421 0.838579868708 -0.199310485559 5422 0.228842393667E-01 -0.856659108631E-01 5423 -0.318037899312E-01 -0.877675250775E-01 5424 -0.220338048213E-01 0.403737629757E-01 5425 -0.220244540946E-01 0.403825332631E-01 5426 0.220429371560E-01 -0.403690988821E-01 5427 0.228141761875E-01 -0.857184175984E-01 5428 -0.317787930011E-01 -0.876543867351E-01 5429 0.228467840689E-01 -0.856336024869E-01 5430 -0.318029849214E-01 -0.877675008198E-01 5431 -0.318002431406E-01 -0.877489773786E-01 5432 0.228620971229E-01 -0.856340914339E-01 5433 0.838486993388 -0.199421222328 5434 -0.271118638674E-02 -0.837443596553E-01 5435 0.220376102939E-01 -0.403700139693E-01 5436 0.220424926400E-01 -0.403856360223E-01 5437 -0.220235490939E-01 0.403556238631E-01 5438 -0.317540894679E-01 -0.877329373648E-01 5439 0.228186783094E-01 -0.856803193340E-01 5440 -0.318056609553E-01 -0.877362383621E-01 5441 0.228841332593E-01 -0.856658657384E-01 5442 0.229004347493E-01 -0.856733658996E-01 5443 -0.318285095251E-01 -0.877157598757E-01 5444 -0.273572987492E-02 -0.837525603181E-01 5445 0.838489204093 -0.199421052557 5446 1.31674203840 -0.295237617264 5447 -0.837375207368E-05 0.187945258387E-06 5448 0.463346713432E-05 -0.131817448047E-05 5449 0.228031485953E-01 -0.513040843280E-01 5450 -0.227812057467E-01 0.512704375300E-01 5451 -0.227810879594E-01 0.512413928521E-01 5452 -0.227214781108E-01 0.512974273109E-01 5453 0.227830983583E-01 -0.512790717930E-01 5454 0.227419469798E-01 -0.512835093246E-01 5455 -0.227473878243E-01 0.512825346139E-01 5456 0.227478076206E-01 -0.512818769638E-01 5457 -0.837365272455E-05 0.188027974538E-06 5458 1.31674505374 -0.295237444311 5459 0.455614094967E-05 0.721635554167E-06 5460 0.227799846598E-01 -0.512751310125E-01 5461 -0.227984070024E-01 0.512528996348E-01 5462 0.227516416901E-01 -0.512948468299E-01 5463 0.227877232151E-01 -0.512668737072E-01 5464 -0.227433336649E-01 0.513017413694E-01 5465 -0.228018988235E-01 0.512444157162E-01 5466 -0.227436938187E-01 0.513030013033E-01 5467 0.227415215962E-01 -0.512811051188E-01 5468 0.463358881858E-05 -0.131840930647E-05 5469 0.455619934971E-05 0.721800673092E-06 5470 1.31673771527 -0.295236148287 5471 0.227276667896E-01 -0.512925384264E-01 5472 -0.227442225891E-01 0.512845366475E-01 5473 -0.227946138261E-01 0.512824168916E-01 5474 0.227887557395E-01 -0.512793745351E-01 5475 0.227393176884E-01 -0.512712893905E-01 5476 -0.227552199424E-01 0.512739578158E-01 5477 0.227368076971E-01 -0.512554657975E-01 5478 -0.227426362684E-01 0.512867745774E-01 5479 0.227811697064E-01 -0.512704486053E-01 5480 0.227983779341E-01 -0.512529114453E-01 5481 0.227444070230E-01 -0.512845604702E-01 5482 0.888445493609 -0.264168823667 5483 0.389556382163E-01 -0.115222208028 5484 0.438134622007E-01 -0.971659067283E-01 5485 0.745304936279E-02 -0.110968776788 5486 0.742771554306E-02 -0.110957621513 5487 0.438135872554E-01 -0.971661385080E-01 5488 0.437753247704E-01 -0.971954398323E-01 5489 0.749009970260E-02 -0.110901288877 5490 -0.228031861251E-01 0.513040742834E-01 5491 -0.227800144464E-01 0.512751159582E-01 5492 -0.227274838693E-01 0.512925128469E-01 5493 0.389894694191E-01 -0.115135479187 5494 0.888443997922 -0.264168979994 5495 0.746661601919E-02 -0.110987401728 5496 0.438001391613E-01 -0.971545628352E-01 5497 0.438305428467E-01 -0.971540439422E-01 5498 0.746927845819E-02 -0.110958157267 5499 0.750270548230E-02 -0.110972415037 5500 0.437618944589E-01 -0.972001104381E-01 5501 -0.227829314358E-01 0.512790661331E-01 5502 0.227434126441E-01 -0.513017461018E-01 5503 -0.227394061073E-01 0.512712926361E-01 5504 0.438303920350E-01 -0.971540222042E-01 5505 0.742803970793E-02 -0.110957624332 5506 0.888507374068 -0.264125097373 5507 0.740587007061E-02 -0.111017705710 5508 0.388971775646E-01 -0.115201781113 5509 0.438328978433E-01 -0.971205131624E-01 5510 0.438984706367E-01 -0.971961735568E-01 5511 0.742966411399E-02 -0.110994108950 5512 -0.227420747023E-01 0.512835185800E-01 5513 0.228018899984E-01 -0.512444029856E-01 5514 0.227550377766E-01 -0.512739315062E-01 5515 0.746894333856E-02 -0.110958136882 5516 0.438136929772E-01 -0.971661885935E-01 5517 0.743657963156E-02 -0.111003944960 5518 0.888519046092 -0.264102503021 5519 0.438330871288E-01 -0.971205040914E-01 5520 0.389231895084E-01 -0.115320229190 5521 0.739357375064E-02 -0.110937265581 5522 0.438612054136E-01 -0.971196202655E-01 5523 0.227812562177E-01 -0.512413978840E-01 5524 -0.227515634602E-01 0.512948452680E-01 5525 0.227945265459E-01 -0.512824148475E-01 5526 0.746629803239E-02 -0.110987405159 5527 0.438136197784E-01 -0.971659401961E-01 5528 0.388957787306E-01 -0.115310749843 5529 0.438372877976E-01 -0.971401192898E-01 5530 0.888507355932 -0.264125091118 5531 0.743626631656E-02 -0.111003949066 5532 0.741712672649E-02 -0.110967130394 5533 0.438407665981E-01 -0.971222235470E-01 5534 0.227213522285E-01 -0.512974163764E-01 5535 -0.227877330198E-01 0.512668798629E-01 5536 -0.227889400620E-01 0.512793996862E-01 5537 0.438000339225E-01 -0.971544888433E-01 5538 0.745338379181E-02 -0.110968764705 5539 0.438370945146E-01 -0.971401384760E-01 5540 0.388596456763E-01 -0.115183603245 5541 0.740555324918E-02 -0.111017715667 5542 0.888519887487 -0.264102433663 5543 0.438820076077E-01 -0.971914657721E-01 5544 0.741209721620E-02 -0.111018324156 5545 -0.227476578288E-01 0.512818566047E-01 5546 -0.227414613455E-01 0.512810794049E-01 5547 0.227426697353E-01 -0.512867494817E-01 5548 0.437618256260E-01 -0.972001395814E-01 5549 0.749124755235E-02 -0.110901263861 5550 0.438411441002E-01 -0.971222490325E-01 5551 0.741294904114E-02 -0.111018299816 5552 0.743027598230E-02 -0.110994099640 5553 0.438613189624E-01 -0.971196327564E-01 5554 0.888334217315 -0.264204579319 5555 0.391008487183E-01 -0.115195542759 5556 0.227475395520E-01 -0.512825532263E-01 5557 0.227437548641E-01 -0.513030317865E-01 5558 -0.227367758272E-01 0.512554918104E-01 5559 0.750156393995E-02 -0.110972419365 5560 0.437754010291E-01 -0.971954177430E-01 5561 0.741651754698E-02 -0.110967154503 5562 0.438818971488E-01 -0.971914162772E-01 5563 0.438980948934E-01 -0.971961494555E-01 5564 0.739272528392E-02 -0.110937278816 5565 0.390689989133E-01 -0.115152440614 5566 0.888336471781 -0.264204362250 5567 1.29024318487 -0.210077518901 5568 -0.785110180934E-05 -0.870098935417E-07 5569 0.431042565064E-05 0.267901126683E-06 5570 0.251181504060E-01 -0.332435276562E-01 5571 -0.250764280957E-01 0.332076269365E-01 5572 -0.250810868705E-01 0.331931224787E-01 5573 -0.250454502399E-01 0.332582526651E-01 5574 0.251122314673E-01 -0.332225229208E-01 5575 0.250418273003E-01 -0.332586255819E-01 5576 -0.250628552458E-01 0.332487200080E-01 5577 0.250586810660E-01 -0.332513053253E-01 5578 -0.785110777969E-05 -0.869678157780E-07 5579 1.29024595174 -0.210076667066 5580 0.439730514839E-05 0.217663679987E-05 5581 0.251081268818E-01 -0.332035909206E-01 5582 -0.250982998746E-01 0.331945446568E-01 5583 0.250505912249E-01 -0.332590018322E-01 5584 0.251106429084E-01 -0.331948922101E-01 5585 -0.250529429356E-01 0.332648649743E-01 5586 -0.251056653805E-01 0.331816071665E-01 5587 -0.250666961318E-01 0.332750963293E-01 5588 0.250435785680E-01 -0.332583046210E-01 5589 0.431028694092E-05 0.267882191434E-06 5590 0.439734428735E-05 0.217678185091E-05 5591 1.29023934469 -0.210077519546 5592 0.250506210080E-01 -0.332606088016E-01 5593 -0.250490240829E-01 0.332600931086E-01 5594 -0.251023488766E-01 0.332382631280E-01 5595 0.250989576415E-01 -0.332298997218E-01 5596 0.250503833065E-01 -0.332160540730E-01 5597 -0.250656799996E-01 0.332193163906E-01 5598 0.250428894850E-01 -0.332315644307E-01 5599 -0.250722695941E-01 0.332594150104E-01 5600 0.250763953329E-01 -0.332076483907E-01 5601 0.250982703964E-01 -0.331945594628E-01 5602 0.250492216604E-01 -0.332600964377E-01 5603 0.920023661251 -0.250647092330 5604 0.643352076568E-01 -0.110846693448 5605 0.822659614878E-01 -0.801374231560E-01 5606 0.435193762863E-01 -0.847336276523E-01 5607 0.435004040826E-01 -0.847165746463E-01 5608 0.822656963181E-01 -0.801300603505E-01 5609 0.822435038783E-01 -0.802043812425E-01 5610 0.435527644971E-01 -0.846205351647E-01 5611 -0.251181836087E-01 0.332435071933E-01 5612 -0.251081561029E-01 0.332035719144E-01 5613 -0.250504247617E-01 0.332606045432E-01 5614 0.643604938378E-01 -0.110747645748 5615 0.920022112977 -0.250647257222 5616 0.435539775166E-01 -0.847402118590E-01 5617 0.822404662507E-01 -0.801270858601E-01 5618 0.822834968238E-01 -0.801170560220E-01 5619 0.435601361067E-01 -0.847016124881E-01 5620 0.435777981432E-01 -0.846872973659E-01 5621 0.822146252204E-01 -0.802098766119E-01 5622 -0.251120650553E-01 0.332225026611E-01 5623 0.250530192157E-01 -0.332648792348E-01 5624 -0.250504716885E-01 0.332160615928E-01 5625 0.822833260234E-01 -0.801170431649E-01 5626 0.435007459317E-01 -0.847165732268E-01 5627 0.920083821564 -0.250560067805 5628 0.434935383116E-01 -0.848111617549E-01 5629 0.642854741618E-01 -0.110879763848 5630 0.822836526489E-01 -0.800522912934E-01 5631 0.823784592952E-01 -0.801530881851E-01 5632 0.435148301008E-01 -0.847522043674E-01 5633 -0.250419534870E-01 0.332586107126E-01 5634 0.251056490805E-01 -0.331816134996E-01 5635 0.250654964167E-01 -0.332192978912E-01 5636 0.435597828267E-01 -0.847016007414E-01 5637 0.822658244850E-01 -0.801300985010E-01 5638 0.435261157078E-01 -0.847911497940E-01 5639 0.920084484413 -0.250523728529 5640 0.822838553877E-01 -0.800522794648E-01 5641 0.643399684311E-01 -0.110991752903 5642 0.434559227198E-01 -0.847000701061E-01 5643 0.822968503044E-01 -0.800829907693E-01 5644 0.250812534630E-01 -0.331931411907E-01 5645 -0.250505136178E-01 0.332589909694E-01 5646 0.251022618570E-01 -0.332382573089E-01 5647 0.435536389211E-01 -0.847402166545E-01 5648 0.822661365785E-01 -0.801374456949E-01 5649 0.643229189325E-01 -0.110988442950 5650 0.822798583566E-01 -0.800831575000E-01 5651 0.920083803677 -0.250560056476 5652 0.435257878380E-01 -0.847911550478E-01 5653 0.434891924204E-01 -0.847238704835E-01 5654 0.822806211513E-01 -0.800958284920E-01 5655 0.250453244287E-01 -0.332582660907E-01 5656 -0.251106590407E-01 0.331948798228E-01 5657 -0.250991424074E-01 0.332299165957E-01 5658 0.822403361215E-01 -0.801270236562E-01 5659 0.435197267001E-01 -0.847336058936E-01 5660 0.822796538797E-01 -0.800831833677E-01 5661 0.642272825782E-01 -0.110877204922 5662 0.434932099724E-01 -0.848111764661E-01 5663 0.920085359497 -0.250523654676 5664 0.823540005456E-01 -0.801532255115E-01 5665 0.435041018094E-01 -0.847809790636E-01 5666 -0.250585182691E-01 0.332512838893E-01 5667 -0.250435108717E-01 0.332582904426E-01 5668 0.250722976668E-01 -0.332594059613E-01 5669 0.822145563334E-01 -0.802098968989E-01 5670 0.435539647344E-01 -0.846204752535E-01 5671 0.822810380503E-01 -0.800958419779E-01 5672 0.435049932291E-01 -0.847809284226E-01 5673 0.435154706664E-01 -0.847521721741E-01 5674 0.822969793052E-01 -0.800829882494E-01 5675 0.919924160892 -0.250723434974 5676 0.645021972424E-01 -0.110783242952 5677 0.250630184381E-01 -0.332487396565E-01 5678 0.250667637059E-01 -0.332751144501E-01 5679 -0.250428629049E-01 0.332315742247E-01 5680 0.435766022720E-01 -0.846873322161E-01 5681 0.822435790369E-01 -0.802043637137E-01 5682 0.434885559944E-01 -0.847239167806E-01 5683 0.823538746790E-01 -0.801531856759E-01 5684 0.823780465817E-01 -0.801530762485E-01 5685 0.434550355579E-01 -0.847001058368E-01 5686 0.644373216860E-01 -0.110748987686 5687 0.919926498110 -0.250723203724 5688 1.25417348705 -0.181508521761 5689 -0.752807267819E-05 -0.395671374532E-07 5690 0.439925533794E-05 -0.308107784687E-06 5691 0.197483449921E-01 -0.232577011356E-01 5692 -0.197073178739E-01 0.232264241247E-01 5693 -0.197046556630E-01 0.232000221721E-01 5694 -0.196529495240E-01 0.232811088346E-01 5695 0.197280420764E-01 -0.232359950326E-01 5696 0.196609404258E-01 -0.232606650275E-01 5697 -0.196788552444E-01 0.232604983564E-01 5698 0.196794726689E-01 -0.232611001695E-01 5699 -0.752802841858E-05 -0.392024544168E-07 5700 1.25417614662 -0.181508062947 5701 0.439636397398E-05 0.140996210590E-05 5702 0.197248163964E-01 -0.232244760448E-01 5703 -0.197276691973E-01 0.231998450608E-01 5704 0.196701696626E-01 -0.232755940239E-01 5705 0.197342689250E-01 -0.232105612535E-01 5706 -0.196734595886E-01 0.232829102094E-01 5707 -0.197379583779E-01 0.231906125508E-01 5708 -0.196789533735E-01 0.232896008761E-01 5709 0.196588456268E-01 -0.232629989773E-01 5710 0.439895959658E-05 -0.309049740027E-06 5711 0.439648290147E-05 0.141002619116E-05 5712 1.25416965461 -0.181508030947 5713 0.196666665327E-01 -0.232756679130E-01 5714 -0.196716194568E-01 0.232630270370E-01 5715 -0.197236161431E-01 0.232474938267E-01 5716 0.197163082843E-01 -0.232444180475E-01 5717 0.196682416934E-01 -0.232398876812E-01 5718 -0.196839326997E-01 0.232369218198E-01 5719 0.196613117082E-01 -0.232365702583E-01 5720 -0.196867956843E-01 0.232652751174E-01 5721 0.197072810105E-01 -0.232264329477E-01 5722 0.197276454166E-01 -0.231998502532E-01 5723 0.196717999500E-01 -0.232630487518E-01 5724 0.935866100052 -0.166542794137 5725 0.731321218928E-01 -0.501678562620E-01 5726 0.779043990588E-01 -0.214455729880E-01 5727 0.269443133771E-01 -0.382818978393E-01 5728 0.269141075753E-01 -0.382688187935E-01 5729 0.778777323610E-01 -0.214415134830E-01 5730 0.778973521249E-01 -0.214279360277E-01 5731 0.269138464053E-01 -0.382111574684E-01 5732 -0.197483822095E-01 0.232576933730E-01 5733 -0.197248407364E-01 0.232244664069E-01 5734 -0.196664881470E-01 0.232756413426E-01 5735 0.731228833893E-01 -0.500251658340E-01 5736 0.935864520059 -0.166542914344 5737 0.269291745806E-01 -0.382724294650E-01 5738 0.778711662094E-01 -0.214398577340E-01 5739 0.779040698496E-01 -0.214204398816E-01 5740 0.269440338618E-01 -0.382448971699E-01 5741 0.269331765472E-01 -0.382993851283E-01 5742 0.779028717168E-01 -0.214730343251E-01 5743 -0.197278598737E-01 0.232359994599E-01 5744 0.196735524406E-01 -0.232829095871E-01 5745 -0.196683458067E-01 0.232398804304E-01 5746 0.779038987507E-01 -0.214204408605E-01 5747 0.269144583208E-01 -0.382688134018E-01 5748 0.935837973756 -0.166533880767 5749 0.269456361967E-01 -0.383109588091E-01 5750 0.731617811885E-01 -0.500597987584E-01 5751 0.778686170757E-01 -0.214072704814E-01 5752 0.779839061065E-01 -0.214297634165E-01 5753 0.268837090064E-01 -0.382817749393E-01 5754 -0.196610637206E-01 0.232606675220E-01 5755 0.197379649436E-01 -0.231905958121E-01 5756 0.196837369582E-01 -0.232369074411E-01 5757 0.269436763396E-01 -0.382448889370E-01 5758 0.778778645961E-01 -0.214415237507E-01 5759 0.269498926165E-01 -0.382573397920E-01 5760 0.935840820024 -0.166526383459 5761 0.778688201689E-01 -0.214072619985E-01 5762 0.731764962080E-01 -0.501680186255E-01 5763 0.268558481622E-01 -0.382478215145E-01 5764 0.779627044668E-01 -0.214038389755E-01 5765 0.197048379703E-01 -0.232000171898E-01 5766 -0.196700758788E-01 0.232755972340E-01 5767 0.197235133603E-01 -0.232474990158E-01 5768 0.269288244318E-01 -0.382724393252E-01 5769 0.779045738920E-01 -0.214455844111E-01 5770 0.731746361116E-01 -0.501517970388E-01 5771 0.778776601431E-01 -0.214420253745E-01 5772 0.935837946917 -0.166533881777 5773 0.269495517785E-01 -0.382573453200E-01 5774 0.268751615772E-01 -0.382810461945E-01 5775 0.779640235081E-01 -0.214104136937E-01 5776 0.196528266595E-01 -0.232811041682E-01 5777 -0.197342626532E-01 0.232105693466E-01 5778 -0.197165049043E-01 0.232444291555E-01 5779 0.778710316635E-01 -0.214398219533E-01 5780 0.269446707146E-01 -0.382818741237E-01 5781 0.778774570153E-01 -0.214420475253E-01 5782 0.731322559631E-01 -0.500600084809E-01 5783 0.269452955387E-01 -0.383109710157E-01 5784 0.935841714811 -0.166526326301 5785 0.779752229224E-01 -0.214385304837E-01 5786 0.268708826815E-01 -0.383157670477E-01 5787 -0.196793167774E-01 0.232610819588E-01 5788 -0.196587831984E-01 0.232629797474E-01 5789 0.196868361962E-01 -0.232652494040E-01 5790 0.779027936749E-01 -0.214730532320E-01 5791 0.269150555103E-01 -0.382111114710E-01 5792 0.779644464554E-01 -0.214104072351E-01 5793 0.268717775790E-01 -0.383157285822E-01 5794 0.268843426863E-01 -0.382817574348E-01 5795 0.779628266740E-01 -0.214038253606E-01 5796 0.935749425415 -0.166574828971 5797 0.732683996667E-01 -0.500625245220E-01 5798 0.196790116951E-01 -0.232605148660E-01 5799 0.196790171922E-01 -0.232896239407E-01 5800 -0.196612719480E-01 0.232365941453E-01 5801 0.269319692839E-01 -0.382994063185E-01 5802 0.778974321805E-01 -0.214279224721E-01 5803 0.268745284237E-01 -0.382810767844E-01 5804 0.779750983647E-01 -0.214384984042E-01 5805 0.779834864584E-01 -0.214297701635E-01 5806 0.268549549075E-01 -0.382478446211E-01 5807 0.732631194586E-01 -0.500695384684E-01 5808 0.935751813593 -0.166574656997 5809 1.20771632415 -0.188460104555 5810 -0.734368839149E-05 0.235356927263E-06 5811 0.491644214997E-05 -0.637058194158E-06 5812 0.685843700502E-02 -0.204142340101E-01 5813 -0.682542892639E-02 0.203757484116E-01 5814 -0.680699338177E-02 0.203624057477E-01 5815 -0.676179154402E-02 0.204548102315E-01 5816 0.683837214559E-02 -0.204123786255E-01 5817 0.674918120036E-02 -0.204174394044E-01 5818 -0.677839357810E-02 0.204272443290E-01 5819 0.677623409996E-02 -0.204216746142E-01 5820 -0.734344643933E-05 0.235471272686E-06 5821 1.20771923410 -0.188460011991 5822 0.482563377847E-05 0.378923795989E-06 5823 0.684389472315E-02 -0.204000148240E-01 5824 -0.682825935479E-02 0.203573545931E-01 5825 0.677461047789E-02 -0.204269457569E-01 5826 0.685173069436E-02 -0.203823050521E-01 5827 -0.677734274546E-02 0.204393301907E-01 5828 -0.684454668433E-02 0.203489836609E-01 5829 -0.677812241259E-02 0.204594461084E-01 5830 0.675292424734E-02 -0.204233061791E-01 5831 0.491602958596E-05 -0.637164986157E-06 5832 0.482561963091E-05 0.379146023776E-06 5833 1.20771191984 -0.188459224603 5834 0.676687316722E-02 -0.204457943140E-01 5835 -0.676055050511E-02 0.204224846487E-01 5836 -0.682192303605E-02 0.204047164934E-01 5837 0.682026248009E-02 -0.204062622958E-01 5838 0.678585363499E-02 -0.204041276918E-01 5839 -0.679646937099E-02 0.204003430942E-01 5840 0.675324741846E-02 -0.204022220857E-01 5841 -0.678035606734E-02 0.204397564472E-01 5842 0.682537978014E-02 -0.203757642143E-01 5843 0.682822240684E-02 -0.203573639876E-01 5844 0.676074446505E-02 -0.204224932430E-01 5845 0.911171824588 -0.159779288791 5846 0.602345048267E-01 -0.140689414859E-01 5847 0.384873724331E-01 0.110513335905E-02 5848 -0.336044820080E-02 -0.273660247102E-01 5849 -0.339046882889E-02 -0.273584635659E-01 5850 0.384623447456E-01 0.109643518571E-02 5851 0.384356582034E-01 0.108234810065E-02 5852 -0.335459774639E-02 -0.272755465086E-01 5853 -0.685848535574E-02 0.204142190979E-01 5854 -0.684392829029E-02 0.204000011614E-01 5855 -0.676668117017E-02 0.204457824987E-01 5856 0.601943997642E-01 -0.139249216754E-01 5857 0.911170201065 -0.159779409642 5858 -0.337079960851E-02 -0.273818791175E-01 5859 0.384486924381E-01 0.111182639156E-02 5860 0.384817225277E-01 0.112346809441E-02 5861 -0.334577259859E-02 -0.273562719209E-01 5862 -0.331855474914E-02 -0.273800297406E-01 5863 0.384349035954E-01 0.105589465236E-02 5864 -0.683820482853E-02 0.204123719418E-01 5865 0.677742311418E-02 -0.204393388710E-01 5866 -0.678594804373E-02 0.204041304199E-01 5867 0.384815488858E-01 0.112345650835E-02 5868 -0.339011741843E-02 -0.273584484572E-01 5869 0.911189299761 -0.159747099246 5870 -0.338686168781E-02 -0.274281274717E-01 5871 0.601506291009E-01 -0.139748218240E-01 5872 0.384828639695E-01 0.115387449552E-02 5873 0.385779383789E-01 0.110022644203E-02 5874 -0.341916063481E-02 -0.273887063614E-01 5875 -0.674931756611E-02 0.204174337278E-01 5876 0.684453687354E-02 -0.203489800477E-01 5877 0.679628229439E-02 -0.204003289178E-01 5878 -0.334613401704E-02 -0.273562680008E-01 5879 0.384624681712E-01 0.109644026616E-02 5880 -0.339629287291E-02 -0.273797369590E-01 5881 0.911213265269 -0.159732144471 5882 0.384830797437E-01 0.115388942612E-02 5883 0.602068946917E-01 -0.141279627794E-01 5884 -0.346991564390E-02 -0.273407746460E-01 5885 0.385355707138E-01 0.117179206961E-02 5886 0.680716000672E-02 -0.203624120922E-01 5887 -0.677452719363E-02 0.204269419046E-01 5888 0.682182922387E-02 -0.204047140758E-01 5889 -0.337115128667E-02 -0.273819009771E-01 5890 0.384875473242E-01 0.110513371184E-02 5891 0.602017949083E-01 -0.140993417432E-01 5892 0.384880768553E-01 0.112839512702E-02 5893 0.911189277517 -0.159747098320 5894 -0.339663571871E-02 -0.273797508683E-01 5895 -0.343461683171E-02 -0.273808072663E-01 5896 0.385323199155E-01 0.117244985224E-02 5897 0.676165480348E-02 -0.204548161058E-01 5898 -0.685173807047E-02 0.203823024662E-01 5899 -0.682045006794E-02 0.204062738168E-01 5900 0.384485683514E-01 0.111184414002E-02 5901 -0.336008744726E-02 -0.273659927426E-01 5902 0.384878636815E-01 0.112836673907E-02 5903 0.601227986247E-01 -0.139659303708E-01 5904 -0.338720300215E-02 -0.274281491576E-01 5905 0.911214178593 -0.159732083151 5906 0.385732830274E-01 0.110262523882E-02 5907 -0.342401155998E-02 -0.274413457691E-01 5908 -0.677608190740E-02 0.204216539818E-01 5909 -0.675286313936E-02 0.204232869275E-01 5910 0.678039479043E-02 -0.204397375274E-01 5911 0.384348243934E-01 0.105587932785E-02 5912 -0.335335588585E-02 -0.272754765043E-01 5913 0.385327487860E-01 0.117247531623E-02 5914 -0.342309024713E-02 -0.274412904692E-01 5915 -0.341850004412E-02 -0.273886815541E-01 5916 0.385356936450E-01 0.117181658180E-02 5917 0.911008514576 -0.159847664640 5918 0.603907113673E-01 -0.139491408852E-01 5919 0.677854589626E-02 -0.204272643248E-01 5920 0.677818068118E-02 -0.204594680528E-01 5921 -0.675320768272E-02 0.204022404214E-01 5922 -0.331979613683E-02 -0.273800763447E-01 5923 0.384357394331E-01 0.108235695178E-02 5924 -0.343527626898E-02 -0.273808497438E-01 5925 0.385731564561E-01 0.110264177874E-02 5926 0.385775114666E-01 0.110020111688E-02 5927 -0.347083838710E-02 -0.273408135070E-01 5928 0.603530579977E-01 -0.139158451194E-01 5929 0.911010963638 -0.159847489407 5930 1.19912011555 -0.173748709070 5931 -0.694131741079E-05 0.108272847897E-06 5932 0.429553616965E-05 0.480686223783E-06 5933 -0.783206448483E-02 -0.157511812995E-01 5934 0.786935430258E-02 0.157285701127E-01 5935 0.788162893219E-02 0.157204294124E-01 5936 0.790051249515E-02 0.157968957964E-01 5937 -0.784460463347E-02 -0.157467080575E-01 5938 -0.791900232656E-02 -0.157819085393E-01 5939 0.789075593273E-02 0.157768793287E-01 5940 -0.789431475230E-02 -0.157742314620E-01 5941 -0.694125056367E-05 0.108086518504E-06 5942 1.19912262635 -0.173747950152 5943 0.390126391169E-05 0.219303237118E-05 5944 -0.785011501680E-02 -0.157311448164E-01 5945 0.787107931199E-02 0.157110999454E-01 5946 -0.789565024683E-02 -0.157832033550E-01 5947 -0.784961771959E-02 -0.157169100831E-01 5948 0.789064750102E-02 0.157890200824E-01 5949 0.785900624791E-02 0.156945285475E-01 5950 0.787783061772E-02 0.158044650955E-01 5951 -0.790930315397E-02 -0.157889590299E-01 5952 0.429521481396E-05 0.481097754655E-06 5953 0.390137045719E-05 0.219307274975E-05 5954 1.19911614929 -0.173748487496 5955 -0.789735401629E-02 -0.157916624844E-01 5956 0.790672936875E-02 0.157803350916E-01 5957 0.786158774622E-02 0.157496347794E-01 5958 -0.786188799138E-02 -0.157511888426E-01 5959 -0.789924230445E-02 -0.157537259370E-01 5960 0.788802862837E-02 0.157501049217E-01 5961 -0.791448653442E-02 -0.157645574456E-01 5962 0.788226707225E-02 0.157831438391E-01 5963 -0.786940877851E-02 -0.157285824620E-01 5964 -0.787111615661E-02 -0.157111069949E-01 5965 -0.790652896837E-02 -0.157803484646E-01 5966 0.891132943482 -0.152711422354 5967 0.359848213776E-01 -0.256054070390E-01 5968 0.124345574013E-02 -0.182832500101E-03 5969 -0.362584016314E-01 -0.252387104508E-01 5970 -0.362894106313E-01 -0.252265185425E-01 5971 0.122366245654E-02 -0.198184352888E-03 5972 0.119559382722E-02 -0.208305385967E-03 5973 -0.362619335092E-01 -0.251678279245E-01 5974 0.783201004076E-02 0.157511701155E-01 5975 0.785007890010E-02 0.157311356839E-01 5976 0.789755438241E-02 0.157916459032E-01 5977 0.359382089863E-01 -0.255033252636E-01 5978 0.891131257651 -0.152711542538 5979 -0.362724912973E-01 -0.252637492759E-01 5980 0.120858641176E-02 -0.181339106421E-03 5981 0.124074566265E-02 -0.172670087299E-03 5982 -0.362484146051E-01 -0.252281613722E-01 5983 -0.362184842900E-01 -0.252506850337E-01 5984 0.120515920928E-02 -0.227564469643E-03 5985 0.784476286764E-02 0.157467044904E-01 5986 -0.789057088899E-02 -0.157890241209E-01 5987 0.789915147016E-02 0.157537262296E-01 5988 0.124058063735E-02 -0.172679975864E-03 5989 -0.362890481536E-01 -0.252265110435E-01 5990 0.891154248104 -0.152696075155 5991 -0.362835252274E-01 -0.252861733671E-01 5992 0.358868351207E-01 -0.255422387617E-01 5993 0.123940771353E-02 -0.145080199310E-03 5994 0.132530181597E-02 -0.188845781273E-03 5995 -0.363165964037E-01 -0.252620589451E-01 5996 0.791885381117E-02 0.157819061423E-01 5997 -0.785902034020E-02 -0.156945187465E-01 5998 -0.788822159562E-02 -0.157500904679E-01 5999 -0.362487816045E-01 -0.252281534316E-01 6000 0.122376770420E-02 -0.198185837523E-03 6001 -0.362943851067E-01 -0.252588754977E-01 6002 0.891183214093 -0.152679042250 6003 0.123962808252E-02 -0.145064134227E-03 6004 0.359517769004E-01 -0.256608234472E-01 6005 -0.363624099706E-01 -0.252295768076E-01 6006 0.128501559263E-02 -0.127007880682E-03 6007 -0.788147056288E-02 -0.157204306753E-01 6008 0.789572767051E-02 0.157832056360E-01 6009 -0.786167874817E-02 -0.157496358784E-01 6010 -0.362728537790E-01 -0.252637664584E-01 6011 0.124362294734E-02 -0.182837470621E-03 6012 0.359365045867E-01 -0.256309071242E-01 6013 0.124643535364E-02 -0.173396131595E-03 6014 0.891154230961 -0.152696077569 6015 -0.362947404967E-01 -0.252588880570E-01 6016 -0.363312290588E-01 -0.252621864635E-01 6017 0.127866905151E-02 -0.117638766184E-03 6018 -0.790066017526E-02 -0.157968966732E-01 6019 0.784960456747E-02 0.157169156014E-01 6020 0.786169701080E-02 0.157512010776E-01 6021 0.120847941503E-02 -0.181312843898E-03 6022 -0.362580361174E-01 -0.252386826305E-01 6023 0.124621672597E-02 -0.173423556067E-03 6024 0.358586361661E-01 -0.255257344281E-01 6025 -0.362838808393E-01 -0.252861899971E-01 6026 0.891184156639 -0.152678984847 6027 0.132067564855E-02 -0.181475323123E-03 6028 -0.363126497156E-01 -0.253072515865E-01 6029 0.789446110142E-02 0.157742135960E-01 6030 0.790936296679E-02 0.157889451596E-01 6031 -0.788223135907E-02 -0.157831239527E-01 6032 0.120507098839E-02 -0.227582852589E-03 6033 -0.362606613418E-01 -0.251677669003E-01 6034 0.127909133702E-02 -0.117617479172E-03 6035 -0.363117042473E-01 -0.253072027511E-01 6036 -0.363159177975E-01 -0.252620382526E-01 6037 0.128513005654E-02 -0.126989471758E-03 6038 0.890990818389 -0.152785617207 6039 0.361029592740E-01 -0.255054801103E-01 6040 -0.789060904241E-02 -0.157768960545E-01 6041 -0.787777168567E-02 -0.158044844912E-01 6042 0.791452453657E-02 0.157645780629E-01 6043 -0.362197551998E-01 -0.252507230945E-01 6044 0.119568334404E-02 -0.208294923801E-03 6045 -0.363319052869E-01 -0.252622236628E-01 6046 0.132055942586E-02 -0.181453131185E-03 6047 0.132488065397E-02 -0.188867179751E-03 6048 -0.363633571373E-01 -0.252296128131E-01 6049 0.360755030769E-01 -0.254778606474E-01 6050 0.890993352410 -0.152785441561 elk-9.6.8/tests/test_023/PaxHeaders/elk.in0000644000000000000000000000013214626155522015207 xustar0030 mtime=1717099346.794001519 30 atime=1717099346.794001519 30 ctime=1717099346.794001519 elk-9.6.8/tests/test_023/elk.in0000644002504400250440000000123714626155522017734 0ustar00dewhurstdewhurst00000000000000 ! Time-dependent density functional theory (TDDFT) optical spectrum of lithium ! fluoride. tasks 0 120 121 125 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 50 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-9.6.8/tests/PaxHeaders/test_0290000644000000000000000000000013114626155522014034 xustar0030 mtime=1717099346.819001654 29 atime=1717099346.79600153 30 ctime=1717099346.819001654 elk-9.6.8/tests/test_029/0000755002504400250440000000000014626155522016634 5ustar00dewhurstdewhurst00000000000000elk-9.6.8/tests/test_029/PaxHeaders/TEST_705.OUT_0000644000000000000000000000013214626155522016014 xustar0030 mtime=1717099346.798001541 30 atime=1717099346.798001541 30 ctime=1717099346.798001541 elk-9.6.8/tests/test_029/TEST_705.OUT_0000644002504400250440000000010114626155522020526 0ustar00dewhurstdewhurst00000000000000'number of crystal symmetries' 1 1 1 96 elk-9.6.8/tests/test_029/PaxHeaders/TEST_910.OUT_0000644000000000000000000000013214626155522016012 xustar0030 mtime=1717099346.800001552 30 atime=1717099346.799001546 30 ctime=1717099346.800001552 elk-9.6.8/tests/test_029/TEST_910.OUT_0000644002504400250440000002727714626155522020553 0ustar00dewhurstdewhurst00000000000000'k-points (Cartesian)' 2 384 0.100000000000E-07 1 0.00000000000 2 0.00000000000 3 0.00000000000 4 0.545019400590E-01 5 0.00000000000 6 0.00000000000 7 0.00000000000 8 0.143067592655 9 0.00000000000 10 0.545019400590E-01 11 0.143067592655 12 0.00000000000 13 0.00000000000 14 0.286135185310 15 0.00000000000 16 0.545019400590E-01 17 0.286135185310 18 0.00000000000 19 0.00000000000 20 0.429202777965 21 0.00000000000 22 0.545019400590E-01 23 0.429202777965 24 0.00000000000 25 0.00000000000 26 0.572270370619 27 0.00000000000 28 0.545019400590E-01 29 0.572270370619 30 0.00000000000 31 0.00000000000 32 0.715337963274 33 0.00000000000 34 0.545019400590E-01 35 0.715337963274 36 0.00000000000 37 0.00000000000 38 0.858405555929 39 0.00000000000 40 0.545019400590E-01 41 0.858405555929 42 0.00000000000 43 0.00000000000 44 1.00147314858 45 0.00000000000 46 0.545019400590E-01 47 1.00147314858 48 0.00000000000 49 0.00000000000 50 0.00000000000 51 0.143067592655 52 0.545019400590E-01 53 0.00000000000 54 0.143067592655 55 0.00000000000 56 0.143067592655 57 0.143067592655 58 0.545019400590E-01 59 0.143067592655 60 0.143067592655 61 0.00000000000 62 0.286135185310 63 0.143067592655 64 0.545019400590E-01 65 0.286135185310 66 0.143067592655 67 0.00000000000 68 0.429202777965 69 0.143067592655 70 0.545019400590E-01 71 0.429202777965 72 0.143067592655 73 0.00000000000 74 0.572270370619 75 0.143067592655 76 0.545019400590E-01 77 0.572270370619 78 0.143067592655 79 0.00000000000 80 0.715337963274 81 0.143067592655 82 0.545019400590E-01 83 0.715337963274 84 0.143067592655 85 0.00000000000 86 0.858405555929 87 0.143067592655 88 0.545019400590E-01 89 0.858405555929 90 0.143067592655 91 0.00000000000 92 1.00147314858 93 0.143067592655 94 0.545019400590E-01 95 1.00147314858 96 0.143067592655 97 0.00000000000 98 0.00000000000 99 0.286135185310 100 0.545019400590E-01 101 0.00000000000 102 0.286135185310 103 0.00000000000 104 0.143067592655 105 0.286135185310 106 0.545019400590E-01 107 0.143067592655 108 0.286135185310 109 0.00000000000 110 0.286135185310 111 0.286135185310 112 0.545019400590E-01 113 0.286135185310 114 0.286135185310 115 0.00000000000 116 0.429202777965 117 0.286135185310 118 0.545019400590E-01 119 0.429202777965 120 0.286135185310 121 0.00000000000 122 0.572270370619 123 0.286135185310 124 0.545019400590E-01 125 0.572270370619 126 0.286135185310 127 0.00000000000 128 0.715337963274 129 0.286135185310 130 0.545019400590E-01 131 0.715337963274 132 0.286135185310 133 0.00000000000 134 0.858405555929 135 0.286135185310 136 0.545019400590E-01 137 0.858405555929 138 0.286135185310 139 0.00000000000 140 1.00147314858 141 0.286135185310 142 0.545019400590E-01 143 1.00147314858 144 0.286135185310 145 0.00000000000 146 0.00000000000 147 0.429202777965 148 0.545019400590E-01 149 0.00000000000 150 0.429202777965 151 0.00000000000 152 0.143067592655 153 0.429202777965 154 0.545019400590E-01 155 0.143067592655 156 0.429202777965 157 0.00000000000 158 0.286135185310 159 0.429202777965 160 0.545019400590E-01 161 0.286135185310 162 0.429202777965 163 0.00000000000 164 0.429202777965 165 0.429202777965 166 0.545019400590E-01 167 0.429202777965 168 0.429202777965 169 0.00000000000 170 0.572270370619 171 0.429202777965 172 0.545019400590E-01 173 0.572270370619 174 0.429202777965 175 0.00000000000 176 0.715337963274 177 0.429202777965 178 0.545019400590E-01 179 0.715337963274 180 0.429202777965 181 0.00000000000 182 0.858405555929 183 0.429202777965 184 0.545019400590E-01 185 0.858405555929 186 0.429202777965 187 0.00000000000 188 1.00147314858 189 0.429202777965 190 0.545019400590E-01 191 1.00147314858 192 0.429202777965 193 0.00000000000 194 0.00000000000 195 0.572270370619 196 0.545019400590E-01 197 0.00000000000 198 0.572270370619 199 0.00000000000 200 0.143067592655 201 0.572270370619 202 0.545019400590E-01 203 0.143067592655 204 0.572270370619 205 0.00000000000 206 0.286135185310 207 0.572270370619 208 0.545019400590E-01 209 0.286135185310 210 0.572270370619 211 0.00000000000 212 0.429202777965 213 0.572270370619 214 0.545019400590E-01 215 0.429202777965 216 0.572270370619 217 0.00000000000 218 0.572270370619 219 0.572270370619 220 0.545019400590E-01 221 0.572270370619 222 0.572270370619 223 0.00000000000 224 0.715337963274 225 0.572270370619 226 0.545019400590E-01 227 0.715337963274 228 0.572270370619 229 0.00000000000 230 0.858405555929 231 0.572270370619 232 0.545019400590E-01 233 0.858405555929 234 0.572270370619 235 0.00000000000 236 1.00147314858 237 0.572270370619 238 0.545019400590E-01 239 1.00147314858 240 0.572270370619 241 0.00000000000 242 0.00000000000 243 0.715337963274 244 0.545019400590E-01 245 0.00000000000 246 0.715337963274 247 0.00000000000 248 0.143067592655 249 0.715337963274 250 0.545019400590E-01 251 0.143067592655 252 0.715337963274 253 0.00000000000 254 0.286135185310 255 0.715337963274 256 0.545019400590E-01 257 0.286135185310 258 0.715337963274 259 0.00000000000 260 0.429202777965 261 0.715337963274 262 0.545019400590E-01 263 0.429202777965 264 0.715337963274 265 0.00000000000 266 0.572270370619 267 0.715337963274 268 0.545019400590E-01 269 0.572270370619 270 0.715337963274 271 0.00000000000 272 0.715337963274 273 0.715337963274 274 0.545019400590E-01 275 0.715337963274 276 0.715337963274 277 0.00000000000 278 0.858405555929 279 0.715337963274 280 0.545019400590E-01 281 0.858405555929 282 0.715337963274 283 0.00000000000 284 1.00147314858 285 0.715337963274 286 0.545019400590E-01 287 1.00147314858 288 0.715337963274 289 0.00000000000 290 0.00000000000 291 0.858405555929 292 0.545019400590E-01 293 0.00000000000 294 0.858405555929 295 0.00000000000 296 0.143067592655 297 0.858405555929 298 0.545019400590E-01 299 0.143067592655 300 0.858405555929 301 0.00000000000 302 0.286135185310 303 0.858405555929 304 0.545019400590E-01 305 0.286135185310 306 0.858405555929 307 0.00000000000 308 0.429202777965 309 0.858405555929 310 0.545019400590E-01 311 0.429202777965 312 0.858405555929 313 0.00000000000 314 0.572270370619 315 0.858405555929 316 0.545019400590E-01 317 0.572270370619 318 0.858405555929 319 0.00000000000 320 0.715337963274 321 0.858405555929 322 0.545019400590E-01 323 0.715337963274 324 0.858405555929 325 0.00000000000 326 0.858405555929 327 0.858405555929 328 0.545019400590E-01 329 0.858405555929 330 0.858405555929 331 0.00000000000 332 1.00147314858 333 0.858405555929 334 0.545019400590E-01 335 1.00147314858 336 0.858405555929 337 0.00000000000 338 0.00000000000 339 1.00147314858 340 0.545019400590E-01 341 0.00000000000 342 1.00147314858 343 0.00000000000 344 0.143067592655 345 1.00147314858 346 0.545019400590E-01 347 0.143067592655 348 1.00147314858 349 0.00000000000 350 0.286135185310 351 1.00147314858 352 0.545019400590E-01 353 0.286135185310 354 1.00147314858 355 0.00000000000 356 0.429202777965 357 1.00147314858 358 0.545019400590E-01 359 0.429202777965 360 1.00147314858 361 0.00000000000 362 0.572270370619 363 1.00147314858 364 0.545019400590E-01 365 0.572270370619 366 1.00147314858 367 0.00000000000 368 0.715337963274 369 1.00147314858 370 0.545019400590E-01 371 0.715337963274 372 1.00147314858 373 0.00000000000 374 0.858405555929 375 1.00147314858 376 0.545019400590E-01 377 0.858405555929 378 1.00147314858 379 0.00000000000 380 1.00147314858 381 1.00147314858 382 0.545019400590E-01 383 1.00147314858 384 1.00147314858 elk-9.6.8/tests/test_029/PaxHeaders/Cr.in0000644000000000000000000000013214626155522015006 xustar0030 mtime=1717099346.802001563 30 atime=1717099346.802001563 30 ctime=1717099346.802001563 elk-9.6.8/tests/test_029/Cr.in0000644002504400250440000000335214626155522017533 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-9.6.8/tests/test_029/PaxHeaders/TEST_900.OUT_0000644000000000000000000000013214626155522016011 xustar0030 mtime=1717099346.804001573 30 atime=1717099346.804001573 30 ctime=1717099346.804001573 elk-9.6.8/tests/test_029/TEST_900.OUT_0000644002504400250440000000007014626155522020530 0ustar00dewhurstdewhurst00000000000000'number of G-vectors' 1 1 1 4801 elk-9.6.8/tests/test_029/PaxHeaders/elk.in0000644000000000000000000000013214626155522015215 xustar0030 mtime=1717099346.806001584 30 atime=1717099346.806001584 30 ctime=1717099346.806001584 elk-9.6.8/tests/test_029/elk.in0000644002504400250440000000070214626155522017736 0ustar00dewhurstdewhurst00000000000000 ! Ultra long-range non-collinear calculation of bcc-Cr. tasks 0 700 500 test .true. maxscl 4 mixtype 0 ngridk 1 8 8 nempty 4 rndbfcu 0.2 spinorb .true. cmagz .true. avec 1.0 0.0 0.0 0.0 1.0 0.0 0.0 0.0 1.0 scale 5.4897 avecu 21.0 0.0 0.0 0.0 1.0 0.0 0.0 0.0 1.0 scaleu 5.4897 ngridq 3 1 1 atoms 1 'Cr.in' 2 0.0 0.0 0.0 0.0 0.0 0.0 0.5 0.5 0.5 0.0 0.0 0.0 elk-9.6.8/tests/test_029/PaxHeaders/TEST_500.OUT_0000644000000000000000000000013214626155522016005 xustar0030 mtime=1717099346.808001595 30 atime=1717099346.808001595 30 ctime=1717099346.808001595 elk-9.6.8/tests/test_029/TEST_500.OUT_0000644002504400250440000000013514626155522020526 0ustar00dewhurstdewhurst00000000000000'DOS at Fermi energy' 2 1 0.500000000000E-02 1 79.8722898793 elk-9.6.8/tests/test_029/PaxHeaders/TEST_510.OUT_0000644000000000000000000000013214626155522016006 xustar0030 mtime=1717099346.810001606 30 atime=1717099346.810001606 30 ctime=1717099346.810001606 elk-9.6.8/tests/test_029/TEST_510.OUT_0000644002504400250440000000014514626155522020530 0ustar00dewhurstdewhurst00000000000000'estimated indirect band gap' 2 1 0.200000000000E-01 1 0.756127567537E-02 elk-9.6.8/tests/test_029/PaxHeaders/TEST_450.OUT_0000644000000000000000000000013214626155522016011 xustar0030 mtime=1717099346.812001616 30 atime=1717099346.812001616 30 ctime=1717099346.812001616 elk-9.6.8/tests/test_029/TEST_450.OUT_0000644002504400250440000000014014626155522020526 0ustar00dewhurstdewhurst00000000000000'total moment magnitude' 2 1 0.100000000000E-02 1 0.738853444978E-25 elk-9.6.8/tests/test_029/PaxHeaders/TEST_400.OUT_0000644000000000000000000000013214626155522016004 xustar0030 mtime=1717099346.814001627 30 atime=1717099346.814001627 30 ctime=1717099346.814001627 elk-9.6.8/tests/test_029/TEST_400.OUT_0000644002504400250440000000014114626155522020522 0ustar00dewhurstdewhurst00000000000000'calculated total charge' 2 1 0.100000000000E-05 1 48.0029203554 elk-9.6.8/tests/test_029/PaxHeaders/TEST_000.OUT_0000644000000000000000000000013214626155522016000 xustar0030 mtime=1717099346.816001638 30 atime=1717099346.815001633 30 ctime=1717099346.816001638 elk-9.6.8/tests/test_029/TEST_000.OUT_0000644002504400250440000000012614626155522020521 0ustar00dewhurstdewhurst00000000000000'total energy' 2 1 0.100000000000E-04 1 -2090.79946716 elk-9.6.8/tests/test_029/PaxHeaders/TEST_730.OUT_0000644000000000000000000000013214626155522016012 xustar0030 mtime=1717099346.818001649 30 atime=1717099346.817001643 30 ctime=1717099346.818001649 elk-9.6.8/tests/test_029/TEST_730.OUT_0000644002504400250440000000037314626155522020537 0ustar00dewhurstdewhurst00000000000000'ULR muffin-tin charges' 2 6 0.500000000000E-04 1 22.7586593868 2 22.7579252119 3 22.7582561636 4 22.7578127997 5 22.7596025130 6 22.7590624046 elk-9.6.8/tests/test_029/PaxHeaders/TEST_770.OUT_0000644000000000000000000000013014626155522016014 xustar0029 mtime=1717099346.82000166 30 atime=1717099346.819001654 29 ctime=1717099346.82000166 elk-9.6.8/tests/test_029/TEST_770.OUT_0000644002504400250440000000037314626155522020543 0ustar00dewhurstdewhurst00000000000000'ULR muffin-tin moments' 2 6 0.100000000000E-01 1 0.669319719536E-03 2 0.891069242206E-03 3 0.441734270011E-02 4 -0.857753990399E-03 5 -0.778064924729E-03 6 0.223578212669E-02 elk-9.6.8/tests/PaxHeaders/test_0250000644000000000000000000000013214626155522014031 xustar0030 mtime=1717099346.840001767 30 atime=1717099346.821001665 30 ctime=1717099346.840001767 elk-9.6.8/tests/test_025/0000755002504400250440000000000014626155522016630 5ustar00dewhurstdewhurst00000000000000elk-9.6.8/tests/test_025/PaxHeaders/TEST_705.OUT_0000644000000000000000000000013214626155522016010 xustar0030 mtime=1717099346.823001676 30 atime=1717099346.823001676 30 ctime=1717099346.823001676 elk-9.6.8/tests/test_025/TEST_705.OUT_0000644002504400250440000000010114626155522020522 0ustar00dewhurstdewhurst00000000000000'number of crystal symmetries' 1 1 1 8 elk-9.6.8/tests/test_025/PaxHeaders/TEST_900.OUT_0000644000000000000000000000013214626155522016005 xustar0030 mtime=1717099346.825001687 30 atime=1717099346.825001687 30 ctime=1717099346.825001687 elk-9.6.8/tests/test_025/TEST_900.OUT_0000644002504400250440000000007014626155522020524 0ustar00dewhurstdewhurst00000000000000'number of G-vectors' 1 1 1 2133 elk-9.6.8/tests/test_025/PaxHeaders/TEST_910.OUT_0000644000000000000000000000013214626155522016006 xustar0030 mtime=1717099346.827001697 30 atime=1717099346.827001697 30 ctime=1717099346.827001697 elk-9.6.8/tests/test_025/TEST_910.OUT_0000644002504400250440000001622514626155522020536 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-9.6.8/tests/test_025/PaxHeaders/TEST_500.OUT_0000644000000000000000000000013214626155522016001 xustar0030 mtime=1717099346.829001708 30 atime=1717099346.829001708 30 ctime=1717099346.829001708 elk-9.6.8/tests/test_025/TEST_500.OUT_0000644002504400250440000000013514626155522020522 0ustar00dewhurstdewhurst00000000000000'DOS at Fermi energy' 2 1 0.500000000000E-02 1 54.5620341252 elk-9.6.8/tests/test_025/PaxHeaders/TEST_510.OUT_0000644000000000000000000000013214626155522016002 xustar0030 mtime=1717099346.831001719 30 atime=1717099346.831001719 30 ctime=1717099346.831001719 elk-9.6.8/tests/test_025/TEST_510.OUT_0000644002504400250440000000014514626155522020524 0ustar00dewhurstdewhurst00000000000000'estimated indirect band gap' 2 1 0.200000000000E-01 1 0.762250691006E-03 elk-9.6.8/tests/test_025/PaxHeaders/TEST_450.OUT_0000644000000000000000000000013014626155522016003 xustar0029 mtime=1717099346.83300173 30 atime=1717099346.832001724 29 ctime=1717099346.83300173 elk-9.6.8/tests/test_025/TEST_450.OUT_0000644002504400250440000000014014626155522020522 0ustar00dewhurstdewhurst00000000000000'total moment magnitude' 2 1 0.100000000000E-02 1 1.69601933219 elk-9.6.8/tests/test_025/PaxHeaders/TEST_400.OUT_0000644000000000000000000000013014626155522015776 xustar0029 mtime=1717099346.83500174 30 atime=1717099346.834001735 29 ctime=1717099346.83500174 elk-9.6.8/tests/test_025/TEST_400.OUT_0000644002504400250440000000014114626155522020516 0ustar00dewhurstdewhurst00000000000000'calculated total charge' 2 1 0.100000000000E-05 1 26.9957254855 elk-9.6.8/tests/test_025/PaxHeaders/TEST_000.OUT_0000644000000000000000000000013214626155522015774 xustar0030 mtime=1717099346.837001751 30 atime=1717099346.836001746 30 ctime=1717099346.837001751 elk-9.6.8/tests/test_025/TEST_000.OUT_0000644002504400250440000000012614626155522020515 0ustar00dewhurstdewhurst00000000000000'total energy' 2 1 0.100000000000E-04 1 -1391.14531353 elk-9.6.8/tests/test_025/PaxHeaders/TEST_110.OUT_0000644000000000000000000000013214626155522015776 xustar0030 mtime=1717099346.839001762 30 atime=1717099346.838001757 30 ctime=1717099346.839001762 elk-9.6.8/tests/test_025/TEST_110.OUT_0000644002504400250440000000022714626155522020521 0ustar00dewhurstdewhurst00000000000000'hyperfine field' 2 3 0.100000000000E-03 1 -0.423845257787E-20 2 0.363034146506E-20 3 0.115859346902E-03 elk-9.6.8/tests/test_025/PaxHeaders/elk.in0000644000000000000000000000013214626155522015211 xustar0030 mtime=1717099346.840001767 30 atime=1717099346.840001767 30 ctime=1717099346.840001767 elk-9.6.8/tests/test_025/elk.in0000644002504400250440000000111014626155522017724 0ustar00dewhurstdewhurst00000000000000 ! Mossbauer hyperfine field for fcc Co including spin and orbital dipole terms. tasks 0 110 500 test .true. tbdip .true. tjr .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-9.6.8/tests/PaxHeaders/test_0020000644000000000000000000000013214626155522014024 xustar0030 mtime=1717099346.858001864 30 atime=1717099346.841001773 30 ctime=1717099346.858001864 elk-9.6.8/tests/test_002/0000755002504400250440000000000014626155522016623 5ustar00dewhurstdewhurst00000000000000elk-9.6.8/tests/test_002/PaxHeaders/TEST_400.OUT_0000644000000000000000000000013214626155522015773 xustar0030 mtime=1717099346.843001783 30 atime=1717099346.843001783 30 ctime=1717099346.843001783 elk-9.6.8/tests/test_002/TEST_400.OUT_0000644002504400250440000000014114626155522020511 0ustar00dewhurstdewhurst00000000000000'calculated total charge' 2 1 0.100000000000E-05 1 25.9972158453 elk-9.6.8/tests/test_002/PaxHeaders/TEST_450.OUT_0000644000000000000000000000013214626155522016000 xustar0030 mtime=1717099346.845001794 30 atime=1717099346.845001794 30 ctime=1717099346.845001794 elk-9.6.8/tests/test_002/TEST_450.OUT_0000644002504400250440000000014014626155522020515 0ustar00dewhurstdewhurst00000000000000'total moment magnitude' 2 1 0.100000000000E-02 1 2.73291280113 elk-9.6.8/tests/test_002/PaxHeaders/TEST_000.OUT_0000644000000000000000000000013214626155522015767 xustar0030 mtime=1717099346.847001805 30 atime=1717099346.847001805 30 ctime=1717099346.847001805 elk-9.6.8/tests/test_002/TEST_000.OUT_0000644002504400250440000000012614626155522020510 0ustar00dewhurstdewhurst00000000000000'total energy' 2 1 0.100000000000E-04 1 -1270.54887909 elk-9.6.8/tests/test_002/PaxHeaders/TEST_705.OUT_0000644000000000000000000000013214626155522016003 xustar0030 mtime=1717099346.849001816 30 atime=1717099346.849001816 30 ctime=1717099346.849001816 elk-9.6.8/tests/test_002/TEST_705.OUT_0000644002504400250440000000010114626155522020515 0ustar00dewhurstdewhurst00000000000000'number of crystal symmetries' 1 1 1 48 elk-9.6.8/tests/test_002/PaxHeaders/TEST_900.OUT_0000644000000000000000000000013214626155522016000 xustar0030 mtime=1717099346.851001827 30 atime=1717099346.851001827 30 ctime=1717099346.851001827 elk-9.6.8/tests/test_002/TEST_900.OUT_0000644002504400250440000000007014626155522020517 0ustar00dewhurstdewhurst00000000000000'number of G-vectors' 1 1 1 2315 elk-9.6.8/tests/test_002/PaxHeaders/TEST_910.OUT_0000644000000000000000000000013214626155522016001 xustar0030 mtime=1717099346.853001837 30 atime=1717099346.852001832 30 ctime=1717099346.853001837 elk-9.6.8/tests/test_002/TEST_910.OUT_0000644002504400250440000000144714626155522020531 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-9.6.8/tests/test_002/PaxHeaders/TEST_500.OUT_0000644000000000000000000000013214626155522015774 xustar0030 mtime=1717099346.855001848 30 atime=1717099346.854001843 30 ctime=1717099346.855001848 elk-9.6.8/tests/test_002/TEST_500.OUT_0000644002504400250440000000013514626155522020515 0ustar00dewhurstdewhurst00000000000000'DOS at Fermi energy' 2 1 0.500000000000E-02 1 26.9548182054 elk-9.6.8/tests/test_002/PaxHeaders/TEST_510.OUT_0000644000000000000000000000013214626155522015775 xustar0030 mtime=1717099346.856001854 30 atime=1717099346.856001854 30 ctime=1717099346.856001854 elk-9.6.8/tests/test_002/TEST_510.OUT_0000644002504400250440000000014514626155522020517 0ustar00dewhurstdewhurst00000000000000'estimated indirect band gap' 2 1 0.200000000000E-01 1 0.434909656680E-02 elk-9.6.8/tests/test_002/PaxHeaders/elk.in0000644000000000000000000000013214626155522015204 xustar0030 mtime=1717099346.858001864 30 atime=1717099346.858001864 30 ctime=1717099346.858001864 elk-9.6.8/tests/test_002/elk.in0000644002504400250440000000064214626155522017730 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-9.6.8/tests/PaxHeaders/test_0060000644000000000000000000000013214626155522014030 xustar0030 mtime=1717099346.889002031 30 atime=1717099346.860001875 30 ctime=1717099346.889002031 elk-9.6.8/tests/test_006/0000755002504400250440000000000014626155522016627 5ustar00dewhurstdewhurst00000000000000elk-9.6.8/tests/test_006/PaxHeaders/elk.in0000644000000000000000000000013214626155522015210 xustar0030 mtime=1717099346.862001886 30 atime=1717099346.862001886 30 ctime=1717099346.862001886 elk-9.6.8/tests/test_006/elk.in0000644002504400250440000000143414626155522017734 0ustar00dewhurstdewhurst00000000000000 ! GaAs using the Perdew-Burke-Ernzerhof GGA functional and spin-orbit coupling. tasks 0 10 25 120 121 125 180 185 186 187 500 test .true. bsefull .true. swidth 0.01 optcomp 1 2 2 wplot 50 100 4 0.0 0.5 rgkmax 6.0 xctype 20 mixtype 1 epspot 1.e-6 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 vkloff 0.25 0.5 0.625 elk-9.6.8/tests/test_006/PaxHeaders/TEST_187.OUT_0000644000000000000000000000013214626155522016013 xustar0030 mtime=1717099346.864001897 30 atime=1717099346.863001891 30 ctime=1717099346.864001897 elk-9.6.8/tests/test_006/TEST_187.OUT_0000644002504400250440000000523514626155522020542 0ustar00dewhurstdewhurst00000000000000'BSE optical conductivity' 3 50 0.100000000000E-02 1 0.608639785477E-02 0.00000000000 2 -0.288647181622E-02 0.00000000000 3 -0.495713542383E-02 0.00000000000 4 -0.343974990579E-03 0.00000000000 5 0.822368762942E-02 0.00000000000 6 -0.208024865184E-02 0.00000000000 7 0.464370399917E-02 0.00000000000 8 -0.625622256505E-04 0.00000000000 9 0.398966186034E-02 0.00000000000 10 0.624723705963E-02 -0.602868482403E-02 11 -0.297343244966E-02 0.156762829541E-02 12 -0.502495429721E-02 0.139323011595E-04 13 -0.411819643671E-03 0.160539068172E-02 14 0.847953882185E-02 -0.813103132363E-02 15 -0.212817696515E-02 0.104361877402E-02 16 0.470932951023E-02 0.298966364087E-03 17 -0.971523311895E-04 0.106908084428E-02 18 0.406225037307E-02 -0.396417040796E-02 19 0.676700943581E-02 -0.123640890158E-01 20 -0.326084747108E-02 0.327964869434E-02 21 -0.523694421825E-02 0.773481003998E-05 22 -0.641851594397E-03 0.335367454884E-02 23 0.931412120656E-02 -0.167464961120E-01 24 -0.228344213560E-02 0.216659729543E-02 25 0.491655519471E-02 0.623329561330E-03 26 -0.213135120039E-03 0.221415446358E-02 27 0.429176564569E-02 -0.806899795096E-02 28 0.778062911552E-02 -0.193763043847E-01 29 -0.384905884640E-02 0.532492913689E-02 30 -0.562070595521E-02 -0.500235084226E-04 31 -0.113517819841E-02 0.542788164666E-02 32 0.109734133877E-01 -0.264430431387E-01 33 -0.258809734750E-02 0.347066619628E-02 34 0.530093569943E-02 0.100752027402E-02 35 -0.455826631007E-03 0.352834501685E-02 36 0.471895281030E-02 -0.124761534815E-01 37 0.962087518596E-02 -0.275891688492E-01 38 -0.500699533741E-02 0.800572222817E-02 39 -0.622820420938E-02 -0.224383982551E-03 40 -0.216548446555E-02 0.810832407027E-02 41 0.140788692665E-01 -0.380925187933E-01 42 -0.314846034057E-02 0.511623046475E-02 43 0.594076270111E-02 0.151330535573E-02 44 -0.940949098680E-03 0.514405560670E-02 45 0.543595983357E-02 -0.173969163276E-01 46 0.131629536570E-01 -0.378154767794E-01 47 -0.752773932276E-02 0.118437893099E-01 48 -0.713322020833E-02 -0.675608875306E-03 49 -0.453878081367E-02 0.118337324880E-01 50 0.203139355024E-01 -0.530865481485E-01 elk-9.6.8/tests/test_006/PaxHeaders/TEST_000.OUT_0000644000000000000000000000013214626155522015773 xustar0030 mtime=1717099346.866001907 30 atime=1717099346.865001902 30 ctime=1717099346.866001907 elk-9.6.8/tests/test_006/TEST_000.OUT_0000644002504400250440000000012614626155522020514 0ustar00dewhurstdewhurst00000000000000'total energy' 2 1 0.100000000000E-04 1 -4205.36345946 elk-9.6.8/tests/test_006/PaxHeaders/TEST_010.OUT_0000644000000000000000000000013214626155522015774 xustar0030 mtime=1717099346.868001918 30 atime=1717099346.867001913 30 ctime=1717099346.868001918 elk-9.6.8/tests/test_006/TEST_010.OUT_0000644002504400250440000000612014626155522020515 0ustar00dewhurstdewhurst00000000000000'total DOS' 2 100 0.200000000000E-01 1 0.00000000000 2 0.309182304055E-01 3 0.233111292609 4 0.985129960467 5 2.71482491495 6 5.43136653833 7 8.24792420340 8 9.93994764790 9 9.98100856073 10 9.27051859703 11 9.11407276437 12 9.90172745839 13 10.6260961455 14 10.2195804252 15 8.70568393215 16 7.25800117758 17 6.88812998843 18 7.61214139585 19 8.60727032065 20 9.10168560303 21 8.93855442132 22 8.41931473495 23 7.94842815043 24 7.71058319960 25 7.69323679904 26 7.71994090529 27 7.67916691266 28 7.67193970611 29 8.07177985625 30 9.11837113897 31 10.5449462904 32 11.5336529374 33 11.4337748743 34 10.4055176338 35 9.40870534111 36 9.33998740327 37 10.2796061469 38 11.5192753343 39 12.2475967645 40 12.1551269550 41 11.4886300907 42 10.7210984753 43 10.2610390864 44 10.3082290131 45 10.8596144892 46 11.6759975340 47 12.4224781587 48 12.8225370190 49 12.8340426887 50 12.6021632281 51 0.00000000000 52 0.309710094165E-01 53 0.234576086215 54 0.991001063653 55 2.72632396448 56 5.44423697029 57 8.25121699868 58 9.92842119790 59 9.95903981305 60 9.25321655146 61 9.10880524352 62 9.90735674696 63 10.6330524530 64 10.2228326691 65 8.70435405346 66 7.25571958772 67 6.88988623228 68 7.62290981927 69 8.62788009954 70 9.12615005292 71 8.95612095124 72 8.41931860385 73 7.92768868137 74 7.67315389551 75 7.65489725818 76 7.69377607457 77 7.67394768128 78 7.67994696498 79 8.08633707877 80 9.13394515110 81 10.5623015427 82 11.5495112784 83 11.4441629684 84 10.4103427141 85 9.41179151542 86 9.34479009874 87 10.2844891549 88 11.5208491027 89 12.2440812909 90 12.1476353973 91 11.4805597778 92 10.7151562465 93 10.2588744326 94 10.3086191159 95 10.8611868288 96 11.6781392494 97 12.4264176897 98 12.8289690084 99 12.8422280661 100 12.6107552927 elk-9.6.8/tests/test_006/PaxHeaders/TEST_025.OUT_0000644000000000000000000000013214626155522016002 xustar0030 mtime=1717099346.870001929 30 atime=1717099346.869001924 30 ctime=1717099346.870001929 elk-9.6.8/tests/test_006/TEST_025.OUT_0000644002504400250440000000022614626155522020524 0ustar00dewhurstdewhurst00000000000000'effective mass' 2 3 0.100000000000E-04 1 0.709362367709 2 0.709363581245 3 0.709364090021 elk-9.6.8/tests/test_006/PaxHeaders/TEST_121.OUT_0000644000000000000000000000013214626155522015777 xustar0030 mtime=1717099346.871001934 30 atime=1717099346.871001934 30 ctime=1717099346.871001934 elk-9.6.8/tests/test_006/TEST_121.OUT_0000644002504400250440000000523114626155522020522 0ustar00dewhurstdewhurst00000000000000'optical conductivity' 3 50 0.100000000000E-01 1 -0.913488311752E-03 0.00000000000 2 -0.980340155710E-03 0.107047426194E-02 3 -0.101992621064E-02 0.215868713695E-02 4 -0.115286121806E-02 0.356635959057E-02 5 -0.162033670569E-02 0.523270260747E-02 6 -0.244560094663E-02 0.730462946641E-02 7 -0.418120506111E-02 0.101803287314E-01 8 -0.871152829776E-02 0.139317175153E-01 9 -0.197747569024E-01 0.125071397940E-01 10 -0.187330906379E-01 0.256291171794E-02 11 -0.219931638323E-01 0.407988753011E-02 12 -0.269192300853E-01 -0.706762850213E-02 13 -0.123960486120E-01 -0.135551664666E-01 14 -0.485442775083E-02 -0.335638747124E-02 15 -0.259384602648E-01 0.772399519152E-02 16 -0.380285853541E-01 -0.163454411162E-01 17 -0.244731144532E-01 -0.427491119769E-01 18 0.125034894288E-01 -0.390083373551E-01 19 0.149069935572E-01 -0.150119867494E-01 20 0.664536069427E-02 -0.584065546182E-02 21 -0.186536027324E-03 -0.652971644138E-02 22 0.198307817063E-03 -0.129763121876E-01 23 0.436047044687E-02 -0.130532329690E-01 24 0.862892446951E-02 -0.106163920699E-01 25 0.101487140600E-01 -0.547541506791E-02 26 0.881752679781E-02 -0.891251446654E-03 27 0.485211516168E-02 0.827650934017E-03 28 0.281993604839E-02 -0.697682021492E-03 29 0.536225411775E-02 0.115272260513E-02 30 0.882230704259E-03 0.373932515004E-02 31 -0.209763413696E-03 0.208699950207E-02 32 -0.199889637873E-02 0.455726630343E-02 33 -0.695873524470E-02 0.114453265210E-02 34 -0.671185968616E-02 -0.246382313786E-02 35 -0.544124185294E-02 -0.491643577523E-02 36 -0.328989723363E-02 -0.726258652081E-02 37 0.474898554596E-04 -0.609456781938E-02 38 0.158214205765E-03 -0.451249874492E-02 39 0.813134233322E-03 -0.445511269665E-02 40 0.112973360406E-02 -0.276882677855E-02 41 -0.295734119386E-03 -0.213465515603E-02 42 -0.667208109486E-03 -0.353834759999E-02 43 0.370301974375E-03 -0.351366469808E-02 44 0.729067608182E-03 -0.293541767448E-02 45 0.710725132825E-03 -0.278804499167E-02 46 0.873950916013E-03 -0.191612524847E-02 47 0.263184921506E-03 -0.172307607545E-02 48 -0.111916063477E-03 -0.208285313827E-02 49 0.429368478411E-03 -0.204776168713E-02 50 0.211849001545E-04 -0.160604506058E-02 elk-9.6.8/tests/test_006/PaxHeaders/TEST_125.OUT_0000644000000000000000000000013014626155522016001 xustar0029 mtime=1717099346.87400195 30 atime=1717099346.873001945 29 ctime=1717099346.87400195 elk-9.6.8/tests/test_006/TEST_125.OUT_0000644002504400250440000000523614626155522020533 0ustar00dewhurstdewhurst00000000000000'non-linear susceptibility' 3 50 0.100000000000E-01 1 106.982715335 0.122455544858E-14 2 65.0038182261 -59.4662659967 3 23.6854463849 -49.0214649433 4 14.2130086870 -37.3015065994 5 11.4042060673 -37.7116082212 6 -8.31359594092 -36.7743262442 7 -14.2324409428 -18.1471146357 8 -6.62772932510 -5.47416693380 9 5.74832003415 -10.0620000693 10 -5.64031514364 -17.5941681411 11 -8.73702552701 -6.84006170970 12 -6.33809688118 0.267519937970 13 3.69548672206 -0.107932620715 14 3.80685182281 -4.08593133024 15 2.43459061474 -7.06518112598 16 0.506758215630 -4.38102274630 17 2.76492112819 -4.51319386564 18 2.58605192211 -6.84839135917 19 -0.366712587033 -7.03913958879 20 -0.721272057774 -4.46952052836 21 0.452565559552E-01 -4.08791325485 22 0.352771372895 -4.00084980843 23 0.420695466172 -3.89700401357 24 0.573881009112 -3.90713580950 25 0.401963972889 -4.12987995302 26 -0.107151170264E-01 -3.77173753759 27 0.536211503342E-01 -3.39161937827 28 0.240567359063 -3.30801575417 29 0.197146970613 -3.29984029774 30 0.132543699706 -3.18848901298 31 0.897439536949E-01 -3.05652122660 32 0.854936064851E-01 -2.91476515530 33 0.116522850425 -2.81607594775 34 0.146330340814 -2.75270189308 35 0.104934790620 -2.70021093626 36 0.930545774377E-01 -2.60203151678 37 0.109385751853 -2.52081454864 38 0.114269878656 -2.48336017985 39 0.861403250936E-01 -2.41693290450 40 0.898301779926E-01 -2.35308869519 41 0.754203459384E-01 -2.30129804567 42 0.692168585132E-01 -2.23645646286 43 0.716700419345E-01 -2.18123108007 44 0.714290815714E-01 -2.13301311072 45 0.665492411465E-01 -2.09087223394 46 0.593485845000E-01 -2.04201829757 47 0.577556591604E-01 -1.99599211942 48 0.554276568433E-01 -1.95304038383 49 0.543777705563E-01 -1.91083924268 50 0.560580417253E-01 -1.87347213753 elk-9.6.8/tests/test_006/PaxHeaders/TEST_800.OUT_0000644000000000000000000000013214626155522016003 xustar0030 mtime=1717099346.876001961 30 atime=1717099346.875001956 30 ctime=1717099346.876001961 elk-9.6.8/tests/test_006/TEST_800.OUT_0000644002504400250440000000061514626155522020527 0ustar00dewhurstdewhurst00000000000000'regularised Coulomb Green''s function (gclq)' 2 10 0.100000000000E-07 1 1712.43342568 2 221.982051261 3 50.3781715177 4 221.982051260 5 155.992040644 6 54.3472682978 7 78.7344360286 8 36.9525587541 9 54.3472682979 10 29.0461395875 elk-9.6.8/tests/test_006/PaxHeaders/TEST_400.OUT_0000644000000000000000000000013214626155522015777 xustar0030 mtime=1717099346.878001972 30 atime=1717099346.877001967 30 ctime=1717099346.878001972 elk-9.6.8/tests/test_006/TEST_400.OUT_0000644002504400250440000000014114626155522020515 0ustar00dewhurstdewhurst00000000000000'calculated total charge' 2 1 0.100000000000E-05 1 63.9849331228 elk-9.6.8/tests/test_006/PaxHeaders/TEST_450.OUT_0000644000000000000000000000013214626155522016004 xustar0030 mtime=1717099346.879001977 30 atime=1717099346.879001977 30 ctime=1717099346.879001977 elk-9.6.8/tests/test_006/TEST_450.OUT_0000644002504400250440000000014014626155522020521 0ustar00dewhurstdewhurst00000000000000'total moment magnitude' 2 1 0.100000000000E-02 1 0.435453955995E-20 elk-9.6.8/tests/test_006/PaxHeaders/TEST_900.OUT_0000644000000000000000000000013214626155522016004 xustar0030 mtime=1717099346.881001988 30 atime=1717099346.881001988 30 ctime=1717099346.881001988 elk-9.6.8/tests/test_006/TEST_900.OUT_0000644002504400250440000000007014626155522020523 0ustar00dewhurstdewhurst00000000000000'number of G-vectors' 1 1 1 8873 elk-9.6.8/tests/test_006/PaxHeaders/TEST_910.OUT_0000644000000000000000000000013214626155522016005 xustar0030 mtime=1717099346.883001999 30 atime=1717099346.883001999 30 ctime=1717099346.883001999 elk-9.6.8/tests/test_006/TEST_910.OUT_0000644002504400250440000001357714626155522020544 0ustar00dewhurstdewhurst00000000000000'k-points (Cartesian)' 2 192 0.100000000000E-07 1 0.183727464068E-01 2 0.551182392204E-01 3 0.128609224848 4 0.165354717661 5 0.202100210475 6 -0.183727464068E-01 7 0.312336688915 8 0.349082181729 9 -0.165354717661 10 0.459318660170 11 0.496064152983 12 -0.312336688915 13 0.165354717661 14 -0.918637320339E-01 15 0.275591196102 16 0.312336688915 17 0.551182392204E-01 18 0.128609224848 19 0.459318660170 20 0.202100210475 21 -0.183727464068E-01 22 0.606300631424 23 0.349082181729 24 -0.165354717661 25 0.312336688915 26 -0.238845703288 27 0.422573167356 28 0.459318660170 29 -0.918637320339E-01 30 0.275591196102 31 0.606300631424 32 0.551182392204E-01 33 0.128609224848 34 0.753282602678 35 0.202100210475 36 -0.183727464068E-01 37 0.459318660170 38 -0.385827674543 39 0.569555138610 40 0.606300631424 41 -0.238845703288 42 0.422573167356 43 0.753282602678 44 -0.918637320339E-01 45 0.275591196102 46 0.900264573933 47 0.551182392204E-01 48 0.128609224848 49 -0.128609224848 50 0.202100210475 51 0.275591196102 52 0.183727464068E-01 53 0.349082181729 54 0.128609224848 55 0.165354717661 56 0.496064152983 57 -0.183727464068E-01 58 0.312336688915 59 0.643046124238 60 -0.165354717661 61 0.183727464068E-01 62 0.551182392204E-01 63 0.422573167356 64 0.165354717661 65 0.202100210475 66 0.275591196102 67 0.312336688915 68 0.349082181729 69 0.128609224848 70 0.459318660170 71 0.496064152983 72 -0.183727464068E-01 73 0.165354717661 74 -0.918637320339E-01 75 0.569555138610 76 0.312336688915 77 0.551182392204E-01 78 0.422573167356 79 0.459318660170 80 0.202100210475 81 0.275591196102 82 0.606300631424 83 0.349082181729 84 0.128609224848 85 0.312336688915 86 -0.238845703288 87 0.716537109865 88 0.459318660170 89 -0.918637320339E-01 90 0.569555138610 91 0.606300631424 92 0.551182392204E-01 93 0.422573167356 94 0.753282602678 95 0.202100210475 96 0.275591196102 97 -0.275591196102 98 0.349082181729 99 0.422573167356 100 -0.128609224848 101 0.496064152983 102 0.275591196102 103 0.183727464068E-01 104 0.643046124238 105 0.128609224848 106 0.165354717661 107 0.790028095492 108 -0.183727464068E-01 109 -0.128609224848 110 0.202100210475 111 0.569555138610 112 0.183727464068E-01 113 0.349082181729 114 0.422573167356 115 0.165354717661 116 0.496064152983 117 0.275591196102 118 0.312336688915 119 0.643046124238 120 0.128609224848 121 0.183727464068E-01 122 0.551182392204E-01 123 0.716537109865 124 0.165354717661 125 0.202100210475 126 0.569555138610 127 0.312336688915 128 0.349082181729 129 0.422573167356 130 0.459318660170 131 0.496064152983 132 0.275591196102 133 0.165354717661 134 -0.918637320339E-01 135 0.863519081119 136 0.312336688915 137 0.551182392204E-01 138 0.716537109865 139 0.459318660170 140 0.202100210475 141 0.569555138610 142 0.606300631424 143 0.349082181729 144 0.422573167356 145 -0.422573167356 146 0.496064152983 147 0.569555138610 148 -0.275591196102 149 0.643046124238 150 0.422573167356 151 -0.128609224848 152 0.790028095492 153 0.275591196102 154 0.183727464068E-01 155 0.937010066746 156 0.128609224848 157 -0.275591196102 158 0.349082181729 159 0.716537109865 160 -0.128609224848 161 0.496064152983 162 0.569555138610 163 0.183727464068E-01 164 0.643046124238 165 0.422573167356 166 0.165354717661 167 0.790028095492 168 0.275591196102 169 -0.128609224848 170 0.202100210475 171 0.863519081119 172 0.183727464068E-01 173 0.349082181729 174 0.716537109865 175 0.165354717661 176 0.496064152983 177 0.569555138610 178 0.312336688915 179 0.643046124238 180 0.422573167356 181 0.183727464068E-01 182 0.551182392204E-01 183 1.01050105237 184 0.165354717661 185 0.202100210475 186 0.863519081119 187 0.312336688915 188 0.349082181729 189 0.716537109865 190 0.459318660170 191 0.496064152983 192 0.569555138610 elk-9.6.8/tests/test_006/PaxHeaders/TEST_705.OUT_0000644000000000000000000000012714626155522016013 xustar0029 mtime=1717099346.88500201 29 atime=1717099346.88500201 29 ctime=1717099346.88500201 elk-9.6.8/tests/test_006/TEST_705.OUT_0000644002504400250440000000010114626155522020521 0ustar00dewhurstdewhurst00000000000000'number of crystal symmetries' 1 1 1 24 elk-9.6.8/tests/test_006/PaxHeaders/TEST_500.OUT_0000644000000000000000000000013214626155522016000 xustar0030 mtime=1717099346.887002021 30 atime=1717099346.887002021 30 ctime=1717099346.887002021 elk-9.6.8/tests/test_006/TEST_500.OUT_0000644002504400250440000000013514626155522020521 0ustar00dewhurstdewhurst00000000000000'DOS at Fermi energy' 2 1 0.500000000000E-02 1 1.11338916486 elk-9.6.8/tests/test_006/PaxHeaders/TEST_510.OUT_0000644000000000000000000000013214626155522016001 xustar0030 mtime=1717099346.889002031 30 atime=1717099346.889002031 30 ctime=1717099346.889002031 elk-9.6.8/tests/test_006/TEST_510.OUT_0000644002504400250440000000014514626155522020523 0ustar00dewhurstdewhurst00000000000000'estimated indirect band gap' 2 1 0.200000000000E-01 1 0.683325266712E-01 elk-9.6.8/tests/PaxHeaders/test_0100000644000000000000000000000013214626155522014023 xustar0030 mtime=1717099346.906002123 30 atime=1717099346.891002042 30 ctime=1717099346.906002123 elk-9.6.8/tests/test_010/0000755002504400250440000000000014626155522016622 5ustar00dewhurstdewhurst00000000000000elk-9.6.8/tests/test_010/PaxHeaders/elk.in0000644000000000000000000000013214626155522015203 xustar0030 mtime=1717099346.893002053 30 atime=1717099346.893002053 30 ctime=1717099346.893002053 elk-9.6.8/tests/test_010/elk.in0000644002504400250440000000103614626155522017725 0ustar00dewhurstdewhurst00000000000000 ! Water molecule in a box. tasks 0 500 test .true. xctype 2 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 7.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-9.6.8/tests/test_010/PaxHeaders/TEST_400.OUT_0000644000000000000000000000013214626155522015772 xustar0030 mtime=1717099346.895002064 30 atime=1717099346.895002064 30 ctime=1717099346.895002064 elk-9.6.8/tests/test_010/TEST_400.OUT_0000644002504400250440000000014114626155522020510 0ustar00dewhurstdewhurst00000000000000'calculated total charge' 2 1 0.100000000000E-05 1 9.99660565443 elk-9.6.8/tests/test_010/PaxHeaders/TEST_000.OUT_0000644000000000000000000000013214626155522015766 xustar0030 mtime=1717099346.897002074 30 atime=1717099346.896002069 30 ctime=1717099346.897002074 elk-9.6.8/tests/test_010/TEST_000.OUT_0000644002504400250440000000012614626155522020507 0ustar00dewhurstdewhurst00000000000000'total energy' 2 1 0.100000000000E-04 1 -79.0782174524 elk-9.6.8/tests/test_010/PaxHeaders/TEST_705.OUT_0000644000000000000000000000013114626155522016001 xustar0030 mtime=1717099346.899002085 29 atime=1717099346.89800208 30 ctime=1717099346.899002085 elk-9.6.8/tests/test_010/TEST_705.OUT_0000644002504400250440000000010114626155522020514 0ustar00dewhurstdewhurst00000000000000'number of crystal symmetries' 1 1 1 2 elk-9.6.8/tests/test_010/PaxHeaders/TEST_900.OUT_0000644000000000000000000000013214626155522015777 xustar0030 mtime=1717099346.901002096 30 atime=1717099346.900002091 30 ctime=1717099346.901002096 elk-9.6.8/tests/test_010/TEST_900.OUT_0000644002504400250440000000007014626155522020516 0ustar00dewhurstdewhurst00000000000000'number of G-vectors' 1 1 1 9771 elk-9.6.8/tests/test_010/PaxHeaders/TEST_910.OUT_0000644000000000000000000000013214626155522016000 xustar0030 mtime=1717099346.902002101 30 atime=1717099346.902002101 30 ctime=1717099346.902002101 elk-9.6.8/tests/test_010/TEST_910.OUT_0000644002504400250440000000023414626155522020521 0ustar00dewhurstdewhurst00000000000000'k-points (Cartesian)' 2 3 0.100000000000E-07 1 0.00000000000 2 0.00000000000 3 0.00000000000 elk-9.6.8/tests/test_010/PaxHeaders/TEST_500.OUT_0000644000000000000000000000013214626155522015773 xustar0030 mtime=1717099346.904002112 30 atime=1717099346.904002112 30 ctime=1717099346.904002112 elk-9.6.8/tests/test_010/TEST_500.OUT_0000644002504400250440000000013514626155522020514 0ustar00dewhurstdewhurst00000000000000'DOS at Fermi energy' 2 1 0.500000000000E-02 1 0.666133815123E-12 elk-9.6.8/tests/test_010/PaxHeaders/TEST_510.OUT_0000644000000000000000000000013214626155522015774 xustar0030 mtime=1717099346.906002123 30 atime=1717099346.906002123 30 ctime=1717099346.906002123 elk-9.6.8/tests/test_010/TEST_510.OUT_0000644002504400250440000000014514626155522020516 0ustar00dewhurstdewhurst00000000000000'estimated indirect band gap' 2 1 0.200000000000E-01 1 0.184259173453 elk-9.6.8/tests/PaxHeaders/test_0140000644000000000000000000000013214626155522014027 xustar0030 mtime=1717099346.929002247 30 atime=1717099346.908002134 30 ctime=1717099346.929002247 elk-9.6.8/tests/test_014/0000755002504400250440000000000014626155522016626 5ustar00dewhurstdewhurst00000000000000elk-9.6.8/tests/test_014/PaxHeaders/elk.in0000644000000000000000000000013214626155522015207 xustar0030 mtime=1717099346.910002144 30 atime=1717099346.910002144 30 ctime=1717099346.910002144 elk-9.6.8/tests/test_014/elk.in0000644002504400250440000000072614626155522017736 0ustar00dewhurstdewhurst00000000000000 ! Optimised effective potential (OEP) test tasks 0 500 test .true. xctype -1 maxscl 2 maxitoep 20 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 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 4 4 4 ngridq 2 2 2 elk-9.6.8/tests/test_014/PaxHeaders/TEST_400.OUT_0000644000000000000000000000013114626155522015775 xustar0030 mtime=1717099346.912002155 29 atime=1717099346.91100215 30 ctime=1717099346.912002155 elk-9.6.8/tests/test_014/TEST_400.OUT_0000644002504400250440000000014114626155522020514 0ustar00dewhurstdewhurst00000000000000'calculated total charge' 2 1 0.100000000000E-05 1 27.9762758549 elk-9.6.8/tests/test_014/PaxHeaders/TEST_000.OUT_0000644000000000000000000000013214626155522015772 xustar0030 mtime=1717099346.914002166 30 atime=1717099346.913002161 30 ctime=1717099346.914002166 elk-9.6.8/tests/test_014/TEST_000.OUT_0000644002504400250440000000012614626155522020513 0ustar00dewhurstdewhurst00000000000000'total energy' 2 1 0.100000000000E-04 1 -515.458934243 elk-9.6.8/tests/test_014/PaxHeaders/TEST_500.OUT_0000644000000000000000000000013214626155522015777 xustar0030 mtime=1717099346.916002177 30 atime=1717099346.916002177 30 ctime=1717099346.916002177 elk-9.6.8/tests/test_014/TEST_500.OUT_0000644002504400250440000000013514626155522020520 0ustar00dewhurstdewhurst00000000000000'DOS at Fermi energy' 2 1 0.500000000000E-02 1 134.107457656 elk-9.6.8/tests/test_014/PaxHeaders/TEST_510.OUT_0000644000000000000000000000013214626155522016000 xustar0030 mtime=1717099346.919002193 30 atime=1717099346.919002193 30 ctime=1717099346.919002193 elk-9.6.8/tests/test_014/TEST_510.OUT_0000644002504400250440000000014514626155522020522 0ustar00dewhurstdewhurst00000000000000'estimated indirect band gap' 2 1 0.200000000000E-01 1 0.403529075049E-02 elk-9.6.8/tests/test_014/PaxHeaders/TEST_705.OUT_0000644000000000000000000000013214626155522016006 xustar0030 mtime=1717099346.921002204 30 atime=1717099346.921002204 30 ctime=1717099346.921002204 elk-9.6.8/tests/test_014/TEST_705.OUT_0000644002504400250440000000010114626155522020520 0ustar00dewhurstdewhurst00000000000000'number of crystal symmetries' 1 1 1 48 elk-9.6.8/tests/test_014/PaxHeaders/TEST_900.OUT_0000644000000000000000000000012714626155522016007 xustar0029 mtime=1717099346.92400222 29 atime=1717099346.92400222 29 ctime=1717099346.92400222 elk-9.6.8/tests/test_014/TEST_900.OUT_0000644002504400250440000000007014626155522020522 0ustar00dewhurstdewhurst00000000000000'number of G-vectors' 1 1 1 7799 elk-9.6.8/tests/test_014/PaxHeaders/TEST_910.OUT_0000644000000000000000000000013214626155522016004 xustar0030 mtime=1717099346.927002236 30 atime=1717099346.926002231 30 ctime=1717099346.927002236 elk-9.6.8/tests/test_014/TEST_910.OUT_0000644002504400250440000000144714626155522020534 0ustar00dewhurstdewhurst00000000000000'k-points (Cartesian)' 2 24 0.100000000000E-07 1 0.00000000000 2 0.00000000000 3 0.00000000000 4 0.153099057192 5 0.153099057192 6 -0.153099057192 7 0.306198114385 8 0.306198114385 9 -0.306198114385 10 0.306198114385 11 0.00000000000 12 0.00000000000 13 0.459297171577 14 0.153099057192 15 -0.153099057192 16 0.612396228770 17 0.306198114385 18 -0.306198114385 19 0.612396228770 20 0.00000000000 21 0.00000000000 22 0.612396228770 23 0.306198114385 24 0.00000000000 elk-9.6.8/tests/test_014/PaxHeaders/TEST_800.OUT_0000644000000000000000000000013214626155522016002 xustar0030 mtime=1717099346.929002247 30 atime=1717099346.929002247 30 ctime=1717099346.929002247 elk-9.6.8/tests/test_014/TEST_800.OUT_0000644002504400250440000000026414626155522020526 0ustar00dewhurstdewhurst00000000000000'regularised Coulomb Green''s function (gclq)' 2 3 0.100000000000E-07 1 394.581580334 2 51.1494504119 3 35.9439292598 elk-9.6.8/tests/PaxHeaders/test_0180000644000000000000000000000013214626155522014033 xustar0030 mtime=1717099346.948002349 30 atime=1717099346.930002252 30 ctime=1717099346.948002349 elk-9.6.8/tests/test_018/0000755002504400250440000000000014626155522016632 5ustar00dewhurstdewhurst00000000000000elk-9.6.8/tests/test_018/PaxHeaders/TEST_705.OUT_0000644000000000000000000000013214626155522016012 xustar0030 mtime=1717099346.932002263 30 atime=1717099346.932002263 30 ctime=1717099346.932002263 elk-9.6.8/tests/test_018/TEST_705.OUT_0000644002504400250440000000010114626155522020524 0ustar00dewhurstdewhurst00000000000000'number of crystal symmetries' 1 1 1 48 elk-9.6.8/tests/test_018/PaxHeaders/TEST_900.OUT_0000644000000000000000000000013214626155522016007 xustar0030 mtime=1717099346.934002274 30 atime=1717099346.934002274 30 ctime=1717099346.934002274 elk-9.6.8/tests/test_018/TEST_900.OUT_0000644002504400250440000000007014626155522020526 0ustar00dewhurstdewhurst00000000000000'number of G-vectors' 1 1 1 3511 elk-9.6.8/tests/test_018/PaxHeaders/elk.in0000644000000000000000000000013214626155522015213 xustar0030 mtime=1717099346.936002285 30 atime=1717099346.936002285 30 ctime=1717099346.936002285 elk-9.6.8/tests/test_018/elk.in0000644002504400250440000000067614626155522017746 0ustar00dewhurstdewhurst00000000000000 tasks 0 205 210 500 test .true. wplot 200 100 10 0.0 1.0 swidth 0.01 rgkmax 6.5 lmaxi 2 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-9.6.8/tests/test_018/PaxHeaders/TEST_910.OUT_0000644000000000000000000000013214626155522016010 xustar0030 mtime=1717099346.938002295 30 atime=1717099346.938002295 30 ctime=1717099346.938002295 elk-9.6.8/tests/test_018/TEST_910.OUT_0000644002504400250440000000144714626155522020540 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-9.6.8/tests/test_018/PaxHeaders/TEST_800.OUT_0000644000000000000000000000013214626155522016006 xustar0030 mtime=1717099346.940002306 30 atime=1717099346.939002301 30 ctime=1717099346.940002306 elk-9.6.8/tests/test_018/TEST_800.OUT_0000644002504400250440000000026414626155522020532 0ustar00dewhurstdewhurst00000000000000'regularised Coulomb Green''s function (gclq)' 2 3 0.100000000000E-07 1 231.402239370 2 29.8969231706 3 12.8329633332 elk-9.6.8/tests/test_018/PaxHeaders/TEST_510.OUT_0000644000000000000000000000013214626155522016004 xustar0030 mtime=1717099346.942002317 30 atime=1717099346.941002311 30 ctime=1717099346.942002317 elk-9.6.8/tests/test_018/TEST_510.OUT_0000644002504400250440000000014514626155522020526 0ustar00dewhurstdewhurst00000000000000'estimated indirect band gap' 2 1 0.200000000000E-01 1 0.157006991881E-01 elk-9.6.8/tests/test_018/PaxHeaders/TEST_500.OUT_0000644000000000000000000000013214626155522016003 xustar0030 mtime=1717099346.943002322 30 atime=1717099346.943002322 30 ctime=1717099346.943002322 elk-9.6.8/tests/test_018/TEST_500.OUT_0000644002504400250440000000013514626155522020524 0ustar00dewhurstdewhurst00000000000000'DOS at Fermi energy' 2 1 0.500000000000E-02 1 25.5286980136 elk-9.6.8/tests/test_018/PaxHeaders/TEST_400.OUT_0000644000000000000000000000013214626155522016002 xustar0030 mtime=1717099346.945002333 30 atime=1717099346.945002333 30 ctime=1717099346.945002333 elk-9.6.8/tests/test_018/TEST_400.OUT_0000644002504400250440000000014114626155522020520 0ustar00dewhurstdewhurst00000000000000'calculated total charge' 2 1 0.100000000000E-05 1 41.0025916572 elk-9.6.8/tests/test_018/PaxHeaders/TEST_000.OUT_0000644000000000000000000000013214626155522015776 xustar0030 mtime=1717099346.947002344 30 atime=1717099346.947002344 30 ctime=1717099346.947002344 elk-9.6.8/tests/test_018/TEST_000.OUT_0000644002504400250440000000012614626155522020517 0ustar00dewhurstdewhurst00000000000000'total energy' 2 1 0.100000000000E-04 1 -3816.44181122 elk-9.6.8/tests/test_018/PaxHeaders/TEST_210.OUT_0000644000000000000000000000013214626155522016001 xustar0030 mtime=1717099346.949002355 30 atime=1717099346.949002355 30 ctime=1717099346.949002355 elk-9.6.8/tests/test_018/TEST_210.OUT_0000644002504400250440000001415514626155522020531 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.766513640908E-05 9 0.766513640908E-04 10 0.452243048136E-03 11 0.194694464791E-02 12 0.679897599486E-02 13 0.202972812112E-01 14 0.536968355911E-01 15 0.128508566944 16 0.281742308898 17 0.569044396737 18 1.06247222280 19 1.83955608682 20 2.96931287701 21 4.50259310833 22 6.47785277013 23 8.93302151242 24 11.9136174702 25 15.4582754861 26 19.5802460259 27 24.2573819554 28 29.4570144632 29 35.1662150194 30 41.4130405782 31 48.2442765771 32 55.6915646994 33 63.7392987272 34 72.3363470906 35 81.4306073024 36 91.0113379515 37 101.113308097 38 111.788926830 39 123.080945174 40 135.035895614 41 147.749929624 42 161.369665931 43 176.020547049 44 191.695817437 45 208.241888201 46 225.459036548 47 243.259440455 48 261.714886479 49 280.979280339 50 301.149918166 51 322.222170219 52 344.147357770 53 366.939155424 54 390.703372723 55 415.585585938 56 441.678287715 57 469.002899555 58 497.569621199 59 527.478998798 60 558.934536612 61 592.168360522 62 627.328468983 63 664.475401241 64 703.672655287 65 745.079686399 66 788.896769259 67 835.200892499 68 883.845478270 69 934.584174198 70 987.370795281 71 1042.57849569 72 1100.95474376 73 1163.34038450 74 1230.43652752 75 1302.81296838 76 1381.17120505 77 1466.65047608 78 1561.01979276 79 1666.66062099 80 1786.29382358 81 1922.32880840 82 2075.80975612 83 2245.21057383 84 2425.69382462 85 2609.46033438 86 2787.39973080 87 2951.50399036 88 3097.06038789 89 3223.68684702 90 3334.94605672 91 3436.88298883 92 3536.23374991 93 3638.88754091 94 3749.01530493 95 3868.96399431 96 3999.86884131 97 4142.51412735 98 4297.63695750 99 4464.75266008 100 4639.27034472 101 4809.14426998 102 4953.65342592 103 5046.92078215 104 5066.26262455 105 5002.00824909 106 4863.14469096 107 4675.03870219 108 4470.02643234 109 4276.26576002 110 4110.62841186 111 3978.22201063 112 3876.55730328 113 3800.50892992 114 3745.26847894 115 3707.09855758 116 3683.11805568 117 3671.19300438 118 3670.09816740 119 3679.64153306 120 3700.61992807 121 3734.57312504 122 3783.47269413 123 3849.41681824 124 3934.81720991 125 4043.15608439 126 4179.81712179 127 4351.34806558 128 4562.11791066 129 4809.00887812 130 5077.33583391 131 5341.41839926 132 5571.08011257 133 5741.35389734 134 5840.48969478 135 5872.15096741 136 5851.28618760 137 5796.38247884 138 5722.06185533 139 5634.82933509 140 5532.98126746 141 5410.08003397 142 5260.32492765 143 5083.42841648 144 4886.63905202 145 4682.95548503 146 4486.59988042 147 4308.38705070 148 4153.19548472 149 4020.27258105 150 3905.36822340 151 3803.35290504 152 3710.18417612 153 3623.87370537 154 3544.40584567 155 3473.06384307 156 3411.69311237 157 3362.45721754 158 3328.13332436 159 3312.61915981 160 3321.07956945 161 3359.35550476 162 3432.65627931 163 3544.07954848 164 3693.83002249 165 3879.75887746 166 4098.87866223 167 4348.25740593 168 4623.18954773 169 4911.81966644 170 5188.45618710 171 5410.90525233 172 5527.15308610 173 5491.83197401 174 5285.39010001 175 4924.66386980 176 4457.31422264 177 3942.50117189 178 3428.85647190 179 2941.59195207 180 2483.69139961 181 2047.42696197 182 1627.82251947 183 1230.65949101 184 871.987037007 185 570.925635836 186 340.630460324 187 182.536607969 188 86.4628000155 189 35.5133434969 190 12.3367151147 191 3.49800033056 192 0.765333209901 193 0.116356770690 194 0.948943887444E-02 195 0.00000000000 196 0.00000000000 197 0.00000000000 198 0.00000000000 199 0.00000000000 200 0.00000000000 elk-9.6.8/tests/PaxHeaders/test_0280000644000000000000000000000013114626155522014033 xustar0030 mtime=1717099346.969002462 29 atime=1717099346.95000236 30 ctime=1717099346.969002462 elk-9.6.8/tests/test_028/0000755002504400250440000000000014626155522016633 5ustar00dewhurstdewhurst00000000000000elk-9.6.8/tests/test_028/PaxHeaders/TEST_400.OUT_0000644000000000000000000000013214626155522016003 xustar0030 mtime=1717099346.952002371 30 atime=1717099346.952002371 30 ctime=1717099346.952002371 elk-9.6.8/tests/test_028/TEST_400.OUT_0000644002504400250440000000014114626155522020521 0ustar00dewhurstdewhurst00000000000000'calculated total charge' 2 1 0.100000000000E-05 1 155.997879269 elk-9.6.8/tests/test_028/PaxHeaders/TEST_000.OUT_0000644000000000000000000000013214626155522015777 xustar0030 mtime=1717099346.954002382 30 atime=1717099346.954002382 30 ctime=1717099346.954002382 elk-9.6.8/tests/test_028/TEST_000.OUT_0000644002504400250440000000012614626155522020520 0ustar00dewhurstdewhurst00000000000000'total energy' 2 1 0.100000000000E-04 1 -20455.5640301 elk-9.6.8/tests/test_028/PaxHeaders/TEST_750.OUT_0000644000000000000000000000013214626155522016013 xustar0030 mtime=1717099346.956002392 30 atime=1717099346.956002392 30 ctime=1717099346.956002392 elk-9.6.8/tests/test_028/TEST_750.OUT_0000644002504400250440000000051614626155522020537 0ustar00dewhurstdewhurst00000000000000'total forces' 2 9 0.100000000000E-02 1 0.355308782031E-02 2 0.315312183662E-18 3 0.00000000000 4 -0.177654391016E-02 5 0.307706430345E-02 6 0.401235405081E-35 7 -0.177654391016E-02 8 -0.307706430345E-02 9 -0.401235405081E-35 elk-9.6.8/tests/test_028/PaxHeaders/TEST_440.OUT_0000644000000000000000000000013214626155522016007 xustar0030 mtime=1717099346.958002403 30 atime=1717099346.958002403 30 ctime=1717099346.958002403 elk-9.6.8/tests/test_028/TEST_440.OUT_0000644002504400250440000000020114626155522020522 0ustar00dewhurstdewhurst00000000000000'Stress tensor components' 2 2 0.100000000000E-01 1 0.217126755160E-01 2 0.538347449037E-02 elk-9.6.8/tests/test_028/PaxHeaders/TEST_705.OUT_0000644000000000000000000000013214626155522016013 xustar0030 mtime=1717099346.960002414 30 atime=1717099346.959002408 30 ctime=1717099346.960002414 elk-9.6.8/tests/test_028/TEST_705.OUT_0000644002504400250440000000010114626155522020525 0ustar00dewhurstdewhurst00000000000000'number of crystal symmetries' 1 1 1 6 elk-9.6.8/tests/test_028/PaxHeaders/TEST_900.OUT_0000644000000000000000000000013214626155522016010 xustar0030 mtime=1717099346.962002425 30 atime=1717099346.961002419 30 ctime=1717099346.962002425 elk-9.6.8/tests/test_028/TEST_900.OUT_0000644002504400250440000000007014626155522020527 0ustar00dewhurstdewhurst00000000000000'number of G-vectors' 1 1 1 20599 elk-9.6.8/tests/test_028/PaxHeaders/TEST_910.OUT_0000644000000000000000000000013114626155522016010 xustar0030 mtime=1717099346.964002435 29 atime=1717099346.96300243 30 ctime=1717099346.964002435 elk-9.6.8/tests/test_028/TEST_910.OUT_0000644002504400250440000000301714626155522020534 0ustar00dewhurstdewhurst00000000000000'k-points (Cartesian)' 2 48 0.100000000000E-07 1 0.00000000000 2 0.00000000000 3 0.00000000000 4 0.184209741270 5 -0.106353544083 6 0.00000000000 7 0.368419482539 8 -0.212707088167 9 0.00000000000 10 0.368419482539 11 0.00000000000 12 0.00000000000 13 0.921048706349 14 -0.106353544083 15 0.00000000000 16 0.00000000000 17 0.00000000000 18 0.139678490521 19 0.184209741270 20 -0.106353544083 21 0.139678490521 22 0.368419482539 23 -0.212707088167 24 0.139678490521 25 0.552629223809 26 -0.319060632250 27 0.139678490521 28 0.368419482539 29 0.00000000000 30 0.139678490521 31 0.921048706349 32 -0.106353544083 33 0.139678490521 34 0.00000000000 35 0.00000000000 36 0.279356981042 37 0.184209741270 38 -0.106353544083 39 0.279356981042 40 0.368419482539 41 -0.212707088167 42 0.279356981042 43 0.368419482539 44 0.00000000000 45 0.279356981042 46 0.921048706349 47 -0.106353544083 48 0.279356981042 elk-9.6.8/tests/test_028/PaxHeaders/elk.in0000644000000000000000000000013214626155522015214 xustar0030 mtime=1717099346.966002446 30 atime=1717099346.965002441 30 ctime=1717099346.966002446 elk-9.6.8/tests/test_028/elk.in0000644002504400250440000000122414626155522017735 0ustar00dewhurstdewhurst00000000000000 ! Stress tensor of hexagonal tellurium. tasks 0 440 500 test .true. tforce .true. epsengy 1.e-6 lradstp 2 ptnucl .false. maxlatvstp 1 lorbcnd .true. autolinengy .true. ngridk 4 4 4 swidth 0.01 avec 4.2636082 -7.3847860 0.0000000 4.2636082 7.3847860 0.0000000 0.0000000 0.0000000 11.2457997 sppath '../../species/' atoms 1 : nspecies 'Te.in' : spfname 3 : natoms; atposl below -0.268334780 -0.268334780 0.000000000 0.268334780 0.000000000 0.333333333 0.000000000 0.268334780 0.666666666 elk-9.6.8/tests/test_028/PaxHeaders/TEST_500.OUT_0000644000000000000000000000013214626155522016004 xustar0030 mtime=1717099346.967002452 30 atime=1717099346.967002452 30 ctime=1717099346.967002452 elk-9.6.8/tests/test_028/TEST_500.OUT_0000644002504400250440000000013514626155522020525 0ustar00dewhurstdewhurst00000000000000'DOS at Fermi energy' 2 1 0.500000000000E-02 1 26.5971486661 elk-9.6.8/tests/test_028/PaxHeaders/TEST_510.OUT_0000644000000000000000000000013214626155522016005 xustar0030 mtime=1717099346.969002462 30 atime=1717099346.969002462 30 ctime=1717099346.969002462 elk-9.6.8/tests/test_028/TEST_510.OUT_0000644002504400250440000000014514626155522020527 0ustar00dewhurstdewhurst00000000000000'estimated indirect band gap' 2 1 0.200000000000E-01 1 0.215162107580E-01 elk-9.6.8/tests/PaxHeaders/test_0270000644000000000000000000000013214626155522014033 xustar0030 mtime=1717099346.993002592 30 atime=1717099346.970002468 30 ctime=1717099346.993002592 elk-9.6.8/tests/test_027/0000755002504400250440000000000014626155522016632 5ustar00dewhurstdewhurst00000000000000elk-9.6.8/tests/test_027/PaxHeaders/TEST_705.OUT_0000644000000000000000000000013214626155522016012 xustar0030 mtime=1717099346.973002484 30 atime=1717099346.973002484 30 ctime=1717099346.973002484 elk-9.6.8/tests/test_027/TEST_705.OUT_0000644002504400250440000000010114626155522020524 0ustar00dewhurstdewhurst00000000000000'number of crystal symmetries' 1 1 1 4 elk-9.6.8/tests/test_027/PaxHeaders/TEST_900.OUT_0000644000000000000000000000012614626155522016012 xustar0028 mtime=1717099346.9760025 30 atime=1717099346.975002495 28 ctime=1717099346.9760025 elk-9.6.8/tests/test_027/TEST_900.OUT_0000644002504400250440000000007014626155522020526 0ustar00dewhurstdewhurst00000000000000'number of G-vectors' 1 1 1 8873 elk-9.6.8/tests/test_027/PaxHeaders/TEST_910.OUT_0000644000000000000000000000013214626155522016010 xustar0030 mtime=1717099346.978002511 30 atime=1717099346.978002511 30 ctime=1717099346.978002511 elk-9.6.8/tests/test_027/TEST_910.OUT_0000644002504400250440000001052214626155522020532 0ustar00dewhurstdewhurst00000000000000'k-points (Cartesian)' 2 141 0.100000000000E-07 1 0.00000000000 2 0.00000000000 3 0.00000000000 4 0.294085021773 5 0.294085021773 6 -0.294085021773 7 0.588170043546 8 0.00000000000 9 0.00000000000 10 -0.367606277216E-01 11 0.367606277216E-01 12 0.367606277216E-01 13 0.257324394051 14 0.330845649494 15 -0.257324394051 16 0.551409415824 17 0.367606277216E-01 18 0.367606277216E-01 19 -0.735212554432E-01 20 0.735212554432E-01 21 0.735212554432E-01 22 0.220563766330 23 0.367606277216 24 -0.220563766330 25 0.514648788102 26 0.735212554432E-01 27 0.735212554432E-01 28 -0.110281883165 29 0.110281883165 30 0.110281883165 31 0.183803138608 32 0.404366904938 33 -0.183803138608 34 0.477888160381 35 0.110281883165 36 0.110281883165 37 -0.147042510886 38 0.147042510886 39 0.147042510886 40 0.147042510886 41 0.441127532659 42 -0.147042510886 43 0.441127532659 44 0.147042510886 45 0.147042510886 46 -0.183803138608 47 0.183803138608 48 0.183803138608 49 0.110281883165 50 0.477888160381 51 -0.110281883165 52 0.404366904938 53 0.183803138608 54 0.183803138608 55 -0.220563766330 56 0.220563766330 57 0.220563766330 58 0.735212554432E-01 59 0.514648788102 60 -0.735212554432E-01 61 0.367606277216 62 0.220563766330 63 0.220563766330 64 -0.257324394051 65 0.257324394051 66 0.257324394051 67 0.367606277216E-01 68 0.551409415824 69 -0.367606277216E-01 70 0.330845649494 71 0.257324394051 72 0.257324394051 73 -0.294085021773 74 0.294085021773 75 0.294085021773 76 0.00000000000 77 0.588170043546 78 0.00000000000 79 -0.330845649494 80 0.330845649494 81 0.330845649494 82 -0.367606277216E-01 83 0.624930671267 84 0.367606277216E-01 85 0.257324394051 86 0.330845649494 87 0.330845649494 88 -0.367606277216 89 0.367606277216 90 0.367606277216 91 -0.735212554432E-01 92 0.661691298989 93 0.735212554432E-01 94 0.220563766330 95 0.367606277216 96 0.367606277216 97 -0.404366904938 98 0.404366904938 99 0.404366904938 100 -0.110281883165 101 0.698451926710 102 0.110281883165 103 0.183803138608 104 0.404366904938 105 0.404366904938 106 -0.441127532659 107 0.441127532659 108 0.441127532659 109 -0.147042510886 110 0.735212554432 111 0.147042510886 112 0.147042510886 113 0.441127532659 114 0.441127532659 115 -0.477888160381 116 0.477888160381 117 0.477888160381 118 -0.183803138608 119 0.771973182154 120 0.183803138608 121 0.110281883165 122 0.477888160381 123 0.477888160381 124 -0.514648788102 125 0.514648788102 126 0.514648788102 127 -0.220563766330 128 0.808733809875 129 0.220563766330 130 0.735212554432E-01 131 0.514648788102 132 0.514648788102 133 -0.551409415824 134 0.551409415824 135 0.551409415824 136 -0.257324394051 137 0.845494437597 138 0.257324394051 139 0.367606277216E-01 140 0.551409415824 141 0.551409415824 elk-9.6.8/tests/test_027/PaxHeaders/elk.in0000644000000000000000000000013214626155522015213 xustar0030 mtime=1717099346.981002527 30 atime=1717099346.980002522 30 ctime=1717099346.981002527 elk-9.6.8/tests/test_027/elk.in0000644002504400250440000000052114626155522017733 0ustar00dewhurstdewhurst00000000000000 ! Calculation of the Born effective charges for GaAs. tasks 208 500 test .true. deltaph 0.01 mixtype 1 ngridk 2 2 2 lradstp 2 nkspolar 8 avec 0.5 0.5 0.0 0.5 0.0 0.5 0.0 0.5 0.5 scale 10.6826 sppath '../../species/' atoms 2 'Ga.in' 1 0.0 0.0 0.0 'As.in' 1 0.25 0.25 0.25 elk-9.6.8/tests/test_027/PaxHeaders/TEST_500.OUT_0000644000000000000000000000013214626155522016003 xustar0030 mtime=1717099346.983002538 30 atime=1717099346.983002538 30 ctime=1717099346.983002538 elk-9.6.8/tests/test_027/TEST_500.OUT_0000644002504400250440000000013514626155522020524 0ustar00dewhurstdewhurst00000000000000'DOS at Fermi energy' 2 1 0.500000000000E-02 1 5.16877167560 elk-9.6.8/tests/test_027/PaxHeaders/TEST_510.OUT_0000644000000000000000000000013214626155522016004 xustar0030 mtime=1717099346.986002554 30 atime=1717099346.985002549 30 ctime=1717099346.986002554 elk-9.6.8/tests/test_027/TEST_510.OUT_0000644002504400250440000000014514626155522020526 0ustar00dewhurstdewhurst00000000000000'estimated indirect band gap' 2 1 0.200000000000E-01 1 0.569868318113E-02 elk-9.6.8/tests/test_027/PaxHeaders/TEST_400.OUT_0000644000000000000000000000013214626155522016002 xustar0030 mtime=1717099346.988002565 30 atime=1717099346.988002565 30 ctime=1717099346.988002565 elk-9.6.8/tests/test_027/TEST_400.OUT_0000644002504400250440000000014114626155522020520 0ustar00dewhurstdewhurst00000000000000'calculated total charge' 2 1 0.100000000000E-05 1 63.9976531882 elk-9.6.8/tests/test_027/PaxHeaders/TEST_000.OUT_0000644000000000000000000000013214626155522015776 xustar0030 mtime=1717099346.991002581 30 atime=1717099346.991002581 30 ctime=1717099346.991002581 elk-9.6.8/tests/test_027/TEST_000.OUT_0000644002504400250440000000012614626155522020517 0ustar00dewhurstdewhurst00000000000000'total energy' 2 1 0.100000000000E-04 1 -4198.64850230 elk-9.6.8/tests/test_027/PaxHeaders/TEST_208.OUT_0000644000000000000000000000013214626155522016010 xustar0030 mtime=1717099346.993002592 30 atime=1717099346.993002592 30 ctime=1717099346.993002592 elk-9.6.8/tests/test_027/TEST_208.OUT_0000644002504400250440000000023514626155522020532 0ustar00dewhurstdewhurst00000000000000'Born effective charge' 2 3 0.100000000000E-02 1 -2.18841746345 2 -0.408295452363E-03 3 -0.920668155135E-03 elk-9.6.8/tests/PaxHeaders/test_0030000644000000000000000000000013214626155523014026 xustar0030 mtime=1717099347.012002694 30 atime=1717099346.995002602 30 ctime=1717099347.012002694 elk-9.6.8/tests/test_003/0000755002504400250440000000000014626155523016625 5ustar00dewhurstdewhurst00000000000000elk-9.6.8/tests/test_003/PaxHeaders/TEST_705.OUT_0000644000000000000000000000013214626155522016004 xustar0030 mtime=1717099346.997002613 30 atime=1717099346.997002613 30 ctime=1717099346.997002613 elk-9.6.8/tests/test_003/TEST_705.OUT_0000644002504400250440000000010114626155522020516 0ustar00dewhurstdewhurst00000000000000'number of crystal symmetries' 1 1 1 12 elk-9.6.8/tests/test_003/PaxHeaders/elk.in0000644000000000000000000000013214626155522015205 xustar0030 mtime=1717099346.999002624 30 atime=1717099346.999002624 30 ctime=1717099346.999002624 elk-9.6.8/tests/test_003/elk.in0000644002504400250440000000067314626155522017735 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-9.6.8/tests/test_003/PaxHeaders/TEST_900.OUT_0000644000000000000000000000013214626155523016002 xustar0030 mtime=1717099347.001002635 30 atime=1717099347.001002635 30 ctime=1717099347.001002635 elk-9.6.8/tests/test_003/TEST_900.OUT_0000644002504400250440000000007014626155523020521 0ustar00dewhurstdewhurst00000000000000'number of G-vectors' 1 1 1 7799 elk-9.6.8/tests/test_003/PaxHeaders/TEST_910.OUT_0000644000000000000000000000013214626155523016003 xustar0030 mtime=1717099347.003002645 30 atime=1717099347.003002645 30 ctime=1717099347.003002645 elk-9.6.8/tests/test_003/TEST_910.OUT_0000644002504400250440000000037114626155523020526 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-9.6.8/tests/test_003/PaxHeaders/TEST_500.OUT_0000644000000000000000000000013214626155523015776 xustar0030 mtime=1717099347.005002656 30 atime=1717099347.005002656 30 ctime=1717099347.005002656 elk-9.6.8/tests/test_003/TEST_500.OUT_0000644002504400250440000000013514626155523020517 0ustar00dewhurstdewhurst00000000000000'DOS at Fermi energy' 2 1 0.500000000000E-02 1 0.555112133303E-12 elk-9.6.8/tests/test_003/PaxHeaders/TEST_510.OUT_0000644000000000000000000000013214626155523015777 xustar0030 mtime=1717099347.007002667 30 atime=1717099347.007002667 30 ctime=1717099347.007002667 elk-9.6.8/tests/test_003/TEST_510.OUT_0000644002504400250440000000014514626155523020521 0ustar00dewhurstdewhurst00000000000000'estimated indirect band gap' 2 1 0.200000000000E-01 1 0.843634487013E-01 elk-9.6.8/tests/test_003/PaxHeaders/TEST_400.OUT_0000644000000000000000000000013214626155523015775 xustar0030 mtime=1717099347.009002678 30 atime=1717099347.009002678 30 ctime=1717099347.009002678 elk-9.6.8/tests/test_003/TEST_400.OUT_0000644002504400250440000000014114626155523020513 0ustar00dewhurstdewhurst00000000000000'calculated total charge' 2 1 0.100000000000E-05 1 27.9922880849 elk-9.6.8/tests/test_003/PaxHeaders/TEST_000.OUT_0000644000000000000000000000013214626155523015771 xustar0030 mtime=1717099347.011002689 30 atime=1717099347.011002689 30 ctime=1717099347.011002689 elk-9.6.8/tests/test_003/TEST_000.OUT_0000644002504400250440000000012614626155523020512 0ustar00dewhurstdewhurst00000000000000'total energy' 2 1 0.100000000000E-04 1 -580.315441324 elk-9.6.8/tests/test_003/PaxHeaders/TEST_750.OUT_0000644000000000000000000000013214626155523016005 xustar0030 mtime=1717099347.013002699 30 atime=1717099347.013002699 30 ctime=1717099347.013002699 elk-9.6.8/tests/test_003/TEST_750.OUT_0000644002504400250440000000036114626155523020527 0ustar00dewhurstdewhurst00000000000000'total forces' 2 6 0.100000000000E-02 1 0.152879403910E-01 2 0.152879403910E-01 3 0.152879403910E-01 4 -0.152879403910E-01 5 -0.152879403910E-01 6 -0.152879403910E-01 elk-9.6.8/tests/PaxHeaders/test_0070000644000000000000000000000013214626155523014032 xustar0030 mtime=1717099347.038002834 30 atime=1717099347.014002705 30 ctime=1717099347.038002834 elk-9.6.8/tests/test_007/0000755002504400250440000000000014626155523016631 5ustar00dewhurstdewhurst00000000000000elk-9.6.8/tests/test_007/PaxHeaders/TEST_705.OUT_0000644000000000000000000000013114626155523016010 xustar0030 mtime=1717099347.016002716 29 atime=1717099347.01500271 30 ctime=1717099347.016002716 elk-9.6.8/tests/test_007/TEST_705.OUT_0000644002504400250440000000010114626155523020523 0ustar00dewhurstdewhurst00000000000000'number of crystal symmetries' 1 1 1 48 elk-9.6.8/tests/test_007/PaxHeaders/TEST_900.OUT_0000644000000000000000000000013214626155523016006 xustar0030 mtime=1717099347.018002726 30 atime=1717099347.017002721 30 ctime=1717099347.018002726 elk-9.6.8/tests/test_007/TEST_900.OUT_0000644002504400250440000000007014626155523020525 0ustar00dewhurstdewhurst00000000000000'number of G-vectors' 1 1 1 2801 elk-9.6.8/tests/test_007/PaxHeaders/TEST_910.OUT_0000644000000000000000000000013214626155523016007 xustar0030 mtime=1717099347.019002732 30 atime=1717099347.019002732 30 ctime=1717099347.019002732 elk-9.6.8/tests/test_007/TEST_910.OUT_0000644002504400250440000000174114626155523020534 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-9.6.8/tests/test_007/PaxHeaders/elk.in0000644000000000000000000000013214626155523015212 xustar0030 mtime=1717099347.021002743 30 atime=1717099347.021002743 30 ctime=1717099347.021002743 elk-9.6.8/tests/test_007/elk.in0000644002504400250440000000135414626155523017737 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 wplot 50 100 2 0.0 0.25 gmaxvr 10.0 xctype 20 dft+u 2 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-9.6.8/tests/test_007/PaxHeaders/TEST_500.OUT_0000644000000000000000000000013214626155523016002 xustar0030 mtime=1717099347.023002753 30 atime=1717099347.023002753 30 ctime=1717099347.023002753 elk-9.6.8/tests/test_007/TEST_500.OUT_0000644002504400250440000000013514626155523020523 0ustar00dewhurstdewhurst00000000000000'DOS at Fermi energy' 2 1 0.500000000000E-02 1 85.3142717528 elk-9.6.8/tests/test_007/PaxHeaders/TEST_510.OUT_0000644000000000000000000000013214626155523016003 xustar0030 mtime=1717099347.025002764 30 atime=1717099347.025002764 30 ctime=1717099347.025002764 elk-9.6.8/tests/test_007/TEST_510.OUT_0000644002504400250440000000014514626155523020525 0ustar00dewhurstdewhurst00000000000000'estimated indirect band gap' 2 1 0.200000000000E-01 1 0.110194238120E-02 elk-9.6.8/tests/test_007/PaxHeaders/TEST_450.OUT_0000644000000000000000000000013214626155523016006 xustar0030 mtime=1717099347.027002775 30 atime=1717099347.027002775 30 ctime=1717099347.027002775 elk-9.6.8/tests/test_007/TEST_450.OUT_0000644002504400250440000000014014626155523020523 0ustar00dewhurstdewhurst00000000000000'total moment magnitude' 2 1 0.100000000000E-02 1 0.530631168283 elk-9.6.8/tests/test_007/PaxHeaders/TEST_400.OUT_0000644000000000000000000000013214626155523016001 xustar0030 mtime=1717099347.029002786 30 atime=1717099347.029002786 30 ctime=1717099347.029002786 elk-9.6.8/tests/test_007/TEST_400.OUT_0000644002504400250440000000014114626155523020517 0ustar00dewhurstdewhurst00000000000000'calculated total charge' 2 1 0.100000000000E-05 1 38.9880113798 elk-9.6.8/tests/test_007/PaxHeaders/TEST_800.OUT_0000644000000000000000000000013214626155523016005 xustar0030 mtime=1717099347.031002796 30 atime=1717099347.031002796 30 ctime=1717099347.031002796 elk-9.6.8/tests/test_007/TEST_800.OUT_0000644002504400250440000000014414626155523020526 0ustar00dewhurstdewhurst00000000000000'DFT+U energy for each atom' 2 1 0.100000000000E-03 1 0.123517412107E-01 elk-9.6.8/tests/test_007/PaxHeaders/TEST_810.OUT_0000644000000000000000000000013214626155523016006 xustar0030 mtime=1717099347.033002807 30 atime=1717099347.033002807 30 ctime=1717099347.033002807 elk-9.6.8/tests/test_007/TEST_810.OUT_0000644002504400250440000000017314626155523020531 0ustar00dewhurstdewhurst00000000000000'U and J parameters' 2 2 0.100000000000E-03 1 0.183000000000 2 0.349119670000E-01 elk-9.6.8/tests/test_007/PaxHeaders/TEST_000.OUT_0000644000000000000000000000013214626155523015775 xustar0030 mtime=1717099347.035002818 30 atime=1717099347.035002818 30 ctime=1717099347.035002818 elk-9.6.8/tests/test_007/TEST_000.OUT_0000644002504400250440000000012614626155523020516 0ustar00dewhurstdewhurst00000000000000'total energy' 2 1 0.100000000000E-04 1 -1515.75051984 elk-9.6.8/tests/test_007/PaxHeaders/TEST_015.OUT_0000644000000000000000000000013214626155523016003 xustar0030 mtime=1717099347.037002829 30 atime=1717099347.037002829 30 ctime=1717099347.037002829 elk-9.6.8/tests/test_007/TEST_015.OUT_0000644002504400250440000000040614626155523020525 0ustar00dewhurstdewhurst00000000000000'total muffin-tin angular momentum' 2 6 0.100000000000E-02 1 -0.101316010358E-16 2 0.304795495258E-17 3 0.256898833077 4 -0.305751613929E-17 5 -0.138420844121E-17 6 -0.459494888275E-02 elk-9.6.8/tests/test_007/PaxHeaders/TEST_016.OUT_0000644000000000000000000000012714626155523016010 xustar0029 mtime=1717099347.03900284 29 atime=1717099347.03900284 29 ctime=1717099347.03900284 elk-9.6.8/tests/test_007/TEST_016.OUT_0000644002504400250440000000041614626155523020527 0ustar00dewhurstdewhurst00000000000000'muffin-tin angular momentum for one state' 2 6 0.100000000000E-02 1 0.102468652735E-06 2 0.337672612277E-06 3 0.132697915340 4 -0.947794107960E-06 5 0.927761403461E-06 6 0.156228532078 elk-9.6.8/tests/PaxHeaders/test_0110000644000000000000000000000013214626155523014025 xustar0030 mtime=1717099347.057002936 30 atime=1717099347.040002845 30 ctime=1717099347.057002936 elk-9.6.8/tests/test_011/0000755002504400250440000000000014626155523016624 5ustar00dewhurstdewhurst00000000000000elk-9.6.8/tests/test_011/PaxHeaders/TEST_910.OUT_0000644000000000000000000000013214626155523016002 xustar0030 mtime=1717099347.042002856 30 atime=1717099347.042002856 30 ctime=1717099347.042002856 elk-9.6.8/tests/test_011/TEST_910.OUT_0000644002504400250440000000037114626155523020525 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-9.6.8/tests/test_011/PaxHeaders/TEST_705.OUT_0000644000000000000000000000013214626155523016004 xustar0030 mtime=1717099347.044002866 30 atime=1717099347.044002866 30 ctime=1717099347.044002866 elk-9.6.8/tests/test_011/TEST_705.OUT_0000644002504400250440000000010114626155523020516 0ustar00dewhurstdewhurst00000000000000'number of crystal symmetries' 1 1 1 48 elk-9.6.8/tests/test_011/PaxHeaders/TEST_900.OUT_0000644000000000000000000000013214626155523016001 xustar0030 mtime=1717099347.046002877 30 atime=1717099347.046002877 30 ctime=1717099347.046002877 elk-9.6.8/tests/test_011/TEST_900.OUT_0000644002504400250440000000007014626155523020520 0ustar00dewhurstdewhurst00000000000000'number of G-vectors' 1 1 1 7799 elk-9.6.8/tests/test_011/PaxHeaders/elk.in0000644000000000000000000000013214626155523015205 xustar0030 mtime=1717099347.048002888 30 atime=1717099347.047002883 30 ctime=1717099347.048002888 elk-9.6.8/tests/test_011/elk.in0000644002504400250440000000066714626155523017740 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-9.6.8/tests/test_011/PaxHeaders/TEST_500.OUT_0000644000000000000000000000013214626155523015775 xustar0030 mtime=1717099347.050002899 30 atime=1717099347.049002893 30 ctime=1717099347.050002899 elk-9.6.8/tests/test_011/TEST_500.OUT_0000644002504400250440000000013514626155523020516 0ustar00dewhurstdewhurst00000000000000'DOS at Fermi energy' 2 1 0.500000000000E-02 1 0.698536415996E-12 elk-9.6.8/tests/test_011/PaxHeaders/TEST_510.OUT_0000644000000000000000000000013014626155523015774 xustar0029 mtime=1717099347.05200291 30 atime=1717099347.051002904 29 ctime=1717099347.05200291 elk-9.6.8/tests/test_011/TEST_510.OUT_0000644002504400250440000000014514626155523020520 0ustar00dewhurstdewhurst00000000000000'estimated indirect band gap' 2 1 0.200000000000E-01 1 0.348469416228 elk-9.6.8/tests/test_011/PaxHeaders/TEST_400.OUT_0000644000000000000000000000013014626155523015772 xustar0029 mtime=1717099347.05400292 30 atime=1717099347.053002915 29 ctime=1717099347.05400292 elk-9.6.8/tests/test_011/TEST_400.OUT_0000644002504400250440000000014114626155523020512 0ustar00dewhurstdewhurst00000000000000'calculated total charge' 2 1 0.100000000000E-05 1 27.9921675577 elk-9.6.8/tests/test_011/PaxHeaders/TEST_000.OUT_0000644000000000000000000000013214626155523015770 xustar0030 mtime=1717099347.055002926 30 atime=1717099347.055002926 30 ctime=1717099347.055002926 elk-9.6.8/tests/test_011/TEST_000.OUT_0000644002504400250440000000012614626155523020511 0ustar00dewhurstdewhurst00000000000000'total energy' 2 1 0.100000000000E-04 1 -579.532888025 elk-9.6.8/tests/test_011/PaxHeaders/TEST_800.OUT_0000644000000000000000000000013214626155523016000 xustar0030 mtime=1717099347.057002936 30 atime=1717099347.057002936 30 ctime=1717099347.057002936 elk-9.6.8/tests/test_011/TEST_800.OUT_0000644002504400250440000000026414626155523020524 0ustar00dewhurstdewhurst00000000000000'regularised Coulomb Green''s function (gclq)' 2 3 0.100000000000E-07 1 394.581580334 2 51.1494504119 3 35.9439292598 elk-9.6.8/tests/PaxHeaders/test_0150000644000000000000000000000013214626155523014031 xustar0030 mtime=1717099347.081003066 30 atime=1717099347.059002947 30 ctime=1717099347.081003066 elk-9.6.8/tests/test_015/0000755002504400250440000000000014626155523016630 5ustar00dewhurstdewhurst00000000000000elk-9.6.8/tests/test_015/PaxHeaders/TEST_910.OUT_0000644000000000000000000000013214626155523016006 xustar0030 mtime=1717099347.061002958 30 atime=1717099347.061002958 30 ctime=1717099347.061002958 elk-9.6.8/tests/test_015/TEST_910.OUT_0000644002504400250440000000052614626155523020533 0ustar00dewhurstdewhurst00000000000000'k-points (Cartesian)' 2 9 0.100000000000E-07 1 0.995007547959E-01 2 0.995007547959E-01 3 0.995007547959E-01 4 0.696505283571 5 -0.995007547959E-01 6 -0.995007547959E-01 7 0.497503773979 8 0.497503773979 9 -0.298502264388 elk-9.6.8/tests/test_015/PaxHeaders/elk.in0000644000000000000000000000013214626155523015211 xustar0030 mtime=1717099347.063002969 30 atime=1717099347.062002964 30 ctime=1717099347.063002969 elk-9.6.8/tests/test_015/elk.in0000644002504400250440000000135314626155523017735 0ustar00dewhurstdewhurst00000000000000 ! DFT+U test tasks 0 400 500 test .true. mixtype 1 dft+u 1 5 : dftu, inpdftu 1 2 0.29399 : is, l, U fixed spinpol .true. spinorb .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 vkloff 0.5 0.5 0.5 elk-9.6.8/tests/test_015/PaxHeaders/TEST_900.OUT_0000644000000000000000000000013014626155523016003 xustar0029 mtime=1717099347.06500298 30 atime=1717099347.064002974 29 ctime=1717099347.06500298 elk-9.6.8/tests/test_015/TEST_900.OUT_0000644002504400250440000000007014626155523020524 0ustar00dewhurstdewhurst00000000000000'number of G-vectors' 1 1 1 7247 elk-9.6.8/tests/test_015/PaxHeaders/TEST_705.OUT_0000644000000000000000000000013214626155523016010 xustar0030 mtime=1717099347.066002985 30 atime=1717099347.066002985 30 ctime=1717099347.066002985 elk-9.6.8/tests/test_015/TEST_705.OUT_0000644002504400250440000000010114626155523020522 0ustar00dewhurstdewhurst00000000000000'number of crystal symmetries' 1 1 1 4 elk-9.6.8/tests/test_015/PaxHeaders/TEST_500.OUT_0000644000000000000000000000013214626155523016001 xustar0030 mtime=1717099347.068002996 30 atime=1717099347.068002996 30 ctime=1717099347.068002996 elk-9.6.8/tests/test_015/TEST_500.OUT_0000644002504400250440000000013514626155523020522 0ustar00dewhurstdewhurst00000000000000'DOS at Fermi energy' 2 1 0.500000000000E-02 1 0.610820048353E-11 elk-9.6.8/tests/test_015/PaxHeaders/TEST_510.OUT_0000644000000000000000000000013214626155523016002 xustar0030 mtime=1717099347.070003007 30 atime=1717099347.070003007 30 ctime=1717099347.070003007 elk-9.6.8/tests/test_015/TEST_510.OUT_0000644002504400250440000000014514626155523020524 0ustar00dewhurstdewhurst00000000000000'estimated indirect band gap' 2 1 0.200000000000E-01 1 0.165155896864 elk-9.6.8/tests/test_015/PaxHeaders/TEST_400.OUT_0000644000000000000000000000013214626155523016000 xustar0030 mtime=1717099347.072003017 30 atime=1717099347.072003017 30 ctime=1717099347.072003017 elk-9.6.8/tests/test_015/TEST_400.OUT_0000644002504400250440000000014114626155523020516 0ustar00dewhurstdewhurst00000000000000'calculated total charge' 2 1 0.100000000000E-05 1 72.0053120779 elk-9.6.8/tests/test_015/PaxHeaders/TEST_450.OUT_0000644000000000000000000000013214626155523016005 xustar0030 mtime=1717099347.074003028 30 atime=1717099347.074003028 30 ctime=1717099347.074003028 elk-9.6.8/tests/test_015/TEST_450.OUT_0000644002504400250440000000014014626155523020522 0ustar00dewhurstdewhurst00000000000000'total moment magnitude' 2 1 0.100000000000E-02 1 0.148403440582E-03 elk-9.6.8/tests/test_015/PaxHeaders/TEST_800.OUT_0000644000000000000000000000013214626155523016004 xustar0030 mtime=1717099347.076003039 30 atime=1717099347.076003039 30 ctime=1717099347.076003039 elk-9.6.8/tests/test_015/TEST_800.OUT_0000644002504400250440000000020314626155523020521 0ustar00dewhurstdewhurst00000000000000'DFT+U energy for each atom' 2 2 0.100000000000E-03 1 0.948408354581 2 0.948408354581 elk-9.6.8/tests/test_015/PaxHeaders/TEST_810.OUT_0000644000000000000000000000012714626155523016011 xustar0029 mtime=1717099347.07800305 29 atime=1717099347.07800305 29 ctime=1717099347.07800305 elk-9.6.8/tests/test_015/TEST_810.OUT_0000644002504400250440000000017314626155523020530 0ustar00dewhurstdewhurst00000000000000'U and J parameters' 2 2 0.100000000000E-03 1 0.293989998021 2 0.458606321315E-01 elk-9.6.8/tests/test_015/PaxHeaders/TEST_000.OUT_0000644000000000000000000000013014626155523015772 xustar0029 mtime=1717099347.08000306 30 atime=1717099347.079003055 29 ctime=1717099347.08000306 elk-9.6.8/tests/test_015/TEST_000.OUT_0000644002504400250440000000012614626155523020515 0ustar00dewhurstdewhurst00000000000000'total energy' 2 1 0.100000000000E-04 1 -3186.18768305 elk-9.6.8/tests/test_015/PaxHeaders/TEST_820.OUT_0000644000000000000000000000013214626155523016006 xustar0030 mtime=1717099347.082003071 30 atime=1717099347.081003066 30 ctime=1717099347.082003071 elk-9.6.8/tests/test_015/TEST_820.OUT_0000644002504400250440000000210014626155523020521 0ustar00dewhurstdewhurst00000000000000'Coupled tensor moments' 2 33 0.500000000000E-03 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.00000000000 12 0.311077233000E-04 13 0.157624743313 14 0.266942417531E-02 15 -0.268559496987E-02 16 -0.258023392621E-05 17 0.437028793537 18 -0.414917478722E-02 19 0.265213284448E-02 20 0.219758709539E-04 21 0.157611677001 22 -0.167457107830E-02 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 elk-9.6.8/tests/PaxHeaders/test_0190000644000000000000000000000013214626155523014035 xustar0030 mtime=1717099347.106003201 30 atime=1717099347.082003071 30 ctime=1717099347.106003201 elk-9.6.8/tests/test_019/0000755002504400250440000000000014626155523016634 5ustar00dewhurstdewhurst00000000000000elk-9.6.8/tests/test_019/PaxHeaders/TEST_705.OUT_0000644000000000000000000000013214626155523016014 xustar0030 mtime=1717099347.084003082 30 atime=1717099347.084003082 30 ctime=1717099347.084003082 elk-9.6.8/tests/test_019/TEST_705.OUT_0000644002504400250440000000010114626155523020526 0ustar00dewhurstdewhurst00000000000000'number of crystal symmetries' 1 1 1 4 elk-9.6.8/tests/test_019/PaxHeaders/elk.in0000644000000000000000000000013214626155523015215 xustar0030 mtime=1717099347.086003093 30 atime=1717099347.086003093 30 ctime=1717099347.086003093 elk-9.6.8/tests/test_019/elk.in0000644002504400250440000000101214626155523017731 0ustar00dewhurstdewhurst00000000000000 ! TDDFT+U time evolution test tasks 0 450 460 500 test .true. dft+u 1 5 1 2 0.2 ramdisk .true. tshift .false. tforce .true. ntsforce 10 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-9.6.8/tests/test_019/PaxHeaders/TEST_900.OUT_0000644000000000000000000000013214626155523016011 xustar0030 mtime=1717099347.088003103 30 atime=1717099347.088003103 30 ctime=1717099347.088003103 elk-9.6.8/tests/test_019/TEST_900.OUT_0000644002504400250440000000007014626155523020530 0ustar00dewhurstdewhurst00000000000000'number of G-vectors' 1 1 1 2109 elk-9.6.8/tests/test_019/PaxHeaders/TEST_910.OUT_0000644000000000000000000000013214626155523016012 xustar0030 mtime=1717099347.090003114 30 atime=1717099347.090003114 30 ctime=1717099347.090003114 elk-9.6.8/tests/test_019/TEST_910.OUT_0000644002504400250440000000360314626155523020536 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-9.6.8/tests/test_019/PaxHeaders/TEST_500.OUT_0000644000000000000000000000013214626155523016005 xustar0030 mtime=1717099347.092003125 30 atime=1717099347.092003125 30 ctime=1717099347.092003125 elk-9.6.8/tests/test_019/TEST_500.OUT_0000644002504400250440000000013514626155523020526 0ustar00dewhurstdewhurst00000000000000'DOS at Fermi energy' 2 1 0.500000000000E-02 1 33.6607367697 elk-9.6.8/tests/test_019/PaxHeaders/TEST_510.OUT_0000644000000000000000000000013214626155523016006 xustar0030 mtime=1717099347.094003136 30 atime=1717099347.094003136 30 ctime=1717099347.094003136 elk-9.6.8/tests/test_019/TEST_510.OUT_0000644002504400250440000000014514626155523020530 0ustar00dewhurstdewhurst00000000000000'estimated indirect band gap' 2 1 0.200000000000E-01 1 0.328315827750E-02 elk-9.6.8/tests/test_019/PaxHeaders/TEST_400.OUT_0000644000000000000000000000013214626155523016004 xustar0030 mtime=1717099347.096003147 30 atime=1717099347.095003141 30 ctime=1717099347.096003147 elk-9.6.8/tests/test_019/TEST_400.OUT_0000644002504400250440000000014114626155523020522 0ustar00dewhurstdewhurst00000000000000'calculated total charge' 2 1 0.100000000000E-05 1 27.9995619104 elk-9.6.8/tests/test_019/PaxHeaders/TEST_450.OUT_0000644000000000000000000000013214626155523016011 xustar0030 mtime=1717099347.098003157 30 atime=1717099347.097003152 30 ctime=1717099347.098003157 elk-9.6.8/tests/test_019/TEST_450.OUT_0000644002504400250440000000014014626155523020526 0ustar00dewhurstdewhurst00000000000000'total moment magnitude' 2 1 0.100000000000E-02 1 0.582810214738 elk-9.6.8/tests/test_019/PaxHeaders/TEST_800.OUT_0000644000000000000000000000013214626155523016010 xustar0030 mtime=1717099347.100003168 30 atime=1717099347.099003163 30 ctime=1717099347.100003168 elk-9.6.8/tests/test_019/TEST_800.OUT_0000644002504400250440000000014414626155523020531 0ustar00dewhurstdewhurst00000000000000'DFT+U energy for each atom' 2 1 0.100000000000E-03 1 0.553023170870 elk-9.6.8/tests/test_019/PaxHeaders/TEST_810.OUT_0000644000000000000000000000013214626155523016011 xustar0030 mtime=1717099347.101003174 30 atime=1717099347.101003174 30 ctime=1717099347.101003174 elk-9.6.8/tests/test_019/TEST_810.OUT_0000644002504400250440000000017314626155523020534 0ustar00dewhurstdewhurst00000000000000'U and J parameters' 2 2 0.100000000000E-03 1 0.199999996878 2 0.403520818167E-01 elk-9.6.8/tests/test_019/PaxHeaders/TEST_000.OUT_0000644000000000000000000000013214626155523016000 xustar0030 mtime=1717099347.103003184 30 atime=1717099347.103003184 30 ctime=1717099347.103003184 elk-9.6.8/tests/test_019/TEST_000.OUT_0000644002504400250440000000012614626155523020521 0ustar00dewhurstdewhurst00000000000000'total energy' 2 1 0.100000000000E-04 1 -1492.20759451 elk-9.6.8/tests/test_019/PaxHeaders/TEST_750.OUT_0000644000000000000000000000013214626155523016014 xustar0030 mtime=1717099347.105003195 30 atime=1717099347.105003195 30 ctime=1717099347.105003195 elk-9.6.8/tests/test_019/TEST_750.OUT_0000644002504400250440000000022414626155523020534 0ustar00dewhurstdewhurst00000000000000'total forces' 2 3 0.100000000000E-02 1 0.459279633578E-18 2 -0.459279633578E-18 3 -0.256792267071E-01 elk-9.6.8/tests/test_019/PaxHeaders/TEST_460.OUT_0000644000000000000000000000013214626155523016012 xustar0030 mtime=1717099347.107003206 30 atime=1717099347.107003206 30 ctime=1717099347.107003206 elk-9.6.8/tests/test_019/TEST_460.OUT_0000644002504400250440000000024714626155523020537 0ustar00dewhurstdewhurst00000000000000'total current of last time step' 2 3 0.500000000000E-03 1 0.00000000000 2 0.00000000000 3 0.118405226704 elk-9.6.8/PaxHeaders/tests-libxc0000644000000000000000000000013114626155523013563 xustar0030 mtime=1717099347.213003777 29 atime=1717099347.11900327 30 ctime=1717099347.213003777 elk-9.6.8/tests-libxc/0000755002504400250440000000000014626155523016363 5ustar00dewhurstdewhurst00000000000000elk-9.6.8/tests-libxc/PaxHeaders/test_0040000644000000000000000000000013214626155523015126 xustar0030 mtime=1717099347.137003368 30 atime=1717099347.121003281 30 ctime=1717099347.137003368 elk-9.6.8/tests-libxc/test_004/0000755002504400250440000000000014626155523017725 5ustar00dewhurstdewhurst00000000000000elk-9.6.8/tests-libxc/test_004/PaxHeaders/TEST_705.OUT_0000644000000000000000000000013214626155523017105 xustar0030 mtime=1717099347.123003292 30 atime=1717099347.122003287 30 ctime=1717099347.123003292 elk-9.6.8/tests-libxc/test_004/TEST_705.OUT_0000644002504400250440000000010114626155523021617 0ustar00dewhurstdewhurst00000000000000'number of crystal symmetries' 1 1 1 8 elk-9.6.8/tests-libxc/test_004/PaxHeaders/TEST_900.OUT_0000644000000000000000000000013214626155523017102 xustar0030 mtime=1717099347.125003303 30 atime=1717099347.124003298 30 ctime=1717099347.125003303 elk-9.6.8/tests-libxc/test_004/TEST_900.OUT_0000644002504400250440000000007014626155523021621 0ustar00dewhurstdewhurst00000000000000'number of G-vectors' 1 1 1 34171 elk-9.6.8/tests-libxc/test_004/PaxHeaders/TEST_910.OUT_0000644000000000000000000000013214626155523017103 xustar0030 mtime=1717099347.127003314 30 atime=1717099347.126003308 30 ctime=1717099347.127003314 elk-9.6.8/tests-libxc/test_004/TEST_910.OUT_0000644002504400250440000000037114626155523021626 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-9.6.8/tests-libxc/test_004/PaxHeaders/elk.in0000644000000000000000000000013214626155523016306 xustar0030 mtime=1717099347.128003319 30 atime=1717099347.128003319 30 ctime=1717099347.128003319 elk-9.6.8/tests-libxc/test_004/elk.in0000644002504400250440000000154014626155523021030 0ustar00dewhurstdewhurst00000000000000 ! Test of the finite temperature exchange-correlation functional KSDT. ! See Karasiev, et al., Phys. Rev. Lett. 112, 076403 (2014) tasks 0 500 test .true. xctype 100 259 0 ! temperature in Kelvin tempk 500.0 rgkmax 6.0 maxscl 10 tforce .true. 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-9.6.8/tests-libxc/test_004/PaxHeaders/TEST_500.OUT_0000644000000000000000000000012714626155523017102 xustar0029 mtime=1717099347.13000333 29 atime=1717099347.13000333 29 ctime=1717099347.13000333 elk-9.6.8/tests-libxc/test_004/TEST_500.OUT_0000644002504400250440000000013514626155523021617 0ustar00dewhurstdewhurst00000000000000'DOS at Fermi energy' 2 1 0.500000000000E-02 1 4.08410734053 elk-9.6.8/tests-libxc/test_004/PaxHeaders/TEST_510.OUT_0000644000000000000000000000013214626155523017077 xustar0030 mtime=1717099347.132003341 30 atime=1717099347.132003341 30 ctime=1717099347.132003341 elk-9.6.8/tests-libxc/test_004/TEST_510.OUT_0000644002504400250440000000014514626155523021621 0ustar00dewhurstdewhurst00000000000000'estimated indirect band gap' 2 1 0.200000000000E-01 1 0.188592531590E-01 elk-9.6.8/tests-libxc/test_004/PaxHeaders/TEST_400.OUT_0000644000000000000000000000013214626155523017075 xustar0030 mtime=1717099347.134003351 30 atime=1717099347.134003351 30 ctime=1717099347.134003351 elk-9.6.8/tests-libxc/test_004/TEST_400.OUT_0000644002504400250440000000014114626155523021613 0ustar00dewhurstdewhurst00000000000000'calculated total charge' 2 1 0.100000000000E-05 1 294.001987638 elk-9.6.8/tests-libxc/test_004/PaxHeaders/TEST_000.OUT_0000644000000000000000000000013214626155523017071 xustar0030 mtime=1717099347.136003362 30 atime=1717099347.136003362 30 ctime=1717099347.136003362 elk-9.6.8/tests-libxc/test_004/TEST_000.OUT_0000644002504400250440000000012614626155523021612 0ustar00dewhurstdewhurst00000000000000'total energy' 2 1 0.100000000000E-04 1 -25129.0089543 elk-9.6.8/tests-libxc/test_004/PaxHeaders/TEST_750.OUT_0000644000000000000000000000013214626155523017105 xustar0030 mtime=1717099347.138003373 30 atime=1717099347.137003368 30 ctime=1717099347.138003373 elk-9.6.8/tests-libxc/test_004/TEST_750.OUT_0000644002504400250440000000236014626155523021630 0ustar00dewhurstdewhurst00000000000000'total forces' 2 39 0.100000000000E-02 1 0.00000000000 2 -0.105214410799E-48 3 0.00000000000 4 0.00000000000 5 -0.105214410799E-48 6 0.350976736657E-01 7 0.00000000000 8 0.126324112077E-47 9 -0.350976736657E-01 10 0.00000000000 11 -0.105214410799E-48 12 0.00000000000 13 0.00000000000 14 -0.105882601977E-48 15 0.146751419628E-01 16 0.00000000000 17 -0.105214410799E-48 18 -0.146751419628E-01 19 0.00000000000 20 -0.105214410799E-48 21 0.00000000000 22 0.00000000000 23 -0.447328293691E-48 24 -0.221742267223E-02 25 0.00000000000 26 0.236899472093E-48 27 0.221742267223E-02 28 0.00000000000 29 0.236899472093E-48 30 0.770733214263E-02 31 0.00000000000 32 -0.447328293691E-48 33 -0.770733214263E-02 34 0.00000000000 35 -0.105214410799E-48 36 0.397499232385E-02 37 0.00000000000 38 -0.105214410799E-48 39 -0.397499232385E-02 elk-9.6.8/tests-libxc/PaxHeaders/test_0050000644000000000000000000000013014626155523015125 xustar0029 mtime=1717099347.15600347 30 atime=1717099347.139003378 29 ctime=1717099347.15600347 elk-9.6.8/tests-libxc/test_005/0000755002504400250440000000000014626155523017726 5ustar00dewhurstdewhurst00000000000000elk-9.6.8/tests-libxc/test_005/PaxHeaders/TEST_705.OUT_0000644000000000000000000000013214626155523017106 xustar0030 mtime=1717099347.141003389 30 atime=1717099347.141003389 30 ctime=1717099347.141003389 elk-9.6.8/tests-libxc/test_005/TEST_705.OUT_0000644002504400250440000000010114626155523021620 0ustar00dewhurstdewhurst00000000000000'number of crystal symmetries' 1 1 1 48 elk-9.6.8/tests-libxc/test_005/PaxHeaders/TEST_900.OUT_0000644000000000000000000000012414626155523017104 xustar0028 mtime=1717099347.1430034 28 atime=1717099347.1430034 28 ctime=1717099347.1430034 elk-9.6.8/tests-libxc/test_005/TEST_900.OUT_0000644002504400250440000000007014626155523021622 0ustar00dewhurstdewhurst00000000000000'number of G-vectors' 1 1 1 7799 elk-9.6.8/tests-libxc/test_005/PaxHeaders/TEST_910.OUT_0000644000000000000000000000013214626155523017104 xustar0030 mtime=1717099347.145003411 30 atime=1717099347.145003411 30 ctime=1717099347.145003411 elk-9.6.8/tests-libxc/test_005/TEST_910.OUT_0000644002504400250440000000301714626155523021627 0ustar00dewhurstdewhurst00000000000000'k-points (Cartesian)' 2 48 0.100000000000E-07 1 0.00000000000 2 0.00000000000 3 0.00000000000 4 0.102066038128 5 0.102066038128 6 -0.102066038128 7 0.204132076257 8 0.204132076257 9 -0.204132076257 10 0.306198114385 11 0.306198114385 12 -0.306198114385 13 0.204132076257 14 0.358605526043E-17 15 -0.358605526043E-17 16 0.306198114385 17 0.102066038128 18 -0.102066038128 19 0.408264152513 20 0.204132076257 21 -0.204132076257 22 0.510330190642 23 0.306198114385 24 -0.306198114385 25 0.612396228770 26 0.408264152513 27 -0.408264152513 28 0.408264152513 29 0.717211052085E-17 30 -0.717211052085E-17 31 0.510330190642 32 0.102066038128 33 -0.102066038128 34 0.612396228770 35 0.204132076257 36 -0.204132076257 37 0.612396228770 38 0.00000000000 39 0.00000000000 40 0.408264152513 41 0.204132076257 42 -0.241695203552E-16 43 0.510330190642 44 0.306198114385 45 -0.102066038128 46 0.612396228770 47 0.204132076257 48 0.174638430682E-16 elk-9.6.8/tests-libxc/test_005/PaxHeaders/elk.in0000644000000000000000000000013214626155523016307 xustar0030 mtime=1717099347.147003421 30 atime=1717099347.147003421 30 ctime=1717099347.147003421 elk-9.6.8/tests-libxc/test_005/elk.in0000644002504400250440000000043314626155523021031 0ustar00dewhurstdewhurst00000000000000 ! Hybrid functional test. tasks 0 5 500 test .true. xctype 100 0 406 ngridk 6 6 6 ngridq 3 3 3 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-9.6.8/tests-libxc/test_005/PaxHeaders/TEST_500.OUT_0000644000000000000000000000013214626155523017077 xustar0030 mtime=1717099347.149003432 30 atime=1717099347.149003432 30 ctime=1717099347.149003432 elk-9.6.8/tests-libxc/test_005/TEST_500.OUT_0000644002504400250440000000013514626155523021620 0ustar00dewhurstdewhurst00000000000000'DOS at Fermi energy' 2 1 0.500000000000E-02 1 0.391148825236E-11 elk-9.6.8/tests-libxc/test_005/PaxHeaders/TEST_510.OUT_0000644000000000000000000000013214626155523017100 xustar0030 mtime=1717099347.151003443 30 atime=1717099347.150003438 30 ctime=1717099347.151003443 elk-9.6.8/tests-libxc/test_005/TEST_510.OUT_0000644002504400250440000000014514626155523021622 0ustar00dewhurstdewhurst00000000000000'estimated indirect band gap' 2 1 0.200000000000E-01 1 0.825172438226E-01 elk-9.6.8/tests-libxc/test_005/PaxHeaders/TEST_400.OUT_0000644000000000000000000000013214626155523017076 xustar0030 mtime=1717099347.153003454 30 atime=1717099347.152003448 30 ctime=1717099347.153003454 elk-9.6.8/tests-libxc/test_005/TEST_400.OUT_0000644002504400250440000000014114626155523021614 0ustar00dewhurstdewhurst00000000000000'calculated total charge' 2 1 0.100000000000E-05 1 27.9912911819 elk-9.6.8/tests-libxc/test_005/PaxHeaders/TEST_000.OUT_0000644000000000000000000000013214626155523017072 xustar0030 mtime=1717099347.154003459 30 atime=1717099347.154003459 30 ctime=1717099347.154003459 elk-9.6.8/tests-libxc/test_005/TEST_000.OUT_0000644002504400250440000000012614626155523021613 0ustar00dewhurstdewhurst00000000000000'total energy' 2 1 0.100000000000E-04 1 -580.219623011 elk-9.6.8/tests-libxc/test_005/PaxHeaders/TEST_800.OUT_0000644000000000000000000000012714626155523017106 xustar0029 mtime=1717099347.15600347 29 atime=1717099347.15600347 29 ctime=1717099347.15600347 elk-9.6.8/tests-libxc/test_005/TEST_800.OUT_0000644002504400250440000000032314626155523021622 0ustar00dewhurstdewhurst00000000000000'regularised Coulomb Green''s function (gclq)' 2 4 0.100000000000E-07 1 887.808555744 2 115.086263427 3 80.8738408354 4 40.8197509399 elk-9.6.8/tests-libxc/PaxHeaders/test_0060000644000000000000000000000013214626155523015130 xustar0030 mtime=1717099347.172003556 30 atime=1717099347.157003475 30 ctime=1717099347.172003556 elk-9.6.8/tests-libxc/test_006/0000755002504400250440000000000014626155523017727 5ustar00dewhurstdewhurst00000000000000elk-9.6.8/tests-libxc/test_006/PaxHeaders/TEST_500.OUT_0000644000000000000000000000013214626155523017100 xustar0030 mtime=1717099347.159003486 30 atime=1717099347.159003486 30 ctime=1717099347.159003486 elk-9.6.8/tests-libxc/test_006/TEST_500.OUT_0000644002504400250440000000013514626155523021621 0ustar00dewhurstdewhurst00000000000000'DOS at Fermi energy' 2 1 0.500000000000E-02 1 21.9312190828 elk-9.6.8/tests-libxc/test_006/PaxHeaders/TEST_510.OUT_0000644000000000000000000000013214626155523017101 xustar0030 mtime=1717099347.161003497 30 atime=1717099347.161003497 30 ctime=1717099347.161003497 elk-9.6.8/tests-libxc/test_006/TEST_510.OUT_0000644002504400250440000000014514626155523021623 0ustar00dewhurstdewhurst00000000000000'estimated indirect band gap' 2 1 0.200000000000E-01 1 0.267840899055E-01 elk-9.6.8/tests-libxc/test_006/PaxHeaders/TEST_400.OUT_0000644000000000000000000000013214626155523017077 xustar0030 mtime=1717099347.163003508 30 atime=1717099347.163003508 30 ctime=1717099347.163003508 elk-9.6.8/tests-libxc/test_006/TEST_400.OUT_0000644002504400250440000000014114626155523021615 0ustar00dewhurstdewhurst00000000000000'calculated total charge' 2 1 0.100000000000E-05 1 63.9836094643 elk-9.6.8/tests-libxc/test_006/PaxHeaders/TEST_000.OUT_0000644000000000000000000000013214626155523017073 xustar0030 mtime=1717099347.165003518 30 atime=1717099347.164003513 30 ctime=1717099347.165003518 elk-9.6.8/tests-libxc/test_006/TEST_000.OUT_0000644002504400250440000000012614626155523021614 0ustar00dewhurstdewhurst00000000000000'total energy' 2 1 0.100000000000E-04 1 -4207.93567931 elk-9.6.8/tests-libxc/test_006/PaxHeaders/TEST_705.OUT_0000644000000000000000000000013214626155523017107 xustar0030 mtime=1717099347.167003529 30 atime=1717099347.166003524 30 ctime=1717099347.167003529 elk-9.6.8/tests-libxc/test_006/TEST_705.OUT_0000644002504400250440000000010114626155523021621 0ustar00dewhurstdewhurst00000000000000'number of crystal symmetries' 1 1 1 24 elk-9.6.8/tests-libxc/test_006/PaxHeaders/TEST_900.OUT_0000644000000000000000000000013214626155523017104 xustar0030 mtime=1717099347.168003535 30 atime=1717099347.168003535 30 ctime=1717099347.168003535 elk-9.6.8/tests-libxc/test_006/TEST_900.OUT_0000644002504400250440000000007014626155523021623 0ustar00dewhurstdewhurst00000000000000'number of G-vectors' 1 1 1 8873 elk-9.6.8/tests-libxc/test_006/PaxHeaders/TEST_910.OUT_0000644000000000000000000000013214626155523017105 xustar0030 mtime=1717099347.170003545 30 atime=1717099347.170003545 30 ctime=1717099347.170003545 elk-9.6.8/tests-libxc/test_006/TEST_910.OUT_0000644002504400250440000000174114626155523021632 0ustar00dewhurstdewhurst00000000000000'k-points (Cartesian)' 2 30 0.100000000000E-07 1 0.00000000000 2 0.00000000000 3 0.00000000000 4 0.146981971254 5 0.146981971254 6 -0.146981971254 7 0.293963942509 8 0.293963942509 9 -0.293963942509 10 0.440945913763 11 0.440945913763 12 -0.440945913763 13 0.293963942509 14 0.00000000000 15 0.00000000000 16 0.440945913763 17 0.146981971254 18 -0.146981971254 19 0.587927885017 20 0.293963942509 21 -0.293963942509 22 0.587927885017 23 0.00000000000 24 0.00000000000 25 0.734909856272 26 0.146981971254 27 -0.146981971254 28 0.587927885017 29 0.293963942509 30 0.00000000000 elk-9.6.8/tests-libxc/test_006/PaxHeaders/elk.in0000644000000000000000000000013214626155523016310 xustar0030 mtime=1717099347.172003556 30 atime=1717099347.172003556 30 ctime=1717099347.172003556 elk-9.6.8/tests-libxc/test_006/elk.in0000644002504400250440000000072514626155523021036 0ustar00dewhurstdewhurst00000000000000 ! meta-GGA test using the deorbitalised SCAN functional tasks 0 500 test .true. ! deorbitalised SCAN xctype 100 700 702 ngridk 4 4 4 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-9.6.8/tests-libxc/PaxHeaders/test_0010000644000000000000000000000013214626155523015123 xustar0030 mtime=1717099347.189003648 30 atime=1717099347.173003561 30 ctime=1717099347.189003648 elk-9.6.8/tests-libxc/test_001/0000755002504400250440000000000014626155523017722 5ustar00dewhurstdewhurst00000000000000elk-9.6.8/tests-libxc/test_001/PaxHeaders/TEST_400.OUT_0000644000000000000000000000013214626155523017072 xustar0030 mtime=1717099347.175003572 30 atime=1717099347.175003572 30 ctime=1717099347.175003572 elk-9.6.8/tests-libxc/test_001/TEST_400.OUT_0000644002504400250440000000014114626155523021610 0ustar00dewhurstdewhurst00000000000000'calculated total charge' 2 1 0.100000000000E-05 1 63.9847293173 elk-9.6.8/tests-libxc/test_001/PaxHeaders/TEST_500.OUT_0000644000000000000000000000013214626155523017073 xustar0030 mtime=1717099347.177003583 30 atime=1717099347.176003578 30 ctime=1717099347.177003583 elk-9.6.8/tests-libxc/test_001/TEST_500.OUT_0000644002504400250440000000013514626155523021614 0ustar00dewhurstdewhurst00000000000000'DOS at Fermi energy' 2 1 0.500000000000E-02 1 0.569004872490E-04 elk-9.6.8/tests-libxc/test_001/PaxHeaders/TEST_510.OUT_0000644000000000000000000000013214626155523017074 xustar0030 mtime=1717099347.179003594 30 atime=1717099347.178003589 30 ctime=1717099347.179003594 elk-9.6.8/tests-libxc/test_001/TEST_510.OUT_0000644002504400250440000000014514626155523021616 0ustar00dewhurstdewhurst00000000000000'estimated indirect band gap' 2 1 0.200000000000E-01 1 0.289173558004E-01 elk-9.6.8/tests-libxc/test_001/PaxHeaders/TEST_705.OUT_0000644000000000000000000000013214626155523017102 xustar0030 mtime=1717099347.181003605 30 atime=1717099347.180003599 30 ctime=1717099347.181003605 elk-9.6.8/tests-libxc/test_001/TEST_705.OUT_0000644002504400250440000000010114626155523021614 0ustar00dewhurstdewhurst00000000000000'number of crystal symmetries' 1 1 1 24 elk-9.6.8/tests-libxc/test_001/PaxHeaders/TEST_900.OUT_0000644000000000000000000000012714626155523017103 xustar0029 mtime=1717099347.18200361 29 atime=1717099347.18200361 29 ctime=1717099347.18200361 elk-9.6.8/tests-libxc/test_001/TEST_900.OUT_0000644002504400250440000000007014626155523021616 0ustar00dewhurstdewhurst00000000000000'number of G-vectors' 1 1 1 8873 elk-9.6.8/tests-libxc/test_001/PaxHeaders/TEST_910.OUT_0000644000000000000000000000013214626155523017100 xustar0030 mtime=1717099347.184003621 30 atime=1717099347.184003621 30 ctime=1717099347.184003621 elk-9.6.8/tests-libxc/test_001/TEST_910.OUT_0000644002504400250440000000174114626155523021625 0ustar00dewhurstdewhurst00000000000000'k-points (Cartesian)' 2 30 0.100000000000E-07 1 0.00000000000 2 0.00000000000 3 0.00000000000 4 0.146981971254 5 0.146981971254 6 -0.146981971254 7 0.293963942509 8 0.293963942509 9 -0.293963942509 10 0.440945913763 11 0.440945913763 12 -0.440945913763 13 0.293963942509 14 0.00000000000 15 0.00000000000 16 0.440945913763 17 0.146981971254 18 -0.146981971254 19 0.587927885017 20 0.293963942509 21 -0.293963942509 22 0.587927885017 23 0.00000000000 24 0.00000000000 25 0.734909856272 26 0.146981971254 27 -0.146981971254 28 0.587927885017 29 0.293963942509 30 0.00000000000 elk-9.6.8/tests-libxc/test_001/PaxHeaders/elk.in0000644000000000000000000000013214626155523016303 xustar0030 mtime=1717099347.187003637 30 atime=1717099347.186003632 30 ctime=1717099347.187003637 elk-9.6.8/tests-libxc/test_001/elk.in0000644002504400250440000000070514626155523021027 0ustar00dewhurstdewhurst00000000000000 ! meta-GGA test using the SCAN functional tasks 0 500 test .true. maxscl 2 ! SCAN xctype 100 263 267 ngridk 4 4 4 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-9.6.8/tests-libxc/test_001/PaxHeaders/TEST_000.OUT_0000644000000000000000000000013214626155523017066 xustar0030 mtime=1717099347.189003648 30 atime=1717099347.189003648 30 ctime=1717099347.189003648 elk-9.6.8/tests-libxc/test_001/TEST_000.OUT_0000644002504400250440000000012614626155523021607 0ustar00dewhurstdewhurst00000000000000'total energy' 2 1 0.100000000000E-04 1 -4226.48166055 elk-9.6.8/tests-libxc/PaxHeaders/test_0020000644000000000000000000000013214626155523015124 xustar0030 mtime=1717099347.211003766 30 atime=1717099347.191003658 30 ctime=1717099347.211003766 elk-9.6.8/tests-libxc/test_002/0000755002504400250440000000000014626155523017723 5ustar00dewhurstdewhurst00000000000000elk-9.6.8/tests-libxc/test_002/PaxHeaders/TEST_705.OUT_0000644000000000000000000000013214626155523017103 xustar0030 mtime=1717099347.192003664 30 atime=1717099347.192003664 30 ctime=1717099347.192003664 elk-9.6.8/tests-libxc/test_002/TEST_705.OUT_0000644002504400250440000000010114626155523021615 0ustar00dewhurstdewhurst00000000000000'number of crystal symmetries' 1 1 1 48 elk-9.6.8/tests-libxc/test_002/PaxHeaders/TEST_900.OUT_0000644000000000000000000000013214626155523017100 xustar0030 mtime=1717099347.194003675 30 atime=1717099347.194003675 30 ctime=1717099347.194003675 elk-9.6.8/tests-libxc/test_002/TEST_900.OUT_0000644002504400250440000000007014626155523021617 0ustar00dewhurstdewhurst00000000000000'number of G-vectors' 1 1 1 2109 elk-9.6.8/tests-libxc/test_002/PaxHeaders/TEST_910.OUT_0000644000000000000000000000013214626155523017101 xustar0030 mtime=1717099347.196003685 30 atime=1717099347.196003685 30 ctime=1717099347.196003685 elk-9.6.8/tests-libxc/test_002/TEST_910.OUT_0000644002504400250440000001052214626155523021623 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.215763098199E-16 69 0.215763098199E-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.385437305256E-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.308963289789E-17 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.246659427177E-16 133 0.754736973835 134 0.377368486918 135 0.770874610511E-16 136 0.849079095565 137 0.471710608647 138 -0.943421217294E-01 139 0.943421217294 140 0.377368486918 141 0.493318854355E-16 elk-9.6.8/tests-libxc/test_002/PaxHeaders/TEST_500.OUT_0000644000000000000000000000013214626155523017074 xustar0030 mtime=1717099347.198003696 30 atime=1717099347.198003696 30 ctime=1717099347.198003696 elk-9.6.8/tests-libxc/test_002/TEST_500.OUT_0000644002504400250440000000013514626155523021615 0ustar00dewhurstdewhurst00000000000000'DOS at Fermi energy' 2 1 0.500000000000E-02 1 53.6679045980 elk-9.6.8/tests-libxc/test_002/PaxHeaders/TEST_510.OUT_0000644000000000000000000000013214626155523017075 xustar0030 mtime=1717099347.200003707 30 atime=1717099347.200003707 30 ctime=1717099347.200003707 elk-9.6.8/tests-libxc/test_002/TEST_510.OUT_0000644002504400250440000000014514626155523021617 0ustar00dewhurstdewhurst00000000000000'estimated indirect band gap' 2 1 0.200000000000E-01 1 0.735335264392E-03 elk-9.6.8/tests-libxc/test_002/PaxHeaders/TEST_400.OUT_0000644000000000000000000000013214626155523017073 xustar0030 mtime=1717099347.202003718 30 atime=1717099347.202003718 30 ctime=1717099347.202003718 elk-9.6.8/tests-libxc/test_002/TEST_400.OUT_0000644002504400250440000000014114626155523021611 0ustar00dewhurstdewhurst00000000000000'calculated total charge' 2 1 0.100000000000E-05 1 27.9937806972 elk-9.6.8/tests-libxc/test_002/PaxHeaders/TEST_450.OUT_0000644000000000000000000000013214626155523017100 xustar0030 mtime=1717099347.204003728 30 atime=1717099347.204003728 30 ctime=1717099347.204003728 elk-9.6.8/tests-libxc/test_002/TEST_450.OUT_0000644002504400250440000000014014626155523021615 0ustar00dewhurstdewhurst00000000000000'total moment magnitude' 2 1 0.100000000000E-02 1 0.717128191571 elk-9.6.8/tests-libxc/test_002/PaxHeaders/TEST_000.OUT_0000644000000000000000000000013214626155523017067 xustar0030 mtime=1717099347.206003739 30 atime=1717099347.205003734 30 ctime=1717099347.206003739 elk-9.6.8/tests-libxc/test_002/TEST_000.OUT_0000644002504400250440000000012614626155523021610 0ustar00dewhurstdewhurst00000000000000'total energy' 2 1 0.100000000000E-04 1 -1517.12685486 elk-9.6.8/tests-libxc/test_002/PaxHeaders/TEST_800.OUT_0000644000000000000000000000013214626155523017077 xustar0030 mtime=1717099347.207003745 30 atime=1717099347.207003745 30 ctime=1717099347.207003745 elk-9.6.8/tests-libxc/test_002/TEST_800.OUT_0000644002504400250440000000301014626155523021613 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-9.6.8/tests-libxc/test_002/PaxHeaders/TEST_330.OUT_0000644000000000000000000000013214626155523017075 xustar0030 mtime=1717099347.209003756 30 atime=1717099347.209003756 30 ctime=1717099347.209003756 elk-9.6.8/tests-libxc/test_002/TEST_330.OUT_0000644002504400250440000000626314626155523021626 0ustar00dewhurstdewhurst00000000000000'transverse response function' 3 60 0.100000000000E-01 1 0.998454572118 -0.467157225222E-01 2 0.985254295756 -0.486202134049E-01 3 0.971915975682 -0.502998164699E-01 4 0.958113442203 -0.523470471077E-01 5 0.944212609173 -0.553652990133E-01 6 0.930737263722 -0.595232154872E-01 7 0.918173487954 -0.650745398295E-01 8 0.907947144628 -0.721515848342E-01 9 0.901864889759 -0.786961881796E-01 10 0.898379038031 -0.811851222668E-01 11 0.893712562043 -0.800277566581E-01 12 0.887721005435 -0.774406571429E-01 13 0.880635378571 -0.728118070600E-01 14 0.870489515266 -0.666700666030E-01 15 0.857085441761 -0.614212461557E-01 16 0.841839395126 -0.582001440816E-01 17 0.825782606288 -0.569736243025E-01 18 0.809343804837 -0.575818301699E-01 19 0.792744490269 -0.601029741665E-01 20 0.776329826898 -0.648862386677E-01 21 0.760942330699 -0.724281599319E-01 22 0.748359903108 -0.827667939319E-01 23 0.740827640897 -0.939037007609E-01 24 0.737768197311 -0.101625836820 25 0.735025372979 -0.104453744154 26 0.729976730005 -0.104028477962 27 0.720781188729 -0.102283584107 28 0.707003294927 -0.103106397663 29 0.691588801943 -0.109598665865 30 0.678356108836 -0.122163970523 31 0.670825733903 -0.139607747590 32 0.672188389147 -0.158453460660 33 0.682702761149 -0.173696431428 34 0.701563015727 -0.180576911070 35 0.722834044750 -0.171325924781 36 0.732223583850 -0.148133111387 37 0.725738931079 -0.124480700745 38 0.709840399489 -0.108117759602 39 0.690651997153 -0.999890629192E-01 40 0.671966043546 -0.990688839806E-01 41 0.656802712838 -0.103746880753 42 0.647504814613 -0.110649753464 43 0.643058843121 -0.115151267618 44 0.639168329154 -0.115912084803 45 0.633911105287 -0.115571430841 46 0.628500924038 -0.115082813578 47 0.622598354392 -0.113854276528 48 0.615849165101 -0.113042754369 49 0.609737764674 -0.112527329116 50 0.603395061709 -0.110650264085 51 0.594956450755 -0.108753113687 52 0.585504800900 -0.108827057466 53 0.576823248261 -0.110496700879 54 0.568883403877 -0.112598699637 55 0.561221350020 -0.115762883804 56 0.555841016762 -0.120150172816 57 0.553198817448 -0.122392933356 58 0.549319209040 -0.121394913689 59 0.542466371049 -0.120696115546 60 0.534992439237 -0.122650885473 elk-9.6.8/tests-libxc/test_002/PaxHeaders/elk.in0000644000000000000000000000013214626155523016304 xustar0030 mtime=1717099347.211003766 30 atime=1717099347.211003766 30 ctime=1717099347.211003766 elk-9.6.8/tests-libxc/test_002/elk.in0000644002504400250440000000116414626155523021030 0ustar00dewhurstdewhurst00000000000000 ! Magnetic response of fcc nickel. tasks 0 330 500 test .true. xctype 100 532 12 fxctype 100 532 12 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-9.6.8/tests-libxc/PaxHeaders/test_0030000644000000000000000000000013214626155523015125 xustar0030 mtime=1717099347.231003874 30 atime=1717099347.213003777 30 ctime=1717099347.231003874 elk-9.6.8/tests-libxc/test_003/0000755002504400250440000000000014626155523017724 5ustar00dewhurstdewhurst00000000000000elk-9.6.8/tests-libxc/test_003/PaxHeaders/elk.in0000644000000000000000000000013214626155523016305 xustar0030 mtime=1717099347.215003788 30 atime=1717099347.214003782 30 ctime=1717099347.215003788 elk-9.6.8/tests-libxc/test_003/elk.in0000644002504400250440000000111314626155523021023 0ustar00dewhurstdewhurst00000000000000 ! Test of Libxc GGA, spin-polarised and with forces. tasks 0 500 test .true. mixtype 1 xctype 100 101 130 tforce .true. ngridk 4 4 4 autoswidth .true. autolinengy .true. spinorb .true. cmagz .true. bfieldc 0.0 0.0 0.1 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.1 0.51 0.48 elk-9.6.8/tests-libxc/test_003/PaxHeaders/TEST_750.OUT_0000644000000000000000000000013214626155523017104 xustar0030 mtime=1717099347.217003799 30 atime=1717099347.216003793 30 ctime=1717099347.217003799 elk-9.6.8/tests-libxc/test_003/TEST_750.OUT_0000644002504400250440000000036114626155523021626 0ustar00dewhurstdewhurst00000000000000'total forces' 2 6 0.100000000000E-02 1 0.107842460625E-01 2 0.130383395332E-01 3 -0.112310515578E-01 4 -0.107842460625E-01 5 -0.130383395332E-01 6 0.112310515578E-01 elk-9.6.8/tests-libxc/test_003/PaxHeaders/TEST_705.OUT_0000644000000000000000000000013214626155523017104 xustar0030 mtime=1717099347.218003804 30 atime=1717099347.218003804 30 ctime=1717099347.218003804 elk-9.6.8/tests-libxc/test_003/TEST_705.OUT_0000644002504400250440000000010114626155523021616 0ustar00dewhurstdewhurst00000000000000'number of crystal symmetries' 1 1 1 1 elk-9.6.8/tests-libxc/test_003/PaxHeaders/TEST_900.OUT_0000644000000000000000000000013214626155523017101 xustar0030 mtime=1717099347.220003815 30 atime=1717099347.220003815 30 ctime=1717099347.220003815 elk-9.6.8/tests-libxc/test_003/TEST_900.OUT_0000644002504400250440000000007014626155523021620 0ustar00dewhurstdewhurst00000000000000'number of G-vectors' 1 1 1 4735 elk-9.6.8/tests-libxc/test_003/PaxHeaders/TEST_910.OUT_0000644000000000000000000000013214626155523017102 xustar0030 mtime=1717099347.222003826 30 atime=1717099347.222003826 30 ctime=1717099347.222003826 elk-9.6.8/tests-libxc/test_003/TEST_910.OUT_0000644002504400250440000001357714626155523021641 0ustar00dewhurstdewhurst00000000000000'k-points (Cartesian)' 2 192 0.100000000000E-07 1 0.00000000000 2 0.00000000000 3 0.00000000000 4 0.461998919646 5 0.00000000000 6 0.00000000000 7 0.923997839291 8 0.00000000000 9 0.00000000000 10 1.38599675894 11 0.00000000000 12 0.00000000000 13 -0.230999459823 14 0.230999459823 15 0.00000000000 16 0.230999459823 17 0.230999459823 18 0.00000000000 19 0.692998379468 20 0.230999459823 21 0.00000000000 22 1.15499729911 23 0.230999459823 24 0.00000000000 25 -0.461998919646 26 0.461998919646 27 0.00000000000 28 0.00000000000 29 0.461998919646 30 0.00000000000 31 0.461998919646 32 0.461998919646 33 0.00000000000 34 0.923997839291 35 0.461998919646 36 0.00000000000 37 -0.692998379468 38 0.692998379468 39 0.00000000000 40 -0.230999459823 41 0.692998379468 42 0.00000000000 43 0.230999459823 44 0.692998379468 45 0.00000000000 46 0.692998379468 47 0.692998379468 48 0.00000000000 49 0.00000000000 50 0.00000000000 51 0.224399475256 52 0.461998919646 53 0.00000000000 54 0.224399475256 55 0.923997839291 56 0.00000000000 57 0.224399475256 58 1.38599675894 59 0.00000000000 60 0.224399475256 61 -0.230999459823 62 0.230999459823 63 0.224399475256 64 0.230999459823 65 0.230999459823 66 0.224399475256 67 0.692998379468 68 0.230999459823 69 0.224399475256 70 1.15499729911 71 0.230999459823 72 0.224399475256 73 -0.461998919646 74 0.461998919646 75 0.224399475256 76 0.00000000000 77 0.461998919646 78 0.224399475256 79 0.461998919646 80 0.461998919646 81 0.224399475256 82 0.923997839291 83 0.461998919646 84 0.224399475256 85 -0.692998379468 86 0.692998379468 87 0.224399475256 88 -0.230999459823 89 0.692998379468 90 0.224399475256 91 0.230999459823 92 0.692998379468 93 0.224399475256 94 0.692998379468 95 0.692998379468 96 0.224399475256 97 0.00000000000 98 0.00000000000 99 0.448798950513 100 0.461998919646 101 0.00000000000 102 0.448798950513 103 0.923997839291 104 0.00000000000 105 0.448798950513 106 1.38599675894 107 0.00000000000 108 0.448798950513 109 -0.230999459823 110 0.230999459823 111 0.448798950513 112 0.230999459823 113 0.230999459823 114 0.448798950513 115 0.692998379468 116 0.230999459823 117 0.448798950513 118 1.15499729911 119 0.230999459823 120 0.448798950513 121 -0.461998919646 122 0.461998919646 123 0.448798950513 124 0.00000000000 125 0.461998919646 126 0.448798950513 127 0.461998919646 128 0.461998919646 129 0.448798950513 130 0.923997839291 131 0.461998919646 132 0.448798950513 133 -0.692998379468 134 0.692998379468 135 0.448798950513 136 -0.230999459823 137 0.692998379468 138 0.448798950513 139 0.230999459823 140 0.692998379468 141 0.448798950513 142 0.692998379468 143 0.692998379468 144 0.448798950513 145 0.00000000000 146 0.00000000000 147 0.673198425769 148 0.461998919646 149 0.00000000000 150 0.673198425769 151 0.923997839291 152 0.00000000000 153 0.673198425769 154 1.38599675894 155 0.00000000000 156 0.673198425769 157 -0.230999459823 158 0.230999459823 159 0.673198425769 160 0.230999459823 161 0.230999459823 162 0.673198425769 163 0.692998379468 164 0.230999459823 165 0.673198425769 166 1.15499729911 167 0.230999459823 168 0.673198425769 169 -0.461998919646 170 0.461998919646 171 0.673198425769 172 0.00000000000 173 0.461998919646 174 0.673198425769 175 0.461998919646 176 0.461998919646 177 0.673198425769 178 0.923997839291 179 0.461998919646 180 0.673198425769 181 -0.692998379468 182 0.692998379468 183 0.673198425769 184 -0.230999459823 185 0.692998379468 186 0.673198425769 187 0.230999459823 188 0.692998379468 189 0.673198425769 190 0.692998379468 191 0.692998379468 192 0.673198425769 elk-9.6.8/tests-libxc/test_003/PaxHeaders/TEST_500.OUT_0000644000000000000000000000013214626155523017075 xustar0030 mtime=1717099347.224003836 30 atime=1717099347.224003836 30 ctime=1717099347.224003836 elk-9.6.8/tests-libxc/test_003/TEST_500.OUT_0000644002504400250440000000013514626155523021616 0ustar00dewhurstdewhurst00000000000000'DOS at Fermi energy' 2 1 0.500000000000E-02 1 89.6947555861 elk-9.6.8/tests-libxc/test_003/PaxHeaders/TEST_510.OUT_0000644000000000000000000000013214626155523017076 xustar0030 mtime=1717099347.226003847 30 atime=1717099347.225003842 30 ctime=1717099347.226003847 elk-9.6.8/tests-libxc/test_003/TEST_510.OUT_0000644002504400250440000000014514626155523021620 0ustar00dewhurstdewhurst00000000000000'estimated indirect band gap' 2 1 0.200000000000E-01 1 0.260021462097E-03 elk-9.6.8/tests-libxc/test_003/PaxHeaders/TEST_450.OUT_0000644000000000000000000000013214626155523017101 xustar0030 mtime=1717099347.228003858 30 atime=1717099347.227003852 30 ctime=1717099347.228003858 elk-9.6.8/tests-libxc/test_003/TEST_450.OUT_0000644002504400250440000000014014626155523021616 0ustar00dewhurstdewhurst00000000000000'total moment magnitude' 2 1 0.100000000000E-02 1 2.91874277182 elk-9.6.8/tests-libxc/test_003/PaxHeaders/TEST_400.OUT_0000644000000000000000000000013214626155523017074 xustar0030 mtime=1717099347.229003863 30 atime=1717099347.229003863 30 ctime=1717099347.229003863 elk-9.6.8/tests-libxc/test_003/TEST_400.OUT_0000644002504400250440000000014114626155523021612 0ustar00dewhurstdewhurst00000000000000'calculated total charge' 2 1 0.100000000000E-05 1 52.9968860696 elk-9.6.8/tests-libxc/test_003/PaxHeaders/TEST_000.OUT_0000644000000000000000000000013214626155523017070 xustar0030 mtime=1717099347.231003874 30 atime=1717099347.231003874 30 ctime=1717099347.231003874 elk-9.6.8/tests-libxc/test_003/TEST_000.OUT_0000644002504400250440000000012614626155523021611 0ustar00dewhurstdewhurst00000000000000'total energy' 2 1 0.100000000000E-04 1 -2666.40030332 elk-9.6.8/PaxHeaders/species0000644000000000000000000000013214626155523012756 xustar0030 mtime=1717099347.511005383 30 atime=1717099347.241003928 30 ctime=1717099347.511005383 elk-9.6.8/species/0000755002504400250440000000000014626155523015555 5ustar00dewhurstdewhurst00000000000000elk-9.6.8/species/PaxHeaders/Ac.in0000644000000000000000000000013214626155523013706 xustar0030 mtime=1717099347.254003998 30 atime=1717099347.254003998 30 ctime=1717099347.254003998 elk-9.6.8/species/Ac.in0000644002504400250440000000425214626155523016433 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-9.6.8/species/PaxHeaders/Ag.in0000644000000000000000000000013214626155523013712 xustar0030 mtime=1717099347.257004014 30 atime=1717099347.256004009 30 ctime=1717099347.257004014 elk-9.6.8/species/Ag.in0000644002504400250440000000356614626155523016446 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-9.6.8/species/PaxHeaders/Al.in0000644000000000000000000000013214626155523013717 xustar0030 mtime=1717099347.259004025 30 atime=1717099347.259004025 30 ctime=1717099347.259004025 elk-9.6.8/species/Al.in0000644002504400250440000000227614626155523016450 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-9.6.8/species/PaxHeaders/Am.in0000644000000000000000000000013214626155523013720 xustar0030 mtime=1717099347.262004041 30 atime=1717099347.261004036 30 ctime=1717099347.262004041 elk-9.6.8/species/Am.in0000644002504400250440000000453214626155523016446 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-9.6.8/species/PaxHeaders/Ar.in0000644000000000000000000000013214626155523013725 xustar0030 mtime=1717099347.264004052 30 atime=1717099347.263004046 30 ctime=1717099347.264004052 elk-9.6.8/species/Ar.in0000644002504400250440000000233214626155523016447 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-9.6.8/species/PaxHeaders/As.in0000644000000000000000000000013214626155523013726 xustar0030 mtime=1717099347.266004063 30 atime=1717099347.266004063 30 ctime=1717099347.266004063 elk-9.6.8/species/As.in0000644002504400250440000000321614626155523016452 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-9.6.8/species/PaxHeaders/At.in0000644000000000000000000000013214626155523013727 xustar0030 mtime=1717099347.269004079 30 atime=1717099347.268004073 30 ctime=1717099347.269004079 elk-9.6.8/species/At.in0000644002504400250440000000373614626155523016462 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-9.6.8/species/PaxHeaders/Au.in0000644000000000000000000000012714626155523013734 xustar0029 mtime=1717099347.27100409 29 atime=1717099347.27100409 29 ctime=1717099347.27100409 elk-9.6.8/species/Au.in0000644002504400250440000000431614626155523016456 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-9.6.8/species/PaxHeaders/Ba.in0000644000000000000000000000013214626155523013705 xustar0030 mtime=1717099347.274004106 30 atime=1717099347.274004106 30 ctime=1717099347.274004106 elk-9.6.8/species/Ba.in0000644002504400250440000000371214626155523016432 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-9.6.8/species/PaxHeaders/Be.in0000644000000000000000000000013214626155523013711 xustar0030 mtime=1717099347.276004116 30 atime=1717099347.276004116 30 ctime=1717099347.276004116 elk-9.6.8/species/Be.in0000644002504400250440000000167214626155523016441 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-9.6.8/species/PaxHeaders/Bi.in0000644000000000000000000000013214626155523013715 xustar0030 mtime=1717099347.279004133 30 atime=1717099347.279004133 30 ctime=1717099347.279004133 elk-9.6.8/species/Bi.in0000644002504400250440000000373614626155523016450 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-9.6.8/species/PaxHeaders/B.in0000644000000000000000000000013214626155523013544 xustar0030 mtime=1717099347.281004143 30 atime=1717099347.281004143 30 ctime=1717099347.281004143 elk-9.6.8/species/B.in0000644002504400250440000000172614626155523016274 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-9.6.8/species/PaxHeaders/Bk.in0000644000000000000000000000013014626155523013715 xustar0029 mtime=1717099347.28400416 30 atime=1717099347.283004154 29 ctime=1717099347.28400416 elk-9.6.8/species/Bk.in0000644002504400250440000000453214626155523016445 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-9.6.8/species/PaxHeaders/Br.in0000644000000000000000000000012714626155523013732 xustar0029 mtime=1717099347.28600417 29 atime=1717099347.28600417 29 ctime=1717099347.28600417 elk-9.6.8/species/Br.in0000644002504400250440000000321614626155523016452 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-9.6.8/species/PaxHeaders/Ca.in0000644000000000000000000000013214626155523013706 xustar0030 mtime=1717099347.289004186 30 atime=1717099347.288004181 30 ctime=1717099347.289004186 elk-9.6.8/species/Ca.in0000644002504400250440000000261214626155523016431 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-9.6.8/species/PaxHeaders/Cd.in0000644000000000000000000000013214626155523013711 xustar0030 mtime=1717099347.291004197 30 atime=1717099347.291004197 30 ctime=1717099347.291004197 elk-9.6.8/species/Cd.in0000644002504400250440000000334214626155523016435 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-9.6.8/species/PaxHeaders/Ce.in0000644000000000000000000000013214626155523013712 xustar0030 mtime=1717099347.293004208 30 atime=1717099347.293004208 30 ctime=1717099347.293004208 elk-9.6.8/species/Ce.in0000644002504400250440000000374614626155523016446 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-9.6.8/species/PaxHeaders/Cf.in0000644000000000000000000000013214626155523013713 xustar0030 mtime=1717099347.296004224 30 atime=1717099347.295004219 30 ctime=1717099347.296004224 elk-9.6.8/species/Cf.in0000644002504400250440000000453214626155523016441 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-9.6.8/species/PaxHeaders/C.in0000644000000000000000000000013214626155523013545 xustar0030 mtime=1717099347.298004235 30 atime=1717099347.298004235 30 ctime=1717099347.298004235 elk-9.6.8/species/C.in0000644002504400250440000000220614626155523016267 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-9.6.8/species/PaxHeaders/Cl.in0000644000000000000000000000013214626155523013721 xustar0030 mtime=1717099347.301004251 30 atime=1717099347.301004251 30 ctime=1717099347.301004251 elk-9.6.8/species/Cl.in0000644002504400250440000000233214626155523016443 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-9.6.8/species/PaxHeaders/Cm.in0000644000000000000000000000013214626155523013722 xustar0030 mtime=1717099347.303004262 30 atime=1717099347.303004262 30 ctime=1717099347.303004262 elk-9.6.8/species/Cm.in0000644002504400250440000000456614626155523016457 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-9.6.8/species/PaxHeaders/Co.in0000644000000000000000000000013214626155523013724 xustar0030 mtime=1717099347.306004278 30 atime=1717099347.305004273 30 ctime=1717099347.306004278 elk-9.6.8/species/Co.in0000644002504400250440000000312614626155523016450 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-9.6.8/species/PaxHeaders/Cr.in0000644000000000000000000000013214626155523013727 xustar0030 mtime=1717099347.308004289 30 atime=1717099347.308004289 30 ctime=1717099347.308004289 elk-9.6.8/species/Cr.in0000644002504400250440000000335214626155523016454 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-9.6.8/species/PaxHeaders/Cs.in0000644000000000000000000000013214626155523013730 xustar0030 mtime=1717099347.311004305 30 atime=1717099347.311004305 30 ctime=1717099347.311004305 elk-9.6.8/species/Cs.in0000644002504400250440000000371214626155523016455 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-9.6.8/species/PaxHeaders/Cu.in0000644000000000000000000000013214626155523013732 xustar0030 mtime=1717099347.313004316 30 atime=1717099347.313004316 30 ctime=1717099347.313004316 elk-9.6.8/species/Cu.in0000644002504400250440000000312614626155523016456 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-9.6.8/species/PaxHeaders/Dy.in0000644000000000000000000000013214626155523013737 xustar0030 mtime=1717099347.315004327 30 atime=1717099347.315004327 30 ctime=1717099347.315004327 elk-9.6.8/species/Dy.in0000644002504400250440000000422614626155523016465 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-9.6.8/species/PaxHeaders/elk.in0000644000000000000000000000013214626155523014136 xustar0030 mtime=1717099347.318004343 30 atime=1717099347.318004343 30 ctime=1717099347.318004343 elk-9.6.8/species/elk.in0000644002504400250440000006662314626155523016675 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-9.6.8/species/PaxHeaders/Er.in0000644000000000000000000000013214626155523013731 xustar0030 mtime=1717099347.321004359 30 atime=1717099347.321004359 30 ctime=1717099347.321004359 elk-9.6.8/species/Er.in0000644002504400250440000000422614626155523016457 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-9.6.8/species/PaxHeaders/Es.in0000644000000000000000000000012714626155523013736 xustar0029 mtime=1717099347.32300437 29 atime=1717099347.32300437 29 ctime=1717099347.32300437 elk-9.6.8/species/Es.in0000644002504400250440000000453214626155523016460 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-9.6.8/species/PaxHeaders/Eu.in0000644000000000000000000000013214626155523013734 xustar0030 mtime=1717099347.326004386 30 atime=1717099347.326004386 30 ctime=1717099347.326004386 elk-9.6.8/species/Eu.in0000644002504400250440000000422614626155523016462 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-9.6.8/species/PaxHeaders/Fe.in0000644000000000000000000000013214626155523013715 xustar0030 mtime=1717099347.328004397 30 atime=1717099347.328004397 30 ctime=1717099347.328004397 elk-9.6.8/species/Fe.in0000644002504400250440000000335214626155523016442 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-9.6.8/species/PaxHeaders/F.in0000644000000000000000000000013214626155523013550 xustar0030 mtime=1717099347.331004413 30 atime=1717099347.331004413 30 ctime=1717099347.331004413 elk-9.6.8/species/F.in0000644002504400250440000000243214626155523016273 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-9.6.8/species/PaxHeaders/Fm.in0000644000000000000000000000013214626155523013725 xustar0030 mtime=1717099347.333004424 30 atime=1717099347.333004424 30 ctime=1717099347.333004424 elk-9.6.8/species/Fm.in0000644002504400250440000000453214626155523016453 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-9.6.8/species/PaxHeaders/Fr.in0000644000000000000000000000012714626155523013736 xustar0029 mtime=1717099347.33600444 29 atime=1717099347.33600444 29 ctime=1717099347.33600444 elk-9.6.8/species/Fr.in0000644002504400250440000000421614626155523016457 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-9.6.8/species/PaxHeaders/Ga.in0000644000000000000000000000013214626155523013712 xustar0030 mtime=1717099347.339004456 30 atime=1717099347.338004451 30 ctime=1717099347.339004456 elk-9.6.8/species/Ga.in0000644002504400250440000000273614626155523016444 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-9.6.8/species/PaxHeaders/Gd.in0000644000000000000000000000013214626155523013715 xustar0030 mtime=1717099347.341004467 30 atime=1717099347.341004467 30 ctime=1717099347.341004467 elk-9.6.8/species/Gd.in0000644002504400250440000000426214626155523016443 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-9.6.8/species/PaxHeaders/Ge.in0000644000000000000000000000013214626155523013716 xustar0030 mtime=1717099347.344004483 30 atime=1717099347.343004477 30 ctime=1717099347.344004483 elk-9.6.8/species/Ge.in0000644002504400250440000000321614626155523016442 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-9.6.8/species/PaxHeaders/He.in0000644000000000000000000000013214626155523013717 xustar0030 mtime=1717099347.346004494 30 atime=1717099347.345004488 30 ctime=1717099347.346004494 elk-9.6.8/species/He.in0000644002504400250440000000206214626155523016441 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-9.6.8/species/PaxHeaders/Hf.in0000644000000000000000000000013214626155523013720 xustar0030 mtime=1717099347.348004504 30 atime=1717099347.348004504 30 ctime=1717099347.348004504 elk-9.6.8/species/Hf.in0000644002504400250440000000426214626155523016446 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-9.6.8/species/PaxHeaders/Hg.in0000644000000000000000000000013214626155523013721 xustar0030 mtime=1717099347.350004515 30 atime=1717099347.350004515 30 ctime=1717099347.350004515 elk-9.6.8/species/Hg.in0000644002504400250440000000364614626155523016454 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-9.6.8/species/PaxHeaders/H.in0000644000000000000000000000013214626155523013552 xustar0030 mtime=1717099347.353004531 30 atime=1717099347.353004531 30 ctime=1717099347.353004531 elk-9.6.8/species/H.in0000644002504400250440000000163614626155523016302 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-9.6.8/species/PaxHeaders/Ho.in0000644000000000000000000000013214626155523013731 xustar0030 mtime=1717099347.355004542 30 atime=1717099347.355004542 30 ctime=1717099347.355004542 elk-9.6.8/species/Ho.in0000644002504400250440000000422614626155523016457 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-9.6.8/species/PaxHeaders/I.in0000644000000000000000000000013214626155523013553 xustar0030 mtime=1717099347.358004558 30 atime=1717099347.358004558 30 ctime=1717099347.358004558 elk-9.6.8/species/I.in0000644002504400250440000000343214626155523016277 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-9.6.8/species/PaxHeaders/In.in0000644000000000000000000000013214626155523013731 xustar0030 mtime=1717099347.360004569 30 atime=1717099347.360004569 30 ctime=1717099347.360004569 elk-9.6.8/species/In.in0000644002504400250440000000337614626155523016464 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-9.6.8/species/PaxHeaders/Ir.in0000644000000000000000000000013214626155523013735 xustar0030 mtime=1717099347.363004585 30 atime=1717099347.363004585 30 ctime=1717099347.363004585 elk-9.6.8/species/Ir.in0000644002504400250440000000431614626155523016463 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-9.6.8/species/PaxHeaders/K.in0000644000000000000000000000013214626155523013555 xustar0030 mtime=1717099347.366004601 30 atime=1717099347.365004596 30 ctime=1717099347.366004601 elk-9.6.8/species/K.in0000644002504400250440000000261214626155523016300 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-9.6.8/species/PaxHeaders/Kr.in0000644000000000000000000000013214626155523013737 xustar0030 mtime=1717099347.368004612 30 atime=1717099347.368004612 30 ctime=1717099347.368004612 elk-9.6.8/species/Kr.in0000644002504400250440000000321614626155523016463 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-9.6.8/species/PaxHeaders/La.in0000644000000000000000000000013214626155523013717 xustar0030 mtime=1717099347.370004623 30 atime=1717099347.370004623 30 ctime=1717099347.370004623 elk-9.6.8/species/La.in0000644002504400250440000000352214626155523016443 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-9.6.8/species/PaxHeaders/Li.in0000644000000000000000000000013214626155523013727 xustar0030 mtime=1717099347.373004639 30 atime=1717099347.372004634 30 ctime=1717099347.373004639 elk-9.6.8/species/Li.in0000644002504400250440000000211614626155523016451 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-9.6.8/species/PaxHeaders/Lr.in0000644000000000000000000000012714626155523013744 xustar0029 mtime=1717099347.37500465 29 atime=1717099347.37500465 29 ctime=1717099347.37500465 elk-9.6.8/species/Lr.in0000644002504400250440000000456614626155523016475 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-9.6.8/species/PaxHeaders/Lu.in0000644000000000000000000000013214626155523013743 xustar0030 mtime=1717099347.377004661 30 atime=1717099347.377004661 30 ctime=1717099347.377004661 elk-9.6.8/species/Lu.in0000644002504400250440000000426214626155523016471 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-9.6.8/species/PaxHeaders/Md.in0000644000000000000000000000013214626155523013723 xustar0030 mtime=1717099347.380004677 30 atime=1717099347.380004677 30 ctime=1717099347.380004677 elk-9.6.8/species/Md.in0000644002504400250440000000453214626155523016451 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-9.6.8/species/PaxHeaders/Mg.in0000644000000000000000000000013214626155523013726 xustar0030 mtime=1717099347.383004693 30 atime=1717099347.382004688 30 ctime=1717099347.383004693 elk-9.6.8/species/Mg.in0000644002504400250440000000246614626155523016460 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-9.6.8/species/PaxHeaders/Mn.in0000644000000000000000000000013214626155523013735 xustar0030 mtime=1717099347.385004704 30 atime=1717099347.385004704 30 ctime=1717099347.385004704 elk-9.6.8/species/Mn.in0000644002504400250440000000335214626155523016462 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-9.6.8/species/PaxHeaders/Mo.in0000644000000000000000000000013214626155523013736 xustar0030 mtime=1717099347.387004715 30 atime=1717099347.387004715 30 ctime=1717099347.387004715 elk-9.6.8/species/Mo.in0000644002504400250440000000356614626155523016472 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-9.6.8/species/PaxHeaders/Na.in0000644000000000000000000000013214626155523013721 xustar0030 mtime=1717099347.390004731 30 atime=1717099347.390004731 30 ctime=1717099347.390004731 elk-9.6.8/species/Na.in0000644002504400250440000000246614626155523016453 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-9.6.8/species/PaxHeaders/Nb.in0000644000000000000000000000013214626155523013722 xustar0030 mtime=1717099347.392004741 30 atime=1717099347.392004741 30 ctime=1717099347.392004741 elk-9.6.8/species/Nb.in0000644002504400250440000000356614626155523016456 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-9.6.8/species/PaxHeaders/Nd.in0000644000000000000000000000013214626155523013724 xustar0030 mtime=1717099347.395004758 30 atime=1717099347.395004758 30 ctime=1717099347.395004758 elk-9.6.8/species/Nd.in0000644002504400250440000000422614626155523016452 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-9.6.8/species/PaxHeaders/Ne.in0000644000000000000000000000013214626155523013725 xustar0030 mtime=1717099347.398004774 30 atime=1717099347.397004768 30 ctime=1717099347.398004774 elk-9.6.8/species/Ne.in0000644002504400250440000000243214626155523016450 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-9.6.8/species/PaxHeaders/Ni.in0000644000000000000000000000013214626155523013731 xustar0030 mtime=1717099347.400004785 30 atime=1717099347.400004785 30 ctime=1717099347.400004785 elk-9.6.8/species/Ni.in0000644002504400250440000000312614626155523016455 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-9.6.8/species/PaxHeaders/N.in0000644000000000000000000000013214626155523013560 xustar0030 mtime=1717099347.402004795 30 atime=1717099347.402004795 30 ctime=1717099347.402004795 elk-9.6.8/species/N.in0000644002504400250440000000220614626155523016302 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-9.6.8/species/PaxHeaders/No.in0000644000000000000000000000013214626155523013737 xustar0030 mtime=1717099347.405004811 30 atime=1717099347.405004811 30 ctime=1717099347.405004811 elk-9.6.8/species/No.in0000644002504400250440000000453214626155523016465 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-9.6.8/species/PaxHeaders/Np.in0000644000000000000000000000013214626155523013740 xustar0030 mtime=1717099347.407004822 30 atime=1717099347.407004822 30 ctime=1717099347.407004822 elk-9.6.8/species/Np.in0000644002504400250440000000456614626155523016475 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-9.6.8/species/PaxHeaders/O.in0000644000000000000000000000013214626155523013561 xustar0030 mtime=1717099347.410004839 30 atime=1717099347.410004839 30 ctime=1717099347.410004839 elk-9.6.8/species/O.in0000644002504400250440000000220614626155523016303 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-9.6.8/species/PaxHeaders/Os.in0000644000000000000000000000013214626155523013744 xustar0030 mtime=1717099347.413004855 30 atime=1717099347.412004849 30 ctime=1717099347.413004855 elk-9.6.8/species/Os.in0000644002504400250440000000454214626155523016473 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-9.6.8/species/PaxHeaders/Pa.in0000644000000000000000000000013214626155523013723 xustar0030 mtime=1717099347.415004865 30 atime=1717099347.415004865 30 ctime=1717099347.415004865 elk-9.6.8/species/Pa.in0000644002504400250440000000430614626155523016450 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-9.6.8/species/PaxHeaders/Pb.in0000644000000000000000000000013214626155523013724 xustar0030 mtime=1717099347.417004876 30 atime=1717099347.417004876 30 ctime=1717099347.417004876 elk-9.6.8/species/Pb.in0000644002504400250440000000373614626155523016457 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-9.6.8/species/PaxHeaders/Pd.in0000644000000000000000000000013214626155523013726 xustar0030 mtime=1717099347.420004892 30 atime=1717099347.420004892 30 ctime=1717099347.420004892 elk-9.6.8/species/Pd.in0000644002504400250440000000353214626155523016453 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-9.6.8/species/PaxHeaders/P.in0000644000000000000000000000013214626155523013562 xustar0030 mtime=1717099347.423004909 30 atime=1717099347.422004903 30 ctime=1717099347.423004909 elk-9.6.8/species/P.in0000644002504400250440000000233214626155523016304 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-9.6.8/species/PaxHeaders/Pm.in0000644000000000000000000000013214626155523013737 xustar0030 mtime=1717099347.425004919 30 atime=1717099347.425004919 30 ctime=1717099347.425004919 elk-9.6.8/species/Pm.in0000644002504400250440000000422614626155523016465 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-9.6.8/species/PaxHeaders/Po.in0000644000000000000000000000013114626155523013740 xustar0030 mtime=1717099347.428004935 29 atime=1717099347.42700493 30 ctime=1717099347.428004935 elk-9.6.8/species/Po.in0000644002504400250440000000373614626155523016474 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-9.6.8/species/PaxHeaders/Pr.in0000644000000000000000000000013214626155523013744 xustar0030 mtime=1717099347.430004946 30 atime=1717099347.430004946 30 ctime=1717099347.430004946 elk-9.6.8/species/Pr.in0000644002504400250440000000374614626155523016500 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-9.6.8/species/PaxHeaders/Pt.in0000644000000000000000000000013214626155523013746 xustar0030 mtime=1717099347.432004957 30 atime=1717099347.432004957 30 ctime=1717099347.432004957 elk-9.6.8/species/Pt.in0000644002504400250440000000431614626155523016474 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-9.6.8/species/PaxHeaders/Pu.in0000644000000000000000000000013214626155523013747 xustar0030 mtime=1717099347.435004973 30 atime=1717099347.435004973 30 ctime=1717099347.435004973 elk-9.6.8/species/Pu.in0000644002504400250440000000453214626155523016475 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-9.6.8/species/PaxHeaders/Ra.in0000644000000000000000000000013214626155523013725 xustar0030 mtime=1717099347.438004989 30 atime=1717099347.437004984 30 ctime=1717099347.438004989 elk-9.6.8/species/Ra.in0000644002504400250440000000421614626155523016452 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-9.6.8/species/PaxHeaders/Rb.in0000644000000000000000000000012114626155523013724 xustar0027 mtime=1717099347.440005 27 atime=1717099347.440005 27 ctime=1717099347.440005 elk-9.6.8/species/Rb.in0000644002504400250440000000302614626155523016451 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-9.6.8/species/PaxHeaders/Re.in0000644000000000000000000000013214626155523013731 xustar0030 mtime=1717099347.443005016 30 atime=1717099347.442005011 30 ctime=1717099347.443005016 elk-9.6.8/species/Re.in0000644002504400250440000000454214626155523016460 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-9.6.8/species/PaxHeaders/Rf.in0000644000000000000000000000013214626155523013732 xustar0030 mtime=1717099347.445005027 30 atime=1717099347.445005027 30 ctime=1717099347.445005027 elk-9.6.8/species/Rf.in0000644002504400250440000000456614626155523016467 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-9.6.8/species/PaxHeaders/Rh.in0000644000000000000000000000013214626155523013734 xustar0030 mtime=1717099347.447005038 30 atime=1717099347.447005038 30 ctime=1717099347.447005038 elk-9.6.8/species/Rh.in0000644002504400250440000000356614626155523016470 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-9.6.8/species/PaxHeaders/Rn.in0000644000000000000000000000013214626155523013742 xustar0030 mtime=1717099347.450005054 30 atime=1717099347.450005054 30 ctime=1717099347.450005054 elk-9.6.8/species/Rn.in0000644002504400250440000000373614626155523016475 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-9.6.8/species/PaxHeaders/Ru.in0000644000000000000000000000013014626155523013747 xustar0029 mtime=1717099347.45300507 30 atime=1717099347.452005065 29 ctime=1717099347.45300507 elk-9.6.8/species/Ru.in0000644002504400250440000000356614626155523016505 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-9.6.8/species/PaxHeaders/Sb.in0000644000000000000000000000013214626155523013727 xustar0030 mtime=1717099347.455005081 30 atime=1717099347.455005081 30 ctime=1717099347.455005081 elk-9.6.8/species/Sb.in0000644002504400250440000000343214626155523016453 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-9.6.8/species/PaxHeaders/Sc.in0000644000000000000000000000013214626155523013730 xustar0030 mtime=1717099347.457005092 30 atime=1717099347.457005092 30 ctime=1717099347.457005092 elk-9.6.8/species/Sc.in0000644002504400250440000000307214626155523016454 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-9.6.8/species/PaxHeaders/Se.in0000644000000000000000000000013214626155523013732 xustar0030 mtime=1717099347.460005108 30 atime=1717099347.460005108 30 ctime=1717099347.460005108 elk-9.6.8/species/Se.in0000644002504400250440000000321614626155523016456 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-9.6.8/species/PaxHeaders/Si.in0000644000000000000000000000013214626155523013736 xustar0030 mtime=1717099347.462005119 30 atime=1717099347.462005119 30 ctime=1717099347.462005119 elk-9.6.8/species/Si.in0000644002504400250440000000210614626155523016457 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-9.6.8/species/PaxHeaders/S.in0000644000000000000000000000013214626155523013565 xustar0030 mtime=1717099347.465005135 30 atime=1717099347.464005129 30 ctime=1717099347.465005135 elk-9.6.8/species/S.in0000644002504400250440000000233214626155523016307 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-9.6.8/species/PaxHeaders/Sm.in0000644000000000000000000000013214626155523013742 xustar0030 mtime=1717099347.467005146 30 atime=1717099347.467005146 30 ctime=1717099347.467005146 elk-9.6.8/species/Sm.in0000644002504400250440000000422614626155523016470 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-9.6.8/species/PaxHeaders/Sn.in0000644000000000000000000000013214626155523013743 xustar0030 mtime=1717099347.470005162 30 atime=1717099347.470005162 30 ctime=1717099347.470005162 elk-9.6.8/species/Sn.in0000644002504400250440000000343214626155523016467 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-9.6.8/species/PaxHeaders/Sr.in0000644000000000000000000000013214626155523013747 xustar0030 mtime=1717099347.472005173 30 atime=1717099347.472005173 30 ctime=1717099347.472005173 elk-9.6.8/species/Sr.in0000644002504400250440000000302614626155523016472 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-9.6.8/species/PaxHeaders/Ta.in0000644000000000000000000000013214626155523013727 xustar0030 mtime=1717099347.475005189 30 atime=1717099347.474005183 30 ctime=1717099347.475005189 elk-9.6.8/species/Ta.in0000644002504400250440000000426214626155523016455 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-9.6.8/species/PaxHeaders/Tb.in0000644000000000000000000000013214626155523013730 xustar0030 mtime=1717099347.477005199 30 atime=1717099347.477005199 30 ctime=1717099347.477005199 elk-9.6.8/species/Tb.in0000644002504400250440000000422614626155523016456 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-9.6.8/species/PaxHeaders/Tc.in0000644000000000000000000000013114626155523013730 xustar0030 mtime=1717099347.480005216 29 atime=1717099347.47900521 30 ctime=1717099347.480005216 elk-9.6.8/species/Tc.in0000644002504400250440000000356614626155523016465 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-9.6.8/species/PaxHeaders/Te.in0000644000000000000000000000013214626155523013733 xustar0030 mtime=1717099347.482005226 30 atime=1717099347.482005226 30 ctime=1717099347.482005226 elk-9.6.8/species/Te.in0000644002504400250440000000343214626155523016457 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-9.6.8/species/PaxHeaders/Th.in0000644000000000000000000000013214626155523013736 xustar0030 mtime=1717099347.485005243 30 atime=1717099347.484005237 30 ctime=1717099347.485005243 elk-9.6.8/species/Th.in0000644002504400250440000000425214626155523016463 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-9.6.8/species/PaxHeaders/Ti.in0000644000000000000000000000013214626155523013737 xustar0030 mtime=1717099347.487005253 30 atime=1717099347.487005253 30 ctime=1717099347.487005253 elk-9.6.8/species/Ti.in0000644002504400250440000000307214626155523016463 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-9.6.8/species/PaxHeaders/Tl.in0000644000000000000000000000013214626155523013742 xustar0030 mtime=1717099347.490005269 30 atime=1717099347.489005264 30 ctime=1717099347.490005269 elk-9.6.8/species/Tl.in0000644002504400250440000000370214626155523016466 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-9.6.8/species/PaxHeaders/Tm.in0000644000000000000000000000012714626155523013747 xustar0029 mtime=1717099347.49200528 29 atime=1717099347.49200528 29 ctime=1717099347.49200528 elk-9.6.8/species/Tm.in0000644002504400250440000000422614626155523016471 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-9.6.8/species/PaxHeaders/U.in0000644000000000000000000000013214626155523013567 xustar0030 mtime=1717099347.495005297 30 atime=1717099347.495005297 30 ctime=1717099347.495005297 elk-9.6.8/species/U.in0000644002504400250440000000430614626155523016314 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-9.6.8/species/PaxHeaders/V.in0000644000000000000000000000013214626155523013570 xustar0030 mtime=1717099347.497005307 30 atime=1717099347.497005307 30 ctime=1717099347.497005307 elk-9.6.8/species/V.in0000644002504400250440000000307214626155523016314 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-9.6.8/species/PaxHeaders/W.in0000644000000000000000000000013214626155523013571 xustar0030 mtime=1717099347.500005323 30 atime=1717099347.499005318 30 ctime=1717099347.500005323 elk-9.6.8/species/W.in0000644002504400250440000000454214626155523016320 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-9.6.8/species/PaxHeaders/Xe.in0000644000000000000000000000013214626155523013737 xustar0030 mtime=1717099347.502005334 30 atime=1717099347.502005334 30 ctime=1717099347.502005334 elk-9.6.8/species/Xe.in0000644002504400250440000000343214626155523016463 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-9.6.8/species/PaxHeaders/Yb.in0000644000000000000000000000013014626155523013733 xustar0029 mtime=1717099347.50500535 30 atime=1717099347.504005345 29 ctime=1717099347.50500535 elk-9.6.8/species/Yb.in0000644002504400250440000000422614626155523016463 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-9.6.8/species/PaxHeaders/Y.in0000644000000000000000000000013214626155523013573 xustar0030 mtime=1717099347.507005361 30 atime=1717099347.507005361 30 ctime=1717099347.507005361 elk-9.6.8/species/Y.in0000644002504400250440000000330614626155523016317 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-9.6.8/species/PaxHeaders/Zn.in0000644000000000000000000000013214626155523013752 xustar0030 mtime=1717099347.509005372 30 atime=1717099347.509005372 30 ctime=1717099347.509005372 elk-9.6.8/species/Zn.in0000644002504400250440000000312614626155523016476 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-9.6.8/species/PaxHeaders/Zr.in0000644000000000000000000000013214626155523013756 xustar0030 mtime=1717099347.512005388 30 atime=1717099347.511005383 30 ctime=1717099347.512005388 elk-9.6.8/species/Zr.in0000644002504400250440000000330614626155523016502 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-9.6.8/PaxHeaders/utilities0000644000000000000000000000013214626155523013336 xustar0030 mtime=1717099347.539005534 30 atime=1717099347.524005453 30 ctime=1717099347.539005534 elk-9.6.8/utilities/0000755002504400250440000000000014626155523016135 5ustar00dewhurstdewhurst00000000000000elk-9.6.8/utilities/PaxHeaders/elk-bands0000644000000000000000000000013214626155523015176 xustar0030 mtime=1717099347.527005469 30 atime=1717099347.525005458 30 ctime=1717099347.527005469 elk-9.6.8/utilities/elk-bands/0000755002504400250440000000000014626155523017775 5ustar00dewhurstdewhurst00000000000000elk-9.6.8/utilities/elk-bands/PaxHeaders/elk-bands0000644000000000000000000000013214626155523017036 xustar0030 mtime=1717099347.528005474 30 atime=1717099347.527005469 30 ctime=1717099347.528005474 elk-9.6.8/utilities/elk-bands/elk-bands0000755002504400250440000001572614626155523021576 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-9.6.8/utilities/PaxHeaders/elk-optics0000644000000000000000000000012714626155523015414 xustar0029 mtime=1717099347.53100549 29 atime=1717099347.52900548 29 ctime=1717099347.53100549 elk-9.6.8/utilities/elk-optics/0000755002504400250440000000000014626155523020207 5ustar00dewhurstdewhurst00000000000000elk-9.6.8/utilities/elk-optics/PaxHeaders/elk-optics.py0000644000000000000000000000012714626155523020115 xustar0029 mtime=1717099347.53100549 29 atime=1717099347.53100549 29 ctime=1717099347.53100549 elk-9.6.8/utilities/elk-optics/elk-optics.py0000644002504400250440000000726514626155523022645 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-9.6.8/utilities/PaxHeaders/wien2k-elk0000644000000000000000000000013214626155523015306 xustar0030 mtime=1717099347.534005507 30 atime=1717099347.532005496 30 ctime=1717099347.534005507 elk-9.6.8/utilities/wien2k-elk/0000755002504400250440000000000014626155523020105 5ustar00dewhurstdewhurst00000000000000elk-9.6.8/utilities/wien2k-elk/PaxHeaders/se.pl0000644000000000000000000000013214626155523016327 xustar0030 mtime=1717099347.535005512 30 atime=1717099347.534005507 30 ctime=1717099347.535005512 elk-9.6.8/utilities/wien2k-elk/se.pl0000755002504400250440000000221614626155523021055 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-9.6.8/utilities/PaxHeaders/blocks2columns0000644000000000000000000000013214626155523016276 xustar0030 mtime=1717099347.537005523 30 atime=1717099347.535005512 30 ctime=1717099347.537005523 elk-9.6.8/utilities/blocks2columns/0000755002504400250440000000000014626155523021075 5ustar00dewhurstdewhurst00000000000000elk-9.6.8/utilities/blocks2columns/PaxHeaders/blocks2columns.py0000644000000000000000000000013214626155523021665 xustar0030 mtime=1717099347.538005528 30 atime=1717099347.537005523 30 ctime=1717099347.538005528 elk-9.6.8/utilities/blocks2columns/blocks2columns.py0000644002504400250440000000400714626155523024410 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-9.6.8/utilities/PaxHeaders/xps0000644000000000000000000000013214626155523014150 xustar0030 mtime=1717099347.545005566 30 atime=1717099347.539005534 30 ctime=1717099347.545005566 elk-9.6.8/utilities/xps/0000755002504400250440000000000014626155523016747 5ustar00dewhurstdewhurst00000000000000elk-9.6.8/utilities/xps/PaxHeaders/CROSEC0000644000000000000000000000013214626155523015126 xustar0030 mtime=1717099347.541005544 30 atime=1717099347.541005544 30 ctime=1717099347.541005544 elk-9.6.8/utilities/xps/CROSEC0000644002504400250440000000307614626155523017656 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-9.6.8/utilities/xps/PaxHeaders/conv.c0000644000000000000000000000013214626155523015336 xustar0030 mtime=1717099347.543005555 30 atime=1717099347.543005555 30 ctime=1717099347.543005555 elk-9.6.8/utilities/xps/conv.c0000644002504400250440000000335714626155523020070 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-9.6.8/PaxHeaders/COPYING0000644000000000000000000000013214626155523012433 xustar0030 mtime=1717099347.559005641 30 atime=1717099347.558005636 30 ctime=1717099347.559005641 elk-9.6.8/COPYING0000644002504400250440000012356414626155523015170 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-9.6.8/PaxHeaders/README0000644000000000000000000000013214626155523012260 xustar0030 mtime=1717099347.572005711 30 atime=1717099347.572005711 30 ctime=1717099347.572005711 elk-9.6.8/README0000644002504400250440000000366514626155523015014 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 editing the file 'make.inc' in this directory to suit your compiler and available libraries, followed by running 'make all'. This will compile the main code as well as several auxiliary programs. 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. If Elk was compiled with MPI then use 'make test-mpi' instead. The Libxc package can also be tested using 'make test-libxc' (or 'make test-libxc-mpi' with MPI). 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-9.6.8/PaxHeaders/release_notes.txt0000644000000000000000000000013214626155523014771 xustar0030 mtime=1717099347.587005792 30 atime=1717099347.585005781 30 ctime=1717099347.587005792 elk-9.6.8/release_notes.txt0000644002504400250440000016371514626155523017530 0ustar00dewhurstdewhurst00000000000000elk-9.6.8 -fixed an issue with Fermi surface plotting for the collinear spin-polarised case; the k-point set is not reduced for the collinear spin-polarised case; thanks to Wenhan Chen for discovering this -many simplifications and optimisations in the code -changed smallest allowed perturbation theory denominator (epsdev) from 0.005 to 0.0025 for DFPT phonon calculations -added more examples, including the DFPT phonon dispersion of NiTe2 thanks to Jerry Li and the altermagnet CrSb thanks to Wenhan Chen -added two more Wannier90 examples: graphene thanks to Jyoti Krishna and the spin Hall conductivity of Pt thanks to Markus Meinert -further optimised OpenMP parallelism -documented all the tasks in the manual elk-9.5.14 -Wannier90 UNK files are now written; thanks to Andrew Shyichuk for the suggestion -made a work-around for an Intel compiler bug which occurs when extra Wannier90 data is read from elk.in; this problem was discovered by Jerry Li -added Wannier90 copper example thanks to Jerry Li -improved the application of a constant electric field across the unit cell; the maximum distance over which it is applied can now be set with 'dmaxefc' -included an example and test case for a constant electric field across the cell; the example can be found in elk/examples/electric-field/WSe2-bilayer and demonstrates band gap closure under applied high field strengths -the average electric field in each muffin-tin is written to INFO.OUT when an electric field is applied -added a high harmonic generation (HHG) example; see elk/examples/TDDFT-time-evolution/GaAs-HHG -further improved OpenMP parallelism -minor optimisations elk-9.5.1 -fixed an issue with the scissor operator applied to TDDFT -fixed a problem with FFTW called by several threads simultaneously; thanks to Andreas Fischer for discovering this -task=485 (writeejw) has been removed; the frequency-dependent electric field (EFIELDW.OUT) and total current (JTOTW.OUT) are now written with task=480/481 -the Wannier90 initial projections file wannier.amn is now always written; however, the projections are set to random complex numbers; this appears to have improved the Wannierisation step -the number of Wannier wavefunctions (num_wann) can now be less than number of bands; if num_wann ≤ 0 then num_wann → num_bands+num_wann -updated the Wannier90 examples -fixed an issue with the time-dependent total energy -several OpenMP optimisations elk-9.4.2 -further improvements to the GW code, including changing some parts to single-precision arithmetic -fixed a problem with thread allocation discovered by Andreas Fischer and colleagues here -replaced complex-complex FFTs to real-complex where possible -task 485 now also outputs the frequency-dependent electric field as EFIELDW.OUT -minor changes and optimisations elk-9.2.12 -fixed intialisation issue with writing tensor moments via task=400 with DFT+U and inpdftu=5; thanks to Marjana Lezaic for pointing this out -added a new feature for averaging the muffin-tin radii in order to stabilise some calculations with large variation in radii; set the variable 'mrmtav' to the order of averaging of the radii; see the manual for details -made improvements to the GW code -adjusted the parameter settings used for 'stable' and 'metagga' options -added documentation to code elk-9.2.5 -further improved meta-GGA partial deorbitalisation; re-enabled the 'metagga' option; set this to .true. when running meta-GGA calculations and the code sets several input variables to improve convergence; see examples for details -setting 'trimvg' to .true. (which is the default) causes only the exchange-correlation potential to be trimmed for |G| > 2 gkmax instead of the full Kohn-Sham potential; this improves the smoothness of energy-volume curves -calculation of the BSE dielectric function (task=187) is now considerably faster and runs in parallel -added the constant term associated with a static A-field to the total energy -modified the findsymcrys routine so that all symmetries are found even when tshift=.false. elk-9.1.15 -added piezoelectric and magnetoelectric tensors as tasks 380 and 390, respectively; see the examples for details; these are currently experimental features -exchange-correlation functionals with Laplacian terms now working; this includes the deorbitalised functionals of Mejia-Rodriguez and Trickey, Phys. Rev. B 98, 115161 (2018) -improved the meta-GGA partial deorbitalisation: it now works with the complete range of kinetic energy density functionals in Libxc (see arXiv:2304.02363) -improved the interface to Libxc -removed potential-only meta-GGA functionals -time-dependent Kohn-Sham states are now orthogonlised using a singular value decomposition every 'ntsorth' time-steps in order to improve stability; the default is 1000 time-steps -new task 485 outputs the Fourier transform of the time-dependent total current J(ω) -new input variable 'jtconst0' will, when set to .true., zero the constant part of J(t) before the dielectric function is calculated with tasks 480 and 481 -changed large parts of the code to single-precision arithmetic including Hartree-Fock, RDMFT, OEP, GW and the linear-response functions; as a consequence the code is considerably faster -changed relational operator symbols such as .le., .gt., etc. to '<=', '>', etc. in line with modern Fortran style -increased maximum allowed number of files on the RAM disk to 32 -many optimisations and minor bug fixes -added more and improved existing OpenMP parallelism -Elk has been recognized with a Community Leader Award by SourceForge; thanks to all the users and contributors for making the code as useful as it is, as well as for making the forums a congenial place for everyone elk-8.8.26 -molecular dynamics now available with task=420/421; see the examples in the elk/examples/molecular-dynamics directory -simulated annealing calculations for crystal structure discovery are now possible; see the example in elk/examples/molecular-dynamics/annealing; note that this is an experimental feature -removed the 'msmooth' option -restored the 'trimvg' option and enabled it by default; this makes calculations more stable -changed the 'stable' options -structural optimisation is now more reliable -muffin-tin radii can now increase as well as decrease during structural optimisation or molecular dynamics runs -added examples of the coupled electron-phonon Bogoliubov equations; see elk/examples/Bogoliubov -added a 'step' type A-field; this corresponds to a vector potential which is switched on and off at given times -improved the iterative eigenvalue method for the first-variational step -minor optimisations and improvements elk-8.7.10 -fixed a problem with calculating the current density for spin-spirals; thanks to Zhiwei Li for finding this -minor optimisations elk-8.7.6 -fixed an issue which affects thread creation in OpenMP nested loops with libgomp; this should give a considerable increase in speed for Elk compiled with GFortran -minor optimisations and bug fixes elk-8.7.2 -fixed problem of writing TDDFT density of states with wrtdsk=.false., discovered by Eddie Harris-Lee -fixed problem of restarting from TDDFT backup files, found by Mila Adamska -removed an OpenMP regression which caused substantial slow-down of TDDFT -added more documentation -minor optimisations and bug fixes elk-8.6.7 -added dynamical Born effective charges (dynBEC); see Phys. Rev. B 106, L180303 (2022) -included a dynBEC example of hexagonal boron nitride; see the elk/examples/Born-effective-charge/hBN-dynBEC/ directory -fixed a problem with spin-unpolarised DFT+U calculations; thanks to Mike Bruckhoff for discovering this -updated to Libxc version 6 -changed to single-precision orbitals in many routines; this should reduce memory requirements and improve speed -removed the bundled BLAS/LAPACK and FFTPACK libraries -removed the 'setup' script and modified the 'make.inc' file elk-8.5.10 -improved OpenMP parallelism -added variables to VARIABLES.OUT which are written on completion of geometry optimisation, for example 'engytot (geomopt)' -adjusted several default parameters elk-8.5.2 -created an interface to the kinetic energy functionals of Libxc -further optimisation of the code -added magnetic anisotropy energy (MAE) test -fixed a problem of using wrtdsk=.false. with TDDFT -various minor bug fixes elk-8.4.30 -included the Libxc interface (libxcf90.f90) again with Elk; thanks to Michael Banck for pointing out a problem with its omission -fixed a minor problem with electron localisation function (ELF) plots -several small changes and optimisations elk-8.4.21 -fixed problem with Ehrenfest TDDFT restarts (task 463); thanks to Peter Elliott for discovering this bug -added option to avoid writing some direct access files to disk; this can be done by setting 'wrtdsk=.false.' and can speed the code up dramatically, particularly on networked filesystems; however, this can result in the code crashing for some tasks and should be used carefully! -made some small changes (particularly to the RAM disk feature) to improve portability; tested the code with Intel, GNU, PGI, NAG and NVIDIA Fortran compilers -parallelised the RPA dielectric function calculation (task 121) with MPI -many optimisations and small bug fixes -the coupled electron-phonon Bogoliubov equations method (task 270) has been published as Editors' Suggestion in Physical Review B: https://doi.org/10.1103/PhysRevB.105.174509 elk-8.4.6 -fixed problem with real-time TDDFT restarts (tasks 461 and 463); this problem occurred only very rarely for systems with particular symmetries; thanks to Antonio Sanna for finding this -added batch calculations as a new feature; with this Elk can perform multiple runs while adjusting a particular parameter -- for example producing an energy vs volume plot; see the examples in elk/examples/batch-calculations -input and output variables will be added to batch calculations upon request -Yunfan Liang and Xavier Gonze discovered a problem in the non-linear optical response formalism of our work in Phys. Rev. B 67, 165332 (2003); consequently, the non-linear optics code has been completely re-written and throughly tested; see the example in /elk/examples/non-linear-optics -the speed ultra long-range calculations has been greatly improved thanks to changes in the generation of the long-range density and magnetisation -several minor bug fixes, optimisations and improvements -Elk has been recognized with a Community Choice award by SourceForge; thanks to all the users and contributors for making the code as useful as it is, as well as for making the forums a congenial place for everyone elk-8.3.22 -fixed a bug which occured when using the OpenBLAS library with Elk's RAM disk feature; thanks to Marcin Dulak for finding this elk-8.3.20 -included missing BLAS and LAPACK files in the package; thanks to Jagdish Kumar for pointing out the omissions elk-8.3.15 -considerable speed-up and optimisations throughout the entire code; spin-polarised calculations in particular are substantially faster -greatly improved the meta-GGA calculations; these no longer require a large number of empty states for good convergence and consequently run much faster; removed the 'metagga' flag; thanks to Pietro Bonfa for the careful testing -checked and highly optimised the TDDFT+U calculations -removed the DFT+U scheme which interpolated between FLL and AFM -rearranged the order of phonon line width plots to match that of the phonon dispersion plots -further improved the electron-phonon Bogoliubov method; thanks to Chung-Yu Wang for the careful testing -rewrote much of the tensor moment code; the tensor moments are now real and exclusively of the 3-index type; the corresponding matrices Gamma_t^kpr are now Hermitian and orthonormal; see the documentation of the routines 'tm2todm' and 'tm3todm' and references therein; thanks to Leon Kerber for extensive testing -writing out the old convention of complex 3-index tensor moments can be enabled with 'tm3old=.true.' -Leon Kerber also fixed a problem with the fixed tensor moment (FTM) code -the input block 'tmomfix' has been removed; use 'tm3fix' instead -included a FTM example in elk/examples/FeGd-fixed-tensor-moment -the RAM disk is now enabled by default; if problems are encountered with this then set 'ramdisk=.false.' -included an example for calculating the dielectric function using time evolution; see elk/examples/TDDFT-time-evolution/Si-dielectric -added more LaTeX documentation to the code -many small improvements and minor bug fixes elk-7.2.42 -added new RAM disk feature which allows Elk to store direct-access files in memory and can dramatically speed up calculations; enable this by setting 'ramdisk' to .true. in elk.in -many optimisations throughout the code -fixed an issue with the scissors operator in optical response code (task=320, 330, 331) for materials which are nearly metallic; thanks to Peter Elliott for pointing this out -further improved the electron-phonon mean-field code -added variables 'scalex', 'scaley' and 'scalez' to the input file; these allow scaling of the unit cell in the Cartesian directions elk-7.1.14 -optimised the second-variational procedure by changing the muffin-tin dot products to single-precision arithmetic; this speeds up this step by at least a factor of two for large systems without losing overall precision or stability -removed 'mixpack', 'phmixpack' and 'mixpacku' routines; Kohn-Sham potentials and fields are now stored in a single array accessed by pointer arrays; this removes the need for packing before and unpacking after mixing -increased speed of direct access reads by removing unnecessary 'close' statements -added an example for the ultra long-range method; see the input file in elk/examples/ultra-long-range/Cr-SDW/ -changed the Wannier90 .win file to improve the wannierisation convergence rate -fixed several bugs in the electron-phonon mean-field method -updated BLAS and LAPACK to version 3.9.0 -minor improvements and bug fixes elk-7.0.12 -Chung-Yu Wang added electron-phonon mean-field theory; this is a new method and still highly experimental -Alyn James wrote an interface for Elk to the DMFT code TRIQS; this interface is maintained in a separate branch of the Elk code: https://github.com/AlynJ/Elk_interface-TRIQS -fixed serious problem with DFT+U for dftu=3 (interpolation of FLL and AFM); this bug was introduced some time ago; we recommend that you check any previous calculations which use dftu=3 -lots of optimisations throughout the code -further improved Ehrenfest dynamics -added the calculation of Born effective charges using Ehrenfest dynamics (task=478); this is intended as a test for the method; Born effective charges are more accurately calculated with the King-Smith and Vanderbilt method (task=208) -Pietro Bonfa found and fixed several problems with the calculation of Mössbauer hyperfine fields -PB also added a new Mössbauer example: antiferromagnetic NiF2; see the examples/Mossbauer/NiF2 directory -Ronald Cohen fixed a bug in iso-volumetric lattice optimisation -RC also discovered a problem with the Wu-Cohen '06 GGA functional which has now been fixed -RC also suggested an efficiency improvement to the non-linear optics code -added tests for non-linear optics -Antonio Sanna helped fix a bug with TD forces -Karel Carva discovered that lmaxo should be at least 7 for phonopy calculations -change the default ntswrite from 10 to 500 time steps in order to reduce I/O -confirmed compatibility with Libxc version 5.1.0 -Further improved the ultra long-range code; the method has now been published: T. Müller, S. Sharma, E. K. U. Gross, and J. K. Dewhurst, Phys. Rev. Lett. 125, 256402 (2020). elk-6.8.4 -Born effective charges using the method of R. D. King-Smith and David Vanderbilt, Phys. Rev. B 47, 1651(R) (1993) are now available; see the directory elk/examples/Born-effective-charge -added Ehrenfest dynamics to the code; see the directory elk/examples/TDDFT-time-evolution/FeCo-Ehrenfest (highly experimental) -upgraded code to be compatible with Libxc version 5; note changes to the make.inc file -the Libxc SCAN functional no longer works with Elk, the regularised version of A. P. Bartók and J. R. Yates, J. Chem. Phys. 150, 161101 (2019) works and should be used instead; see the meta-GGA examples -Aldo Romero and his group interfaced PyProcar to Elk and confirmed that it worked with non-collinear magnetism; PyProcar is a robust, open-source Python library used for pre- and post-processing of the electronic structure data from DFT calculations -implemented a great many optimisations throughout the entire code; more aggressive use of the stack instead of the heap, this may require the user to increase the stack space -added the incomplete basis set (IBS) correction to forces from time-dependent vector potential, A(t) -fixed bug related to lattice optimisation with non-symmorphic symmetries thanks to Andrew Shyichuk and Jack Whaley-Baldwin -added several new tests, including one for the stress tensor -updated physical constants to CODATA 2018 -fixed wavefunction and STM plotting thanks to Andrew Shyichuk -fixed bug in GW band structure code thanks to Antik Sihi -fixed problem with fixed tensor moment calculations -fixed problem in TDDFT real-time restart thanks to Peter Elliott -Peter Elliott and JKD also added Maxwell's equations for the macroscopic induced vector potential -updated and improved the ultra long-range code -forces are now written during a TDDFT run every 'ntsforce' time steps -matrix sizes larger than those addressable with four byte integers can now be used with BSE and MPI -Hartree-Fock information is now written to HF_INFO.OUT rather than INFO.OUT -parallelised the Brillouin zone integration (brzint) which considerably speeds up DOS calculations -modified how the potential of the optimised effective potential (OEP) iteration scheme is initialised -removed obsolete command from ProTex Perl script -added tests for Libxc and MPI; run 'make test-libxc' and 'make test-MPI' respectively, or 'make test-all' to test everything -fixed problem with hybrid functionals introduced a few versions back; also added a test for hybrids elk-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-9.6.8/PaxHeaders/Makefile0000644000000000000000000000013214626155523013040 xustar0030 mtime=1717099347.600005862 30 atime=1717099347.600005862 30 ctime=1717099347.600005862 elk-9.6.8/Makefile0000644002504400250440000000101514626155523015557 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; ./test.sh test-mpi: cd tests; ./test-mpi.sh test-libxc: cd tests-libxc; ../tests/test.sh test-libxc-mpi: cd tests-libxc; ../tests/test-mpi.sh test-all: $(MAKE) test $(MAKE) test-libxc $(MAKE) test-mpi $(MAKE) test-libxc-mpi vim: cd src; ./vimelk elk-9.6.8/PaxHeaders/make.inc0000644000000000000000000000013214626155523013010 xustar0030 mtime=1717099347.613005932 30 atime=1717099347.613005932 30 ctime=1717099347.613005932 elk-9.6.8/make.inc0000644002504400250440000001215114626155523015532 0ustar00dewhurstdewhurst00000000000000 MAKE = make AR = ar # Elk requires BLAS/LAPACK and fast Fourier transform (FFT) libraries. # We recommend using optimised, mutithreaded BLAS/LAPACK libaries such as those # provided by the Intel Math Kernel Library (MKL), OpenBLAS or BLIS. # Elk can use either the Fastest Fourier Transform in the West (FFTW) or the # MKL FFT. Both single and double precision versions of the FFT are needed. #------------------------------------------------------------------------------# # Libraries # #------------------------------------------------------------------------------# #------------------------------------------------------------------------------- SRC_MKL = mkl_stub.f90 # To enable MKL multithreaded parallelism, uncomment the following line and link # with the MKL library. #SRC_MKL = #------------------------------------------------------------------------------- #------------------------------------------------------------------------------- # If your compiler does *not* support the Message Passing Interface (MPI) then # uncomment the line below. #SRC_MPI = mpi_stub.f90 #------------------------------------------------------------------------------- #------------------------------------------------------------------------------- # Elk supports two FFT libraries: # Fastest Fourier Transform in the West (FFTW) # Intel Math Kernel Library (MKL) Fast Fourier Transform # # FFTW is enabled by default with: SRC_FFT = zfftifc_fftw.f90 cfftifc_fftw.f90 # # To enable MKL FFT instead, copy mkl_dfti.f90 to the elk/src directory and # uncomment the line below. #SRC_FFT = mkl_dfti.f90 zfftifc_mkl.f90 cfftifc_mkl.f90 #------------------------------------------------------------------------------- #------------------------------------------------------------------------------- SRC_LIBXC = libxcifc_stub.f90 # To enable Libxc first download and compile version 6.x of the library. Next # copy the files libxcf90.a and libxc.a to the elk/src directory and uncomment # the following lines. #LIB_LIBXC = libxcf90.a libxc.a #SRC_LIBXC = libxcf90.f90 libxcifc.f90 #------------------------------------------------------------------------------- #------------------------------------------------------------------------------- SRC_W90S = w90_stub.f90 # To enable the Wannier90 library copy libwannier.a to the elk/src directory and # uncomment the following lines. #SRC_W90S = #LIB_W90 = libwannier.a #------------------------------------------------------------------------------- #------------------------------------------------------------------------------# # Compilers # #------------------------------------------------------------------------------# #------------------------------------------------------------------------------- # Intel MPI Fortran version 18 and later. F90 = mpiifort F90_OPTS = -O3 -xHost -ipo -qopenmp -mkl=parallel F90_LIB = -liomp5 -lpthread -lm -ldl SRC_MKL = AR = xiar #------------------------------------------------------------------------------- #------------------------------------------------------------------------------- # GNU Fortran compiler with MKL. #F90 = mpif90 #F90_OPTS = -Ofast -march=native -mtune=native -fopenmp -ffpe-summary=none -Wno-lto-type-mismatch #F90_LIB = -lmkl_gf_lp64 -lmkl_gnu_thread -lmkl_core -lpthread #SRC_MKL = #------------------------------------------------------------------------------- #------------------------------------------------------------------------------- # GNU Fortran compiler with BLIS, libflame and FFTW #F90 = mpif90 #F90_OPTS = -Ofast -march=native -mtune=native -fopenmp -ffpe-summary=none -Wno-lto-type-mismatch #F90_LIB = -lblis -lflame -lfftw3 -lfftw3f #------------------------------------------------------------------------------- #------------------------------------------------------------------------------- # GNU Fortran compiler with OpenBLAS, LAPACK and FFTW #F90 = mpif90 #F90_OPTS = -Ofast -march=native -mtune=native -fopenmp -ffpe-summary=none -Wno-lto-type-mismatch #F90_LIB = -lopenblas -llapack -lfftw3 -lfftw3f #SRC_OBLAS = #------------------------------------------------------------------------------- #------------------------------------------------------------------------------- # Intel Fortran with debugging and profiling options. #F90 = mpiifort #F90_OPTS = -O3 -qopenmp -mkl=parallel -pg -xHost -init=snan,arrays -traceback #F90_LIB = -liomp5 -lpthread -lm -ldl #SRC_MKL = #AR = ar #------------------------------------------------------------------------------- #------------------------------------------------------------------------------- # GNU Fortran debugging and profiling options. #F90 = gfortran #F90_OPTS = -O3 -Wall -Wunused -Warray-temporaries -Waliasing -Wampersand -Wconversion -Winteger-division -Wintrinsics-std -Wsurprising -Wtabs -Wunused-parameter -Wfunction-elimination -Wrealloc-lhs-all -Wcompare-reals -fopenmp -fbounds-check -pg #F90_LIB = -lmkl_gf_lp64 -lmkl_gnu_thread -lmkl_core -lpthread #SRC_MKL = #SRC_MPI = mpi_stub.f90 #------------------------------------------------------------------------------- elk-9.6.8/PaxHeaders/elk.sh0000644000000000000000000000013214626155523012507 xustar0030 mtime=1717099347.626006002 30 atime=1717099347.626006002 30 ctime=1717099347.626006002 elk-9.6.8/elk.sh0000755002504400250440000000064114626155523015235 0ustar00dewhurstdewhurst00000000000000#!/bin/bash # set the number of OpenMP threads per node equal to the number of cores # (this environment variable does not normally need to be set) #export OMP_NUM_THREADS= # no binding of threads to cores export OMP_PROC_BIND=false # increase the OpenMP stack size export OMP_STACKSIZE=512M # set the soft limit of the stack size equal to the hard limit ulimit -Ss unlimited # Elk executable file ~/elk/src/elk elk-9.6.8/PaxHeaders/docs0000644000000000000000000000013214626155532012253 xustar0030 mtime=1717099354.676043987 30 atime=1717099354.650043847 30 ctime=1717099354.676043987 elk-9.6.8/docs/0000755002504400250440000000000014626155532015052 5ustar00dewhurstdewhurst00000000000000elk-9.6.8/docs/PaxHeaders/Brillouin_zones.pdf0000644000000000000000000000013214626155532016200 xustar0030 mtime=1717099354.657043885 30 atime=1717099354.653043863 30 ctime=1717099354.657043885 elk-9.6.8/docs/Brillouin_zones.pdf0000644002504400250440000057763414626155532020750 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-9.6.8/docs/PaxHeaders/elk.pdf0000644000000000000000000000013214626155532013576 xustar0030 mtime=1717099354.674043977 30 atime=1717099354.660043901 30 ctime=1717099354.674043977 elk-9.6.8/docs/elk.pdf0000644002504400250440000254560214626155532016336 0ustar00dewhurstdewhurst00000000000000%PDF-1.5 % 2 0 obj << /Type /ObjStm /N 100 /First 828 /Length 1167 /Filter /FlateDecode >> stream xڭ[o6W1A 6( @4o~׻{NC3+Zdip 5J+H6*+CgʚSeND WLR'W.Z4 "YdQD*IX0eRƆ#mf qAǜkeNCB}^4VID %f ड़2,눐HY8dop5BO2Zdm*ye )IK1{sXLU#Y<@Y β 6̌1D@F,h0#/L9HE`v#sD;c 2 sb,[ E4T2sY'p0"pB?&%r 1>g2"d8EX N@DQ#OR`EpGɁkp2P 3``ӱwdzTkpB 9gW89Bm0s\;v`b缅 輇 .ξ {.>_w/MVz~b_DÖwrE񐝯dxy^bXM%hHҟ{9[׾qH?(O@)!ndyĸU}cj~";B;娧3KN 5ЯyxǀeJ]"'5.F&zu~/YUVutShUY/GsB5޽JڕVCͺ%@n]EԘM[mG_JE6p-=M70qf#g `.[KZ #$6֧Ĺl6"qRXXO蓛:[ōŤe5 b7!.Cv-Nmu~wG8y+U F`iinV+^XHuuҹϾ[D$>35kw> obu܂&|bR?˷Yً޹˜4v/yق ̲֞_2-! oz$!^Mt#e]zMعzi/s^^ endstream endobj 203 0 obj << /Type /ObjStm /N 100 /First 870 /Length 1005 /Filter /FlateDecode >> stream xڝr6E ,g6cgԬRHxlgK~s/f!}I[o6I8dg θp Xhw8^8V`uɰ&DĚP8ɓ`"yMbR]5or L]ȦпhM]tF𫴋~0+N*Lqᜀ'd#)u7ǓьH 3/ GQ@* ':Y7GVA΁i9QA.=tst @WAeF0GYhH(27r1Bx&(ɜ^0y&C5j>zN0%#l1 Ԡ$04L!G92G"ȌT`a+ؼh9@YL,>zŸ8LCA˺$CA8GJpo'CAxP L4ƕ,3˔&|o~5ߧ?'s>l/۷ͧK | p;= v8[?OlOu`o|OkqYyxV:ا5qVElh;_ǦG=g] V:n V;'6w ,3`,lj9OMM?ZObg~۩p$ƉsC\:_۲Gk u]!X ޚ0-` {uG]_.DO>WB/C_٪?C0,t`Kohۉ;> stream xڵMs68&⣓ɥIzH&Bǻl6x$xs O2.d<Ő0:V>xM2cq3&z cyrG؎ PYQ$%ŕ+.8 hz9S:\,>gS9 ł@ȴ zѢ 9@+rH@,r KQ@"E #FG!yסyS@5b n\9HDaQ,dB!Bz QJxQ )CAl(ld("P!!:2' vH@A&*C 2d҄P9!KEH{ AAAAFnVAIe=/0<9J逜2 2Bß\Jfl)n| fzƜ444y~jm;^oW.'>Z{(ͺ44}}]!94Ui6lbokDw*sHԈeNGۧY#6VAyv} 2ݐPeFTEn4UOzv fU96z.u5x2ڡ .Qlhmo94csSCC*mH rsKSk"Y d@[.9 M)TA*YRP}QZh;e.){m? *" P9\r+vL:RXcA3=ԿzQк^q,`7-3hܩ +00gPV ;rod)WIM$nou d< 2UL endstream endobj 605 0 obj << /Type /ObjStm /N 100 /First 901 /Length 1366 /Filter /FlateDecode >> stream xŚvF ~Y&{ɪ}tMZ)j>}RrZh ~|"RQ{UIEVU6F,d*h’a]ZOXҫL*ڠd2!x9ebDa I {yLF荲b *8˒#g|FL*8AZ@TFBBtPH[HF:)9\}gN 틁#s3SDd˱&H 9dG ! ^(cm pF)e8IGFrdt099&> M#t0kMB*٢tf,3:}b2O"B3aD3aцˁz\M4c~ 6:YgFbP B+ Ljì ̈́*0LNX擺}FwjtMݭj?gv뢬^ '6>Rb3}Ҟݾ~GO)K98·İj endstream endobj 806 0 obj << /Type /ObjStm /N 100 /First 910 /Length 1284 /Filter /FlateDecode >> stream x͚v6z ,d>@Xz Y:Ȏ$H 8Hƚbd Y &b_b929#9!kädYD:FGB5bG'#CIFPa}1Б`|N!A#8qyJ$Q1W#l#sx¡%:,SD'``B=:"r% +@ \Ȅ aKD'aL( ё`DfG%r#t}A0d%t֙X3X᳘hH |L0j(FR+K%(/ QL& g3l/9Q1Y~fT03c/0*فWU8 , Kd0*Xd0*64 ذK\]Y`((G, gv`T%$QCE$$1H6b04G`%˄#kHRɌd#`2f zAB3IQO$.A@D*SVtc|d.ߟx6r<1|4?O>\WiׯoilnjEgiKZG&Lou/Fd^?q3rJW78 YvT'iGѺ]Z]7ʬ,u_pver K_W';f[4ʬA*pverqOak Nr!M%k͛_C^ Z8|jвq/ʶ{5hهWZo5J'IjC !DB..}\q.5dJ$vun ZvǾboer~ԑW]뵿7 ٕY/8ٲ޴ݷ#A˞aU<$=]>ܷ6{7ܤɵuuߩ j'M Y9ZGA99K8og^gRs['6*h[h{zrfwVp>1Z֑rGNN>fzs&qJs^_).c0"oZsVk_k6o9jвq'>$G?Hv6ϫYM~ׄxwz-qc-];cXEa2="3p>U9^2A[;ZNܺAJ#۱\ws`~;NƣAecPjyɲdžʧ㠨13?&" endstream endobj 1007 0 obj << /Type /ObjStm /N 100 /First 1000 /Length 1315 /Filter /FlateDecode >> stream x՚v6~ ,6=9Y.q$;ձnG\O8")(څ! 4hA^A$ 2KQv B6FWl@2%Z#(,L,)e9I4`CEeDY6eZ4x2ъQ9 )K 5 7 ALj dAtBgEIEP8 ^Iq"G>eIY#HQ8x*@8b% Fʒd9){uʋ,)NyِC#TΑ+9،rQS9b{F"ˑOY8p#iq5 K]799"5' )9/NyqQʒbpSLQL%OM*Qg$Y :HRQ(n 6~2?Nt^IuFSQ@BPA|Q7XOQ߫bn֏2_dx/ ~}u +2ldpџe0Ϲ~>`uN }RŐGI%:)^v!2K7>@4vNؠǕA-h.wS^m?v|)2cM ^1t@%/YnuVq|1y/*َMʢǍ#[lxg/fl@}V}ytvgmvpM6b< ow*<Ç&b33&mh1^nizȚu.PAtM[IJM˾i O2z}qb> stream xՙVG8K6XFHH&$O'C5":Y)zbPZ!J U 't/(H唖"؄V$R EX$9KCv YKIYD$ 26a<%B֑`@9 %tIR,( 06©8#B#ha( 9UNCV+dɚP䑍V8@QG\뤄M٤)Ss:a&jYHIMo)2yH+\SCuzWYG"GY/C ۻ,2N>jd +H]nڠ.QIC6~d)5 yH(5-vG*,iPϣEũ?"z*n1"& TĤ8 G":Pϓ 4'L=OAW„=KB,B]FG@ꓸuN\}o?Wz ٷÇ7״-µ ,`yƲr-察|/{-6?}ɽ'yr%aGw'J6=+P5.V',7rCl0 z[*cCQM1m|)Aө۳n_(hwC<ۿa[ldBޞu]֣ȿĪ\E p%vi 4C™K3d]ڼ*sY^l4g-z`ûiC;4z`it? x|(Fo5<69PiԡњqH(rgPn!W(<YOCn}V٠X_ɇqe6Jnis\ FA7#-O_ہ)A= m'F=iG;pk|)AkԮ?s?sN \(GW?Aʳ(rR޼8A=egb4lRfF}z׷kNP5>S!tצ_}Y椝 F򆟋NdU.羵O,!A t}^W=`OtsޜUQ6T7gP}r Ely6`pKܩ6%䫾 v \El1eNlP? œ/٠kO lĵs⽐bi(ܘ2T$PKϊ&Ϭʳ4&#FU jҡrn"絑 endstream endobj 1409 0 obj << /Type /ObjStm /N 100 /First 1007 /Length 1359 /Filter /FlateDecode >> stream x՚vH~^&o՗99Y<@fcC0`駪ARpDxV\NYes *0 P`Tt*O> cLF8s@YG@:2gqS7dk)3 >a-YYHXeY$( & (æL`ӌr9(#$#d倅G"eC)A9ˉ&MFyK>ygAy0J u> g'b)6d%K@c3,e1yl,()J%drA;bQlTgT (@;C "sT(Jr<ڈJ,ZiCSEF\Abc,S7J37}y#ʮ+ *W_Aעg.V5{PԷr%+ ٺ=\@AC (k}|֢x{>,N4[{Bءr5螽%g$xh5^~o)b0*ׂ=o2\柊3-x,峼>&"x ڡ|5GGzk߾ Nd>;Fyƽ Kn. @jB g-" ~"tw4Tç[y݌S9"Ih;j.WvkP>4> ~mDhRm-a)?i/᭶?\H ԆvW#6s#t\ZTJmhߔF.mFZ9چI'~j7_J(O =Эx-ո?rKlv+9֏\ɯ {b+~r%_847tbtwqf >NjH m t+^:>t"w#Kˠ;u!SwڗRvQm=ޣi~fW.{ړ| u71Ƴ/oh57 T; endstream endobj 1646 0 obj << /Length 547 /Filter /FlateDecode >> stream xڝTMo@Wx6!K n/iH@,D9w]C*7v%ks'0&dFa 8EjITFԌPY,z)yY-M[ՙ ߉֢ 1o4&mmV\&.XJ[ƴC6>>rTonB# ~/j/e|z0x1)דZvbsZlCa3@bX_sU.Ųe|L$Lg&lt'h䘣H>ֽ* ~|T/o1ȥ +=#|Otw_lVs1ijv?ηS/ o-C endstream endobj 1644 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (./elk_silhouette.pdf) /PTEX.PageNumber 1 /PTEX.InfoDict 1652 0 R /BBox [0 0 818.336792 550.414001] /Group 1650 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 1698 0 obj << /Length 1090 /Filter /FlateDecode >> stream xs6+tAciii3浀}"$!dV? dy >.,<&>E0`CIԽƟVwBB9 1Y@*e$i?_'P.@oAKW`v`˥x:%GPwt';LI.ažb_DHsp.?p7/*"Q',nBz_USoB3}}IS"ގB 0~8VvDJ+8qwɹ.%hೋ%1S {K;afKdJ25UӦZٴcK|esuÃ&V+z,e_Ke$f#OSFe5U)Ѹ29F vkZƈw[mC#3C/7Oʻt]tVWHMŠQugmYг5*zU3eFhvSO}sҜ|wu*=\.`yZߪz^8hnjpRWWM_r<nR 2t 2oN$>d,ub8#rr }̧@}[v  m'(|1BS jdP2~<rΦS34Vu݌@/yl2hNx, 9H&LUKQ<_m\}4(Wf@`sP&YYgF! PM\YPiy_GmyݥR2h> stream xKoP=, O8IMk]*)^kKk g[ih{r2#:#h\+N}CLvˬv{s\pF 3t$WdJv8qB3+΂u5wңW#͘eCe0Èk+'\2jev$}iI^u(r$8XE5/eC[HEV,bUxYc[7ƆމhW3p߷]IF><11d6F;C]Z(PFxԲ(IDHbDBIB,#YtIT$;u 'Գvc& ϟ&M)><y4ˢD[h)(Wh1YDE[hH`.ҹ.9 @AA"" "IHbPӢݵ'…M(Z}aO#iDuSb$~:攪)G&Dx :LqnNrfnZx/Jom@u4xX (Y"qp|{cpƷ! 4Yc0z9 "ɚ3(/P*k%&V2;&(I't@C@5ϣ3$Ey "4|V%X"#FyQ*E>:M<Qhsa+Yg_10@Wϛ Elzx-!ίl^e[r*"\p<f##Q0*OV{fDR%YJ~;?94.=U?I1x~,/n=[/0U4H7n8}IFQνy|+o{} endstream endobj 1610 0 obj << /Type /ObjStm /N 100 /First 1012 /Length 2576 /Filter /FlateDecode >> stream x[]s[}ׯ.d&43![fN_߳ +%(`%b~`(DvArS\JKn9Մ줶[⊒ PϢ0cH$Ebbiw5kn% c]$*ɤ(h #@&eG .U7#-[*٪rvr+cYnqd 6hqc*R Cvi$G[ Rn#ĥ@ErE˱)* mUv9ge?.S\I$&M9:jk#Jt"mD6 &%{l7I6If(PsTۈ&EWB(G 7j+h4H~3 B4¢+c{T$6CRl|UmRq&BhCelc 6p4 `gY5-&B'&{DDMl1&YR̵-jfoB,ma6 Q0a6a D\(a6a٨&b6DWXm;8t[}V_lٸͻbsZ?>{UO_kwvvuHav.[e}vˇ㽏n?p|.٥ڥ?|Ϣ֏GF.W^3?yBnC~,g=yQE5xdqzϢwG\O]߰e9KO^rgɻ$K韰ZWnbƖ\oo_>\֗kK8=[}l$n~r~5{B/)Rߜk K7/}k]mۋa/vV۷W?\_ϟzysMQ93|}{y}eT2/_}irGg٫j*͇oBy%l[^r+ jovtU޹Wا_{s"Vy~ry}aZqr څ҅z$t!vБ#KG,Y:tdڑ#kG֎Y;vdڑKG.tґKG.tґKG.vڑkGmG`7v/.ut}޶MoVZ}J*(gd < O}~#rgEZmW !ozas^K|gA1q@q7dXq->)OVDm=;D44b$6$"G/P|/;tf:&+^i8nhnfc$ B7nK ϧg.#^,*SI'&|mNv%>iڦS{f#_y|Ǜ@;df;),Î7OT ;L ׇVEIoxIe&4IξXPiy9%B?z;VLY2?8&FXcS`| L6on$Td>`n( PTc F{JOEA;Zq*u>jE냰"ppoa>o‹2jRYՁX]B\cڷ`D.ňhDĞ@4n7VTgz)i^hۍ%at##\]Ko$M]4-Q@7\݈qtFHE4FŢD>ԁXD}nDu1D w1%&|"t[XsgXm!^/JQ3+xkhοhc.T?:B¡`tb ܅ԅ;rȱ#ǎL:2udԑ#SGL:2wdܑ#sG;2wdȩ#:rȩ#:rȩ#;~fjt}%$6@b s/ ` Ʉ 8)_edB5E8 :Jb%)s2dBPYAq 0y^2AY2tBl]lACqtBqw#2r<ZEG r-JY1ՒQus{9Bp9AQz̄Yi 2^7įD9Qus$_Z\n DtvJBK4#@4Jz# zFi|||1݆[ YQ/#mN}DvИ0' eIG:Nҁy9:d.|dj/jtf-4|˥XsN tCs>IW @vh4!-Ӄԑvh֓ j͢>!RN҃=$$ endstream endobj 1808 0 obj << /Length 843 /Filter /FlateDecode >> stream xN@}b0g.̶RARv Kb$5 $6= lOؔ=8e0[ǚe+w&[i6ɘ\Jpc5$^ `^iWbssիɯF}o|ݏ@x%oCg7m UUYRJ.ZXE=[5yE(C*2dq$I y(w$G"/䟨}Q8E"F4yEAk ZA0, Ra]0E(- EbH8lj,f/5`ޤQ% J!GSH\ qdMs0N`fT=Ŝ,X'ś鼌i=;MF4:yQAyt .@QXŅur}br陼(:ړX4uRb7W3 1dX/^/ P5Ԧz $ 8C#1Mq!b9p{4k}IDoD2 &{k: WyBk@D*o#?Dr2pZz[xaQK8*E!Q/ihݤc"iYωWDNo) W%S%23 p& Fm޳:!M0AZCn$ nϒgyF3}f%1qݷyIp&ԾjYdҋ "/geDd-$COgOdҫބGH"ˠ4Xľy}2΢ endstream endobj 1858 0 obj << /Length 1306 /Filter /FlateDecode >> stream xMWH RP9m3gᮻH d#:~P@Ѫt,Jtڄ##JfZЏ2$aЌ*<[<|MUXtyFG%詴gdFHcm cK vԦ PJyz̃#}2:,Tb)n˅L!fcq;d\6Y'Y`q taHFY+eRh^uzFiX_At_^% {eo qu&I*ۺ5X#UAЃJV"9!%#Pɳod_`+(et5TZ"QDv endstream endobj 1757 0 obj << /Type /ObjStm /N 100 /First 1019 /Length 2433 /Filter /FlateDecode >> stream x[ۊe}c򢣺H*`I <$&0gTI2&̸hڥRuTut-M'iXm#>hJi'"$:n`i"w2=q%uZ#q#jIsD2GT0dn j7d'n<Iw, LFn1-J #lhM㈊ ZRԮnYNI $cZ*ɴ8UӒTj#ziYjDH[&ӇQjUqjm2Iș60X6:|XKce=ǘ%DΧ0 >J6(d/{LڴjZ*|$w,K6xZ#aJjB&w9.aIM-Ey4 OT)<O]jUO*<@&ud>nb3! @*yV c݅4<̓34&bUcNճ|0w|vwo_poY$%R6V<ϥ/hrAL.c!weD [.lG}%U  Q_vX8(]Ჿy-k5/oca;.z,|lGvُOKPFӼ@'eg?}._V&N'pos/&yB=G8zwW`.x.o|Ho௾s =|?ᄑkwiFOmþ@pqQ})jJF|IF ={ @r={ [ [ [ [ [ [ [ [ [ [ @<y#G @Wd?] Ð0n]{v4]P=h+;N~ Si @ R\rNw|% 4mNu~p1J ]Zmm+@Szv]G N g954W4BsQ_bZh[_' fhBKb_uGqio{z_tگ[[C7mOa {_skt.knEj?E~}q쯹^T}_؋[7LOqa45WSNZ ^4]Ş}(uuX+*ra:Gjq Xಿjm n쯺vK_,FcUHCkP˞݈Ts%&'%2 8R_x ?R>Pph+]H_ EW/SW쯽=]QX/JsL _}$͈̪IN4;ݲIezDMrYrѧ,DtyVUM &FH&k^#k2Zf\$:A%t(2& /K_*mMowIt拓IK mͫB*n6&1(o^ɬʛ|⪾I|[$rtV'p^pןK*UF2>hBF!Qman29Achyy42jy@l` p+׀ _ ۯs* T>ۉC<:deW> stream xݛMs8 V-qvjnSX& ov,L$SD lU۲òeƲOLYE8HFvl1Gx7?>r1J,,Ydeedv3˾ 3+·n:T~wWoW$ K1Ɔ!k݇?n>WocpZ׿٘ ~n?:)1>|FJ'# sjy E3؎ꗔCh3 pA!qa3b2]n*cPHxd9]NB/22Gx>wnϧ e{4f_H08J#_.RJz<y8aQ1y'|;wIyuՅ?vnhqMVq0JlPy'|ӱ Ͱ6xI2..fD[] ð]JA Xp0mQbu9ᢊ)*E_u)5qD(![}| Xأ^j/rmm! v> stream xKsH:y*IUn[-AlSAl'z#bF^ =7M?F>?7< k"9=~ۛ? g{n"4*3Tt;>,sf8B d( ~xg("Pi.G_y4?FI4$(y qaE m8Rp?-iͧGJ2}+ %cws0y qޕvգ#`^TL_p)-m`-->^K]xYLKjjgR[q́뙓ΤN2(tO$иkUy塪bV#UQ5^K9@mLUu8ϒ˷䞰Cju0dLNkwd/lkZPf U}hXiEy楥ʤ+X`2=;4!dzv8Iq2^FFGY祚MSzK D q-㘊x]}@z0 -,1RgjRlԖl\;Ӕ{ w˙lFlx64BSɝt};ryYH9izOl<$.6r@0^߈myBݞK8 AMٞ39@?6dKS;xb--Jٱ 1S4g:O{! cxYfZRNpUPC8ߕ`uQZ43.IR95!)gΐ T~)ӻWw4+ ˅OV1e.UY34+m/zOwVVȽh)p–pQ(R_[^jbaΟQ94ᔛ&tԸP-$e[E3)`J*p$%[\G{ͥ<-jo&F=&\4r ЌDI!% %fv9Y$Y u0}%:Ttq]h4<wֽ, }ُxR>EAgv/&˼T(YH7Cƛ#PEc<7XoIJnWōX< X$Ns@9ׇ{ Ȗ[Lf'ylڙI f-~+|P6)APD(R:ɚϴPkfZ9hP'dDxL]d]ޟZ17"^,X.-d2; `w(a"-xn/<N $V!kiw ]"j!fa9.^NY"a^(=]磞y5_@0;jzH4C$wlHf,oU;mUZ /M]/Qdի:ҐƲh2̷5!֚C=B" vk|/m^1Uz`p`,h,1q45%%Bɷonŋ>xxpw|w?ܿzvxsO/ݾ|;^C9quk/rrc폏8Z};DžځέLp\cvDQKey9q`'~.#t@6vTzJݩ-".C)EvtjmOCPÓc>FpP=@ n48eRC#\Ή@Np\P\*_K#t=G[q ..i. %qFK:r퐖Hu?y)}Ո]tIҭunՈ]Q@,Ӯ t-`?I_o1 LuoG_5+LJ[с+^z9Г0T]wXx{7\nzYnP|«qw{;MǏg㳿w_<\B 6)FNO;O!{?>SV+<YW0V0W`O+Xc!<Xc!<Xs!υ<\s!υ<\s!υl -d[ȶm!Bl ٞ}{ hmYA_D~RM?M)`;&: b2 עkrn2@u@7`y!D"CaNpgE5@{]έR+]JwؠlᲿ+Pb6J,3@)t:0D"C 5JDXT[=N |ۇˀ pbȌ?v pEc>Dvj{耝+Gm΍1%Qߟu;.=9:ըϺХa D5n!!h2\g] % cߟte fl]4f:e  Kp(F}֕: ՝7)oD1H7}:+-tx-3u EK̈H']B Qt2K)ͩUN"ݟsy/$ee tcHEݟtYB)L"ݟtCݺ?&'jϹBg*`f5dY2afjxCZpȹ^#+Ɍ{ʉR4.z5txkVoaTE]_tBPm!C߹1K. ^ b h6bLXhO4Cx>#" KT1/p4Ce<2 _2\.pz{Wuw4+R{, ^ p!#UFECԢ V&LZ4/pz)t7~3X%QNo _:;禇Xk!C ULh4Afif4?-~mi߶?xc3Z-yFcϫ-ז-ז-ז-r[m!r[m!B 2/d^ȼy!B, Y,dYȲe!B, Yr_}!r_9B ە%sE-^f[zʪjyrlKn(cm9/-ܢIKۖӮ-[?Yu#Nڶ4ζ-mKkٖ;--> stream xݛMsFAdqv*TtA%LYc0|h%m€/lq{Ay B=Iq WD^gugWzvzK(=V'e@8A[mo0euXBbߩ%/_KJ"R %ChjԵ{yߖayKLFjpPjUlpQK\B9 b}= -3l~/ ""JQiBPb~d<ÓdؼdYˇGKE%žh>`b(PjY(G/ @qD!T=oF"+Ӕ$ՀRB5 Ћ3CHb>y7P]1Lnڸb7Hj}Ybo,曂 qo'CY.}81MSkb/29E~{[Kպ*}xxd<70exn\#D+ zQO)K$'1t!s|V 0?c<ٟ?gu#yGhB8U (ݛ V#B1鍃 5$vo7Ziu VdBmo@a*X)'iQټ,K!r J{S5^QuѸtɝ<>}85M2*u3_Nęxdܹthr^_ ݎSF}#=…H-_3 X;.` Y'w~q储_ةazU endstream endobj 2069 0 obj << /Length 1506 /Filter /FlateDecode >> stream xݚMw8Z599ivml 8d_?`'A"ZЇ7$TI9`mPO{ea}}q{{lt#1)F xB\Oc/DOrտ*}<ᜏ̋1գ X%'ZO!7~|>O47 m_1atwWH";HYwGqeF6[}[:mt2U*pYi/ F ґ.7Ni0uШ[!vEy^^Hza6BÜL"PˎK?y.)"e#5V4&9H+sK1[(ACiUq\Yw3tmEݭU=  EWGD03=610 }VQhE쳚%ptYaFTڼ.un֧O@6{P?> stream xڽ[M]2'1N IOL݆ɿϩlHW#Tu28\Sj%d'ilł4MnH~S3`7 Pd#awR$RlLiVCz4lTTl4 CUk e<^ˉ'j_Dm69q6F/Kk'!lctvsbQ.;uXG=I.6Z$E<Iq5'aq$nBgE0RcjaJVƅĭvzj\jjl\j=[a, ^jR N1]خ|ԛ%Z=M:D#i\֌b.դB%{*@$Im42h ©i93h6&'4q11lk6H&PB[٫T "*ɦZ125WU PUb W}fU ^l4[!EŮqmBZȮ ߅C\l`[&UbcxѪѱUQ0$)T\U \h$diKX)՘a?͘{:{Ѹ1Ϥtu.?\|ɟ?o.??r/x}rsSz Y ; |EI?ܿOw~w?ܿO}w<-  Pj3dd=J$|4Lb!֓ɮD}`J2NSdr2u a ]O %""cc Ls%@*YOryK빈 N-C̐)ɐ Ι*cK]ϥ 'qdW҃ΐd+qʇ!>1%9b!>u%AAv1s2U) Iܫ'~e5~c܂W~*]{?#0n}o_/>p[$v)\y{kݽ=>+5#Z#G @<yq"{7{ J5#Z= K @.\NKZC&3uTKT$Z 93dmF􂢶T$hJ@z(C9Cf}к+2r(L@닀&O#D9Cf}ؕaWq!닀FW2(FHx}Њ+2h:P#TmE@ˮ[ <^߅p!nO k,݄Sj).4KyƭYZE\ QΜL>  30rϜL>Ju%3CW"Q)G#ϐ+dw$cR_VW"ѝ =>s2͕s0J`_#W +{VV^MŅ6eؒB3'ϿM/ 2U>KB`q4s0KݕpGnU7AO\ AiI2ox7u$:̼hi&6x90|dՉMsx+9ouԳ៷:{gu:{guƒ:;m:wTEмeyYve޼FjO[]Y.{cՉ6~9mujguVoN-euocVi<~ku?ZΫ[ íVpaV +Wʫa@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@nr :ѼթuyzV6r;[N~aThuɼթm9ΣnԾeTgu"swԱ<]ys}V :GgumAϰ:Gfu2[6Zz؟L;7:WxvFhیN96_0ChצFN5mFVL;hP9e%ĴӉf"2t tCfN4NۜNiy6w-p:s:q0=Kc endstream endobj 2105 0 obj << /Length 1349 /Filter /FlateDecode >> stream xr9<@-˩JRT9Y`.khNlsb@`5XdƭNuKjN~N>1ˆr N#;?'a g1hNR1Qeol0gPJ̊t} )Ia9>:#t0T;t r1>7| \707v4ʢ ,p(Xe aiEA6nq^vaI=]0y"yx<~s(r/0Q |:]LevmmȨ6!6PρgS@i`F,|kdd@0 !uPRS)}d)(WR?qR8LwFx aT:Kʢh% _{\- SѼ/2SD):adM bN!V[(;IPŜ/YXĤiV*v+|a_^~ƻ/@-((JЊ!B2 u'L oe4<2˩FeXºڨ,EVc?xu:&'4W!FbiJr*Mĕ-.4^RZfkVE*+MLԿ8M"ަ:e3g6W]qYUBqɸ5@qa]8Wfkq.Ɨt9[Nk( YKFSyܼ>֋f8P`pqF`uEuO戄NKy{yusYF6pBU\ ؓ /IԀW )e|ڜ"9*MB*QRcٺbPƑ 4Gf$p֮o*A? GA$ ))ndV]=B.P)](u U.^r. +%M^#kYpepe{ܩ)&CQvuP^@9D~ ;0Exhҩdn_xɆ2zޠm܇E^FbDZ6zC<5XB#g+ j|v6"Ycbs\3D=]V u6YF?|bM߽78%ܳgЪZo.oNQY _w:B ^ժw3J\78r/];)PQK׺ZP@PRLJוy"D%6_j5ɦ7UeA)(kY0QFGdȃu]zL`Z\6> stream xڅYM{6WxO+?շc;I&N2vh%&xv/ o"h9FGp4.,rd`]{pEty-~nJ`6Ԭ^]95{z P/)Ko . S\yF>v.MedXC6#ut=}b-nb׌ f9yb3mܮXlĭzUvg=_'.wmΐhE;^~bEڝ)1DrNWãk* 3^x:)B¶v06F+n ,.V7TS {_UTbCBIV$'jfJt/Aj!«ow7mIX+;뗕ڥInSx]i OXF0g}~ZH%;hN|!:§18VΪ0Cl^9fD)CZ0'iբONN&1.$ z;){63 wQD"fu_óz:(NtO4o '31E#J~P@O\? čE=d@2/7> stream xڕXKܶW- @ ?Le&*gʒ8sfIZf$Y0X;9SD$8J'ni@,̳H0K3.2U$I2´%u-ϊu{vvQLŴ2T 3%Q a04š d^ƍu+*aO:-[glPXu˾HY Z3p A<aLc \3mw֍""E"#&M\ :f8m^b@2b$&01̶OE_6bbZ~_ʓt劳0B4VI5/t?x?Cc+^DX"ae`]kjn̮ >EBٺynȾD`ksMڒ^[ΜGæ?'USС3`s8;3 +L@RJD c*}mBgh#Z'4PUVYnlyS,IcYb) ƶ;wnwH$^tk$P%7ouu sUT}ULl?pWB2ż]8kzDL,}*hGW@oB;sN ?at)zVrr%'-|i1dS[*zlh[57ʂHF'ff(Os4?` ( W<ڙZFp s yZoEmbpK6(Û}߉b8-byļ]2dE|5]`8QMPr7xxcpy|.]xIZ U>Uo|Ql"} <(?9.Pǁ9ԶOlp4CE%7&:v'c f*e*?NʶږJc򠟨6o>at7xENj {{*jt롚RDasTqPX"%X%V*n\5_tPqo :ׅWh`SN*n:7PIcSmIɮ>93:32U {_,^h ܸ@3Wj[Xl 1/Ua`;ضY*c}&(7QY(*} +3O{J5X egt]pLOxdE[cn#umS瀚-JkoGás>wlC͚[.ނS?ybJ{$`A*[Uh OOqN*up\-r~Az:ôJվaX'C8lGw k_87BΝ5;us5 '|Ágw%En\k@Qeg1]">#z}x endstream endobj 2128 0 obj << /Length 2438 /Filter /FlateDecode >> stream xڭXKs6Wȩ@!l%*?R[N+>' 93l*:hh6"D׋8H# OD``~o.^]e"qTąnHe**< nsؚqWכiBEiR0A3WW2?MH"-"o4ÛlUuD{\Nmdv3%N4npИywGsSC'݈y)97\HNݢ(f1 ~:wk' @6wJpw:<0]51~t:sOܓ t ׌6Lf&Wj-]'>WJ"C%ʾm-;O R,OUfn&%ktm^FuW2e9\6QåM`C WM%n`$MY3)w7M:xt--NWOՑSW4NB22=>q+" )AD Ȃ[r^//!tժ J9j:i] yoKR$AKrޭLEeBРn-o7 /{ vj$UȤ7FPnσ'z`q"|[I^Dݺ"f#(KȂ4j?A! k:w.w/D]aXy3VH٩v%&ħ}oG*P1fSɊ=/R}PopMZ^Fcv?ႦS<Őd듌/3[h}DWtnQm"⬩=ôT`4⁓ZVB'>e?d)š r}"THBؕ_㠂MP!x$6PQ555%pAG^1%:WNUy@H#"n7?7߭&4D>UvkHnI kF0D2=14IeQf)I_Ieh)FpR 5Uv=C( q,:|t)o%l)=+OAl C]϶m sa 3"mu896i*PKH9N}}f.I]=C<ف$q,)m+<\kx*Rzƒ ya`) gĿD--Xq? K`Sf}e_XQ"_IsPmzo5$KRKv}ד5V#)s-sWԨHn}Z^eo:y1U 2'֬i>T}poLc?*Ǹkx|:E0@6g7vZOWrɻ5zGe>OJzB |V g%YS㷃hcA#!TxMg8rh\.ׄ]g8b#l7[w̟9\l<D}ݡ/K0FEJqмQCA{۲Kt&5bdL D1 H mz>Pf \83ؠfN}1*a-/QsLbDqo;i-Q>:dwv=%,=8r*&%xb&&+;LhՌ[$w 0b^9TZmThaߑ;Չ\SF;P+-Σ V:ET1?)`pC. 0ɩTC k~4}*5ћůCQ/ WԖ`a5fٻP'DС endstream endobj 2136 0 obj << /Length 2551 /Filter /FlateDecode >> stream xڍYYs8~ϯ>⑪}dlf'eڢ)b"55oHʴ.FXnWboU2er-Xv{ G?l^dJ$qb٭2T\6տ#X\0It=ՕZ:rDzW̧2Z‹-,yԔuYd{WwcJߏNίsi_]}is8m\EZZ{j\Uy\VnoNDe_7uhZ"TltTG DZiY D/=s-QyUپQ&}bπͧf`RjՑٗn&W9˰Yþ2}jyН(:$uÉA'~U7xC' v`,$h^x(_]'v"Cۑϵҙq`RzHGILo{_@!2TLC\X \Fx7c׃ό4ѷ?z?__eĨ4NR/Ƈ)XkYk8Py7ts̒^ ȐE, Y0Ae&# ѓ͕}şS[ eM}ӗsY@A` *?f |o@'=ѭ]W][#5&r : @pUy(ߑ7<<"0"o{H2<0`|,'ucĉo4z,V`[\e2 |r|X@HFH_ݩ\"{_N.'7p$#u}ѾLU-#XI+ \ `cD`D A'"Iɲ@2)CwD Xo0]@_0^R Zs\NUbf{wq'tZZiҹǐ]:t}quodW&hTY+Zܽ}bMȩ~I3ʫBM Wn ̖?Daf uP}Eg2 35PZ咵ig2t6Z `EqwhUcvQ Q]4@oy G !f-Ŏa~aGt 3=Yg8}n%7cuujʞɳ﹐oF{p%$r"̠8)v2 }(Xk"{/FH^(4JgYgA |R =j xבg7Ckqyx A;fYXS8 x@4srh$8T1= lݑK;7X`+a7+]O6,Ia3>)V@MC{Ò5^G*޲~xlK1vI($҅Ws> stream xڵVr0+8ŒQę3큀0E8I'/ڕVus! (NB'N͜Z٪zqЁH:2);Cg;]I#E C"z>Aĕ.}  N(A"b *AJ:6#w:Mo4WSҰɸld5ۤo2)=? M쭧Y۲DͦL#("|Xtcxw =jt:W# XBO/C7 zQLdi"|`Aҟ"=Ds* ,Xv;l>/_4].ߕiXa:7E0IV*\QNjJW.5tEK)޸@>ArQ' BѐG 4Y?G1:>Vw֏1n}ЭC}P'&rEi,66lǸl,.,h?Y?|}VVfl7h>AG/sP2pMٳ3ԕϺE2TYS ~,b_.<}jy!jĄ^:Bk* ѩD٧3f)ﺬLtimºk}]NL+Uþ#a} i۪iĮȌE#h收zp`S\Pو=:1HC4//ZJ]u=^d[/e endstream endobj 2144 0 obj << /Length 2302 /Filter /FlateDecode >> stream xڭY[o6~ϯ[el mӃnn7@tLD\]N IK6{bQhH|3X}&ZE+Y0γU(WZn#0͗?JDabu[*OPnOM\56uM`ܫ&)[}EW[= <صlP jZE<~DnFm>fFB`@ ,a-\Z;ۈ$i;-qq/*I]c# @[ ZHr_kvlK+8p'lFB!|C&s[;[|ks c5+N,P1ЭOQfYf%R[7ԈtuWad+u+H ,92 nk}Dť~*FvxAQihu_Tr"usNe50u6cs1iƜf__^DD&'[$#4Aԧp꼫idZPfJ m%"ȼu=~a[#8sa}̓<;bl/;p5:jx", Sޅޘ;+%_\VMy<[~rˀ8Xv1cOPF bl:* [3F[3hjQܳ' ̀ 䉅錝dQڀ6=VUJ+J/*zH$J8%^j`M|CY"tرb7]cɎ4=-m-ƯԔT@6%%T\[s<8/1ws>.زaf _Ň%xJ@ ;+0!?3*\/+*v9pPsO7Fo&X3:k :~I8gL2 \^Y>A~2SGreE % c6:sR`A, -d|B9qΕrF8™;JKfiW ]vMyoHz_hϘBrC)>m`$o:AR9Vtx{$=Љ4xm|u%"C=>qjhCzRt1=g׿GYČ \j[`:cu=j]$rFY%g2aw gy ^`=N \:QFI[igS]/ f2TdV;a˔I'U%b?y 1W$5< R&6F1b3ƛn6@wqh>V 3a| -|h9'ۼx`a 3+N,+fXQ.`)] mV`Rd6oTȰf)8p_uDŎ/1c gSVT۪'~J(wι" ;1rp:Sgkv^z"!^]21aҸ 8+0J Ū?TR@B E $6Ѓѿo2@X&&EJ endstream endobj 2150 0 obj << /Length 3105 /Filter /FlateDecode >> stream xڭZK6ϯQ &&ٸK*ݪMrHLL.׷_Ⱥ t7n.ۇ?(d" *2D|{{F؋FEp!uqD]"3ރq_BD]9" "{|GE#$Nh!לMlvfO|)4JvffƚDdzPr^8jOhz>F>଱}3;T$I'0jT911AН_~ Z s(RM@rߖiaeL8ɩ #94S[4̣r[`1p{ Gh8m 愓XZ {3~U}€Ҷ*+{3Н:}+@ aX= u Cy (~ !7cƭ% I8mU#?y Ƿ0##"[{z|VMfU髲9O6[[_|zJ8Gsf $:x{nk:yw.JO* QR\)I /BU+”f?mE{Ro3 R68=@UpںLs|"ݕupoM|?uOk@l000pl!]{89.tp دV:o.g F!AQ"q1 byqh|Z B'4>#&ezUnV H HTt±pr%tx` lz=mOOJsQض~pl3f7`Z-(2)e[1+ݜex tV CzMer ^gOK8N<[l2xA6۪U*[z4|A}YiSd8Y|}i+! 벭I0 $k|0إ̐g$~;L]&MGD.Wƹzㆿ`NcԈڴ XIՇ: mf[[Ոɺ~n =>amD[wwAc@eUݧ:Lh ,D2zcqIܹae= p\A:qڌYzѝ%11Lv6Unvx*:쩛9qE`ɜO4Q\O vp0 cy48в Mm :_3&\~>4{ Λjn<D}ol17sVi׳YQ'LǛȋ+!0ܹn _o!BiN0C)f h G0BO&[zhO6(''ݼ[ yXf?| BhTU UүP 0]f@ϧ9yĬjʵ^'s(Pd|#,_6Җƿ +; oTq쀀 Q4o lo쑯 FkjŒ.}&UHq~4[?iUOv fa&ȍs! =&B쩦PN,o#1g"XTه' @܇}՚.ڻD  4I1Ks #gM3>v,vwW6 =zrQ/]'D(W=Y]/n0W&34rJk@(u"sYFᐴqu 5 `GB&.ʩ0$TŜF)3it5BS }n2}!P8S0E;@5]rH0ACw&}1 MgEz邢mx% 9g7]dkj5xqmB۹8İm~>[ן~!&t/߾$:jp3wd$B}[qf$2Xi/NJh .]-סɟt-tntghwMXNφ-*!J4m R`>Mw'b' 邩{'U"`/-A?UsJX GSlV 'iT8uiLuĄ'p4rKH vݳf@4ZCT,/.MC'l<^qn PsNt=$ů$38 \饉" fl29S+f"|~ g|fh$ ò3JaђH=|(AU8PݙZ6?ɯCy9%QXr*Ua>VEm*w/TWjap wZߩ1:`rf]-7~oMFdCOh.q/ºp+>g.RK# ZW~@ M\3Bu>?R*?* $us鮍(FkBP%<GX՜@c ?GlwqOCX,}&-,rWL/SڄsfsweҾ *~(hC!UˁV 74vOq5xbYVAp4SOq]_ʹ̥u i珌.ߞ!dI^q]Oh!m>>? endstream endobj 2071 0 obj << /Type /ObjStm /N 100 /First 975 /Length 2117 /Filter /FlateDecode >> stream xڽZ]o}ׯc!I 5Z㨅@d =3Zr.-Q5 ]pCn-̩ZX1%ͅDم)sFWj"RKT 1T\8$M}dz'} @ $Ń*޻A޽4V@Mч* >VFܳԨAFdD5b-qRIbҊ>L(?zbFbpWSRBI(F[C$\_(>@y;h,#00(I9AIIEA$chBqϒ Dǂ?&\L1HRM6v* Ar6`A6"v%+@n[#u?}3 x>l7~a:88*Tq=gip MtZ] ǍazAPـ`I,'hyͅ ̡x\+a'Ժb-D)\pWuaGٳݫ"_^~:g~`ӛ??\~xw^wͧqPp{Coӳgi2OW»2o\ހG0c=&FLe `Z0nt Sn3`z0%=gkSXr,u#z96} c-6fz0LeJ4 pe "A0lU%#π` RE(#`Y~s""43`և_.g`(/*>fS]~ip_pgS]~1|Mm$>1 <f}% &LY:fd]bv&<ܴG<3f0Ă48> p&L˄>cL5yux2r)>kv?P &T@1v_lסv+-݋w//+^Z EFIm}U &`&+4tL3 ǢS`']mG<4h듮R0U$ݶ>j &u>W=2ΊPMX̉=Չ),hSlJ>YLfWZ0g/+0`j`.8Rg2BDR3b9mS`_Dl'c*T\g$܃$&0zLb5::x}e &20e6d}e&boRo5 j7LA\(بd&Y8J?0y ѷkQ8f򒬏'4D2r~!ytfwmcnwf(ygƿn-j endstream endobj 2158 0 obj << /Length 2662 /Filter /FlateDecode >> stream xZKsW(%^$f+3$[:=, I=䷧)RdYMM*X$@7LM@w d" @ JT4:x;|'hh .\ +~% CH ~'sܗ$$9"qC}D$LhpĊp0?DQp~^_t)!?twiLH[35VOyHRѴr9_idjnN jxIĬF Q!y eA߽X8!QàFVh:$@B!e/G(Xܫ1ÿD͜8t痻_p:4&04+~~:>UCͺ60`<6bwsI[c{V!CjO{“mmA=_4i,$!K$QtȮצ?uMl.`WO@%H S㽥񍚽D3hKt}i(D  l`{P@ TD˴Ui@ .gk vs7B< {~OpW'F;FrF;h&ky:Hb.;6&Ս !'C lm `eXA ƴT zF R&I(Ut'YeJ^pFĿ}]Ƀ;CPٯEp1MQ7*BBe!!񫻕Mòw1+?EFnb9$ە<[@A`9)9ir'mIY ӽ29;zAɒS㽜F^N: c18 #z(yγ`3pɊ9w@6ZC> stream xڵZKϯPn Щn$lFìDjIj_>!%H32' n4~tAllc 4}.)^XɈ[<̢ |y򷇻(`dJ(+oKEޘ8aаTW5d23(vwAkyA[H]%,*I~i>D,.قQQ{D tQjY`-fo. }DtrY>+=&!ӕQj? ,z-+7*ue _Q]>_qtUuSL$#$L%7eo#By@ ! :=|iVTK F?!1XD[zOQ{plYx- _l2 9P~jҟ\⌧c ^{.[׻n%t+\#H[ 'Pj.Wte]}%r>}X蚦{ )}Y]aؠNlGUzbƒ[>5 8ls٪-׮CĖ(ZMwQQmwytj1<ἊIuE>vΎg31{XmE9Xov*rC(t 4CgOXNHEL(åtٖ_}ӣt*jh9TGky ueyU_-Pj:*a@o w&C^Օ藂‚ vS&P?Z;2w$l#ˎѸҚl.pcԔ.MYJE$!폩vru]DqH=/."~YeRnAUO6n1yN-A1>ߦ5 |8ustv*H0N(SJ2QN `2%dl)G[-o11uرR>\=hvyv٩e#B6.p3 NQs1%{(`f|!p:V~9`2_OuWzɵ'Ǩ1jG;C}Sa EZ8 .qm诫0}t%2ԤB#~8#tYo@}3ijwGS֞5 ika!v+ewX$X 6&OIr|ۆ&xV'r7 yq>Q.3(Vۘ2 >lס]Ց!W×]v{$X78׍̆g'ؗWOy+1\`m@TL="mܴE~jK6]95vY9Ȑ\ }C9xfD|ϻz|C&c}(\݇>L]3:ov.a20ud2"u7rO(Golu ؚegW8{ V,vFguӆQÈਭ>rԑR*`vsK,"3.gЍĄI\D يo$$35 GQ fr?t>bp۾Ty.}wdu.|ġ"u.ה.Y62c?5]ktW@%9Zr)IUL ߩHm9_~a2πt )C?BkM `%>R HȘ';G3= ,&$`УBr>f훼z&s_Stjp2ѹAp=uPP1eDSLep+q 4. XRFA RUĊO|?)IukP _2&-LmG& ;{ b Vg*l&BӱRJ) Fpfr<ނl|YUdœLOk'hp1V2#@}kƅ"Zr+EF WqmTaڄj~| o^[b`Y~= ve|푈8l Jñ\cf6.},-7S|t5S(f̓E g8F91 x,\s@xcWmMBژRD&eZ´h[Œhc犲E c=97ƫ7 y]MC B,b%i{B7LBhBH_ a틔9` q{p4 w=& H`h6%`ɮz$ Q b/oFҘPXCvٸdV>"`{ ؐ~eEBb.t(]@|W;aDE d#c$f)αv^,D{Ȏ{5ۓ_.2`;vln5WeeGh&߹5C><[DZsY/ka VT%i=f8an[]hՏJųPM;=Ș.u6Lq U+YBbǻm^mY1*2Ӭ [Tl!$TϢb Gd1TksHñ9V~humcEɼq?NIhJ1gqD endstream endobj 2167 0 obj << /Length 2618 /Filter /FlateDecode >> stream xZY8~ϯvFޤf f;cն6ԑ!Y>ȓ)dINH8J&-/kՋWT' g$IB҉ba%W_,dbKoW?rVJ$`_g7!ܜP`SyUy_6,F >/C{ӾwyFI .P+r'(ӔQI XIL`4sg's:>Ωq Y[VFS&P*O(PjLAftG f3*n Oƅ^A')̒/dtrggmΌ~=DZ2OxF}X&!C@fL[eFtg arNh K@@Wc${仾1W;c){+~FQ ͯL~ u g0ػ<8ig'Hfvfa! "8RZ1GqQP`{}2Nk <zz?Ӝg4CzЦ4iJ>j2"O%<  )wۼ4z(ɸ7nƧ}ns_^,٨{Q9)X q0: G@t s|gb2Jz=:~-Ѝ`9'󰙙@Pږ=f{{e,V{W4$h]:Lmڕ+%3gv1l|%;jjuW6_:>|, Yeqw]7{ri{L3ld]jG2D;&9tWnmof].]|k+~{*U,ٺ *U!/w.Y a,;Mp!dsy#F 'fo!^L#Vp`-HG(T/уhOfMɆGb%g|Q gcZXX_ G(fH(%Kr(mᏟo ϗb *" A؛2?D 1/ޥ簔)Ǣ'Kϱm _ `x[DbT}"X@0Z\ $ K_Gdg&# 98cq/5T @ :1Tz^"oaݦUv6lQG~RaZmW;iݖw3tjz0 3_nM^m| jyO@oG NÜo?`"D8&cw8CwC}+O'($0%Y w7T^7M](2thgD9ԷA+{J ZD)D135E!Wiјu>fඬE%LLgB?O:wX>}I#!2y8!i 4 NRlnP᪻b@ QSi`{*9P88`(8:i20L!@Σ/߽Lދ[K9K?bSMkw1h0g GXP I_\mk'_+>Nݿt7> stream xZKϯQShA8T[q*Uwr}H 9!l~(FK"@ )aɻeI&O*-YMdwoyw'{&3,y%'JdieM~^~-Xu?l:q%`:G>CDO,d*.Ebt,˄9Qk(57)gPP"p/cl= &N Rd,BI jHNރcSfLR"_"ͥ38S:p`Reڣ53.B5o=[5lWmW6_ݵvpݾ!Urv(lsV?ݗdEʅZd_T2oe=Vp 9[N<5%P1Ph$^jT6%f|BX9vLh,ؚ`t.5y),eKPiVAy5榬mX p[vU_h#f,5-uvO=ó'Ӥkir X{IBZ26K|6Zɘ*=tsٙ6^#ݶ {=WtsUMUjmUF[ZݡِdlG,hs*əqvkA8*$Xy"bqO;zQb7P/M;ح7"Zt*34ifp(K LP;Z߶uLO l-@o9BI3jvRʋhQ)V3e0& lH6:Q+\;,5*"wXNO{'CUwcN,W)P$s^6NdA uz5bͬC׉O)/9dBJIg~}[\ 4Y"X55{T`g-1@U7 L`@.^o|#_OdT|`v9 ù0)8ƸJe.S#k6GpL@ފlVbĦ o C͘tG0F.2lO~.ϛ[ g,?WЙ'30K;,̅[o#1 ۽YĻB̬>F`{+cu*d N&9P=@&zj:rF0BMOۡD%J!Mhlun<~0 Ǿуc.Cˡ݃; t3'#̪G;,9䆃f$$RV>.j4!ʿIgvK/s6~r ls.y)q6.g!OCΉ,{D}&U?x!)tt\ GF[^E}Ϻ72uQ#tilC9<5}وQ+K WQ_mmg&;g@Xf]I SKU# y~#+_0\sĻWO۝< lv4BR=WAm,=kXv)Bݍ [cl6>KӌX'1ImƸ2G[3LMҍπD޿9zbgk@l.$g'N@ |g`yq ⍌3~_րsJۿ :e?J)Laݎ0- 9\HhR3깵iYz:ez޽~I}.q8buÍ]]>Mp6u;l|2VL?'kF8=}n= o^. %PdhEz ~@pe{bYe{D2< ſg5 фaP,H5ը' ؗO\]3vaI10}:P_e .!_4dK"(*ffTf#1\lB*a\z[.4D EaJPu (G endstream endobj 2175 0 obj << /Length 3314 /Filter /FlateDecode >> stream x˒۸`rZX CRc*9j%jDG"'>H@haCƲ^h"<יezx~8or1J,,_e9rA22_f6ݜYx7BΪ٢wղl|`O>E+nK3{{gĬiٖ]oj[튮}nY[.LWݯ̙ JZw.B٪iΏ?Uf4-_㼅 ]~es'Ev_n <~W^ٻ5oj6ޔ]Y?|IAr9Ip{myؤ I=Ad,kQpAJfǯAy61h$X@u ]{mzj-_l_+͖0O5ٓڂpu[¬ʹЄ490Q83EǃVhSGl3 ^H;&9ظO ^NϺfSBsk7f3*?ힻ@}DžyCBL YтMsp`}]pE-7gHS"Qn!R5"mb`7.PT)1 =9@; B5Āc9(*/ClB]i鈥A(gWMA{NyS<#BDқZ"=Ǜ>Ob&)SfܩN) üs8?}Ct>8v@ a&x'dco&s@S=CCLר TH&2O/-$^mHǦ3b zݷFQY@Bw݅iNfp6f*]`MMyB)aAڥ F~UA&J HF=.Sv |nc۴fzQo8QQHh "InU6]wɜACfX:ēi„Xtdv&NGxO˖_m~N;` ;g+@ o>&PhE>A68(x6rA:4멖&J,@$ $ߜtLXtԘ(:ܧl:~ا;~?'*ls"M s(yX%ڊK N+Z$0XUh|V*Pīāa.Wy:Fr8txw:m`x0eL @CZ^SK.[#}>;:4bN'.69P[N6pؕ7PLYB.Ŭq;N{.}1_*v2>g݂}a]G!k.#!zg)<ŀ^TNBa[Iatk úwK8G;ŵRJEFIGE{K6CJq%-HsIn}y,&-0Qzm=JߝD nW6*~0?vh*ay[\@P&rWiT i;U)ȳiF& a%=MԾ\87Npj_VAtTk<T;^bv`,Ы7xwS˪-yi0u⡮2} d)sAT D ٳP*q |A/%],ٮϗu *av'p5C#2؃GOreu)=cݥ`(HQxkw9m; c6Q<"?f=]_F7]t12)9+^+cF^IB(:@?NC9(]4Hve S+OG[Hlc1\nB<13q$#]@W/9TD K endstream endobj 2181 0 obj << /Length 2571 /Filter /FlateDecode >> stream xڵZKsFW`O+dr׶^oUbiOI"AkЖ`pHI4"1hŗ8‘0Q%# &*hwxwWܼ=`CUhFBfc5O%KM9hƬ]p8ΐUnPSaZtc$ićAd6gTfFt6'qnx7n{(2fs"_f^tr4ҽ4{7oAgY|Q};&/\1!Ϳ`c".ۤ 9N2p(w:Md[0qѻޱUv I֍CvHBd9i JZ Ɲf t_lE! kR%<aČ5v!mt @1QqDh0{Pi f43vfB42D_B `滤Li J+ H{Ѡ^,r`ja/}mer؇X찿%qlp.n޾}ޥ ;zc̛ϳy=1v!qB iT Q&.d &xAҨ.8^C>@"8_3.\?]f(08Lp9,$T9{o6iDI\e>V1jVrDfvT/C('GQT>_HE,lPqQK(<<~ mIϮӧ ;h. M2]Wob@b%ʌ4 ,Ǡi0#L]@>",;Xx_2H~|ecq.1ڼQ Đ:R0( F è4' ,;=lEȥ>R@Hͫ^9F˞ޮ:J{f*CN6>z<ݧCidj$fG_sXjNKG1 qKt]fiDk;mܣb|fzuRU0|j3ᘌ3$ 5vסz\~Zx x'6GY->~kf=kl"mu&HniS C*mF>#;`9zzڰNжsEne Ss4@p@o3_43z Ct<ۘh$03``0628ꟙasc6MvQ.XFu|܋7E]g!N%\{9-[=(49z`/CSOŘ][lx-lD4  N1.!?o WWu`@G}+ձ/7IKڇڇlmmc?ܗU.]&n>_3K)jߗBr]]Ђ XC6*VԮђv-!CK$~i z& :Qu2^ұ6Bɘ|w}:`$X$cfӃ;g @l`~ MuyVh0eBxO*(Zb>kHoN/vw;nȫ¢ P%Lb"䂁Ly]Fmj6ӷG|΅|jGSbw<P'e"<;;PGVp#aD UF(K3?05n :'2ͫn| |dK=Sۓ,6NȊpB r R 6dE%$R Vͦ;P@+u}"7I*ikfaqNmed9@w45hIqe[:իb۪\oM$i1 !V刞XٹC34dBZ \֟(_zWmz Kh]pg=9f^:;d&<=c׏:Hh@f] Dިf/uŨ.iÆ0C VHwbn] 7ۗl^~.;O"\sO~Mvv6~ E%y 835 C澷:[ q`EK֜Ypxf?2sy(j ֛/J( & "v]A| }bQ`f'[TW\tTr\"G߷hΝ-P}" R ma=mu2Ǹ=|6xG٭/)d:S endstream endobj 2185 0 obj << /Length 2363 /Filter /FlateDecode >> stream xڵZIsW(Ub&5LerJJs%Hb"e}RɲFX -xh-3}~WdE5GDL1:-ow?}"*҅"$@\~>fjӜj=W&f(pۊnk_ufpn_xēvm,JXˮ\ta4'jbF&gS"')̧9+ ˮ{gͶ .[[6cda@g38k),yL4Scdn7m~[Ul4OWfc?aV##mk/]}kgceٹdE,RJVmf5Wk zjl{)I%PqY 9#]9fLf9ш`ws OCFպ|{o:p.ETeAAjEQu a34gPQ NeX\K8L8*4)jmf&iʛ@J|-|IݽF aE zַ# D"vt%-nEW=p]'W%6f~N#jcyA*|H/B:^ ̲Qpx)k!֫o'ۍuvjv~jVֳm]@e'wel~.髙߿5ґ:= b$}jK(jL9r>46 ةU۴a(op00o%d`ꭦ~ /(h!@T`{l~d^W GNcC<`'Ѥ';:*r,/AD|;3d:RG XJR6ٻHH x\zM/q( IƸߏoQ \pDVϷ 9; jRmbAUtOZ$ ys)&~dl711t/Y;7#}KmI<.QQzaI:t0 l.4c8)bSႭmx!cW;`WY,3r^Q.& 8b=gބgFipEC E g63)mP|QCv>,4~AmP/Z">{ΘTQW(J_=x/h'`VH,Vf.Y2 =qy9 Sc3(TZ \qŇ6;,,i dg odziu\ .QuL/Znr- .M<͏ya`mJ1-"]P '^Wo$Ρ̷aCŬZ4'K[p=T+ޛ oD_ 6k*쁽ê1xHW#:\@P2TnA3[P[#;!l׵:aPy CwQu4ؿs]_ Gy6 Z8xQ@lș].b+S1 o@RwNdQ.or6+ܦK$ Fkv{c#x,J4 PWHȍN4Rc擁JQ=3aԢN2UG(6M޻I0ٕjNxj%w(rI>OtB1Q7`i-"q }xcיNgWwH"EQ<Ӡ8g;]>pWb!&Bv-ks]r]5&a]N~=RNBQbt"?!Gv{GX\j5EL\+GrFN)j$Jxji=J5l⩲WѮi 6m7٬˺>sJp99wT6ЛEuSo qV`_V> stream xZKϯ [DC&0L`nkGICv=>bSTU$+~E&O M>4Ii$aZ%$3I[$ oǣ~e MI MS"3ܯ_[r?wh?)uvuU o\.^\q7yS7ltibi}Ue%K*6EEW}Ԩ7MPxn̅Da. exE>>"*enXJ2IO~ j(^+X;y/`-Ouͽ7+ϴSRjU~@'w-Hƈf 9^-A֖/wt1%xu{bm}[=.v[iKx5}U_BuAP G4,#`MRbd8id0$ͼqMUmv`{@?zJqp ~-MPSl 3Di[BI[i&)T.l nfmPeر3)D ~..+3)(FW~s^ r[vYf}_ DC^5 4x 1.Ըpe[v^Q<"xB38MŴ'XK@v!áG?Hs1^pbvmcޯ,Zd4*.4Gt!E|l[n^rWl}dLO8d" E RnH]uGE:" ֭-DVg+HLB܁XJ| >2UDG!9rS "8ZZP;1u’y;u=%dDQs5Iȯk$]d(IRs4Ӿ[CƦs;Űgվ_6>r'Rv\>'jO雌#@."ҷQL}vH]i dvsaY,nu@F$F g*رq]9 l}տ~ xfviπ.CMM3H{ҹq#-&<OyiYLæ(W)xqךd1sN`b1P/+ JY8&= 5%z CN{V0Il":sY. uD+Y>-I' ExrrvoW97w@Ņ_*{ 'U Ib߽Gzo+j-u|p6li gK ym0Cn) RC7-~x<&oMmGe$_ 3@#V\ŷ_p /tWeFLߜp#G䄗lg&%B_™VQR͡~x ? {ч;EA6}jWuνKnͩ]G@ Y<"9 ;(̬fTA RuRLp7~I@b$H>L գP=^_xh1><م]kv">90wvWE:x 5~ 착 GO!є:~o3>9ljs},bz>\u> stream xڵZK6Q]3|RnT2SmbK$ )inG9I&A)ӈF,jW||` ^>>M*S$J%#i&Z>8÷?)1F2x4D2z*_bExӷ?@Nh" mKf2 g)bo4*SDJm#)8<7gXX²,J`T&ӈkBMaWQьեD4$Imlf\ E1Kf~(˪^n !@uZֽڴ j( -y?M^e](vZc :\$8/}qHތb\ 7fvv .K ̠A[盖@BJ6fY3R":ƾ-DV$ez$OQ'm @ͭ{Wt0Qy6?̪vWa/gx)2)Шc4rmZ7{ٚ$TS'ԡ"%tW=x9ٸ9Gr=uq\np??}xOSv* @ h7N:$CБZ8#Z^/^`SzI;A;wUsp.CT8ZTݴPE"]xu+}nU_\-\<$ce'yOs'f5r!Ѩ2Yx2F?<..^̲x-7ݰ̣߰k uQ+P<m!q0Xmw7ltޚ,4}Y( Pr>b&|W&:xyew_ynr-pNو~Jb\Bakd #3=yZapBf? mn{& nHo-R4( endstream endobj 2198 0 obj << /Length 2756 /Filter /FlateDecode >> stream xZI۸`nꊅ$؉]*qs%v7˔bOa!ERڬT* <{[H$|Hw.aJ&MReݿ,"} !ADD1:e!>{5bq6e"{q{} .K $/d ?%1n&w|s "bL@Sa4C;$ `l)XEv?5M0EMj,5U!`ÙAN1h3nkny]i}qpr‘VSJ`Ajr`lǴbǢfH[t f8"RPC0?zL@4fg7k>c87ƽQcgEu!4Ҧ+/ᳬ&/c H~iLDt8;`CJ8\Z'XGHD7KQtUw̺n7`NJd#cX pӛH2㻴j:+/F5dFc *nl,8P,[*Ϣn& (Z*zckMAi-g93 )*稲D85|[!tr8چ= )j]B .zs5gΫ]}c*JW:5LR 6pI⋴(* M`ZcsOբW3UnZeyz!Eoj/5X,U'zӼ~w`1ߤ-,7v[nk!ֻ|+[, c&x{z4dd#K%S<M4`$t, ZzȪ,13˾H21fO1C:*DwCP\M*M 8Gr_B3REЙC|SعZx1Hvz +:΂@ T:Q e|\.p"]|$. }Œ0aޓE.]5v"dYNlCd:9,y-v,pg`o J.s}Y_a%lZ *7ϾaBUWXG8`}tظk%q0ӥvK \pD%3S̩ dY `p8?+@f\̒,(d5a Wg 10vPb3jӤN I·?>yp @ޣ+U#eBə2dŶx>ۧP튼{ |_:$Jyq,9xWtਅ#V"Xzct%^:lPdxfzdTi+AϹ{ޣ@y/~{JY\YW i[U?1nuj̞W.ʴ>Kb7vfW)QK0]lnl,60nu{ՁVr_]2BCu@{FXy7^=!S!( 6`!92sHѧ9|L)~k`L/!lqG1ò~0hQW}P\\u_1߹Iڷviny< ,,p+]uB֣ӻ(5k`ԈG5Ϣ8εMSGzijD,P(%\7 NWWyS*!Gy eg6 %ۣWQ^ 5{rWGq*a:Vuyte$b}{pl|WaaዾШP1VbU7=.?! B; 3\ܲX|~]p?o[k zA_2X[!Fwhb;6cPJƂ$ * \G%*K,t?b$\,HTj!(0_:@"](XERZ%Ftk@OocI "*u.Ԉk=' ^P/5¸fx(]1 ~E_sb ,h.pvxƻg5RZ7/"O"yɬ}EA_q^tƦ62 Iqf9#r`? -mX3ʎ_7=F^$^ V> eۀ)gl¨ lz c.ru\[eU]˭Mmlw: @ Ǣ.@8<Qud> endstream endobj 2202 0 obj << /Length 2732 /Filter /FlateDecode >> stream xZv8+tδ|ǦgjNz*̢*qԱD+],t.b6$ьe?XWWxI\gF2b/W)ɇĝn~|d)m,(#uBy4NDh W;FYn@I$ᜬ `jwo4[3JDa'7jI}EL%(*RH0Z%0[f f{p|z29[.7S /\57?_/׶K!ĢX5zꫦ׻mƏ''ή&waroK;^bY,^m XZ7v؍ax.x>/7DBC<%/gbeXwv, h Jy6 h \DK" hQT!ʝWOwR4H ᕊ al}j5|3Uߴ^޺_0uRm`g몵pP6z̥a7prk(8B*>Y:vTa$C3`&VhN\+p ӧ'˵CM)[-"we7=1*S4^]f 8߄ TL"bte 9χeڱ9@.à}&2I1׼v}s1…8s0"KIN'1Li̝ pPfJ/y&$Wy"VΏ)aq<,_fR1&Zbk9Xbe,VTp?_yx@OՎF#p,H  ix m\ /a_`|eZ+~WAm ,Ri_wV%?:K{ kfy݄ 8AT|q\E2:p9X$GqckA;H NmG.0r!P߄1>Ky8U@-RHvl g9`GMl J?(`rS۾Z"]Ow`H]Wi`U9 oFa2E98¶b~,U۾:p'\&R h.^ 9r׶GAW{8 qB p^,ZqNy7Q [ۅL.4m^N>oA]߮J;6~-ݢgg/M[YIk[I)ᅾE?oq d=,SzPݤGr/lCF[֞+ $P Jf.B Ht@hqw\bm?w[@0rC"#? $Cs3u endstream endobj 2155 0 obj << /Type /ObjStm /N 100 /First 903 /Length 1397 /Filter /FlateDecode >> stream xXn[7+9 Yw4AA*H Zd,FJyrR($bR2q,5"" ւiЌP9wB j|Rɡ6rCk V}r4bR2"I>,9}4dgbPe4lpAiSz]Is(5NT S jăX']1TnS.@U!ToG܃W[a;380ieC3 ;+ gGX2v67;.$,@&œFT! kd TgQ[TK([ ""qB9N0x+S* ˁ3Rp+|ko^TS]BPi肚ׅ+J)-AK;W`Mvx.J5PX5P:),W-da,A`B5ﮮv5vǗa[?|~ٳG"%jrѨC 6^tw*쯋,Dbr(b_GiaSݍ||?=3AZoz ury_gxwpuWۿ<|ݙϿt%NAF[k{~aڃ`0g#BAbMe fq8 T56f_,_:8ѱ!̂B,(XP%ϱá4C (; Z81PF1Gq|2se8`9P&9PVMhʱ\q¬q"|RۓA~T)ї<,#O& bi w'1G,=H9bc ڞ@HR2b9,Lc&$dUߚMEf<4K~A$qyDIAhz[[nYVϣY8NXߺeP-2JʱmVm1{[ `Ʋ'i7HQT> stream xڽZI6WX%S5UJ&Tql̈́"(56|2}x+LiEv}ʷ}OuF02ؐ>S4S #yv~>͜)19ճ 6tE},([_sjnb2'LxUz÷%jT ? [?4H=D~ہDj[cwk Cb_`l-G[7UyVe]ռ^Qu>ԋ/9w2'3YZ`[P!AP5 =@Fi:œ6~>?x1.F[GY^*B"B|iGdP~ ,  ʺ-We_z}6jplh,RdpH1C؏a"S` 8­ .J"7Mb-Zdk}A -+n@,'૧o"r슬$hC0#IW h2HDLjLE"69Uz[ 9]jb[J@s*3ћ[tA|_R@Cda!|bJ]aПe-k/,(,m]iQ6uj09)=S-!->{10GB5Ul!}a ހGsx; 7 MLOKK댤oN .Œ?j}4@2%.D}O` NO?LBx>O˘MC]_9ӯ1ibt#uk M9~>a{9:-el\$_I3cxK@={tDo[5,4, t.ϲc *q}99_|-p}\z &_/Ot >tA/0ksĺXyp&&l>8GF8g>"/EH2}\\YpZIMb.$2 x7ގe웶vtqq]Ar pnz"1L̰+741c!Dcv| n I\taXjJֳO@:bÿ0# ]&C w%XK2$vk6(7DyTw8/ǃo6?+qׁ瀂:_ZuC}"fB樂YALS|)tdL(8E 2qQOt &CTleUj2jS9+Mai˭J.]rfRKA.&3) k@LBW -;@%]2!@}74Ir~ lG#}H6< >uǿ1jŨ{HFZݦ.b§ Pb~}r't۱ۏ} *Gݳu-sƾpP*ϼTe]ԋ`a <; H4 Q`ۖ0`/H_)@iN(OF*l<`=B14KYWTxm iw"^4a4WP6bon=E[qh(y6yB1pt[Z 8Wp"pC> Dc֌. Ǧ]Ud!kS!z,mȡRL3eۯnD[]58|䅕RPvBЦ< ТY);x,Tw*wFӮg;F׃B3{kB*}_I'vvz#wiԽRdy}[w۲|wYÆo?x1eHb*gpmKZv1 *,OO_|''T^|Dc(a"g C0E.%=YULҷu&>kڥ+Ŗm,s*g|T|,:"Ϳ~Nl@+?t"Љu֡sЉ9t^N4v .cy/}o AL}8 endstream endobj 2211 0 obj << /Length 2944 /Filter /FlateDecode >> stream x[K۸W07MUśdR9dR&;v@Kc)SԌ_n@*uG4VxPjPޔk{[o!^s[-Y*.{9 q քby@[\(xz33! jܔ`Ye eQ~ P c[ -o ]B[*;WgPf[[SUYwTl Rvpovzl7OMg+'QLbveGA`XTQ(D )pXknV3b\|d0%zʖ]m5Q^rM]U<'C1DAbյCvhAR^?A.u;vf`K'RKn9flS#E{GӐE.?Ưy O".wOþ{*XLMeWg_ڢv'5'ZwfC9CTxԉ0茠g2,X2)Xkw2c-Ysc's>E7\ j=28 Ju:__{_C (o6,7`q9|I=OK-YC$s޺L&5lvNŷ DobպUڊMj|Ժ&ea#,ו{U^C:G%zR Ji}SP@0ږ'`^aEAq.EUbE̟ˑbğ/)MyCBsߝ kOJG'PG9H%r!/[ $L$p`p$UjvlYY}b?^ h-P43 Dۯ ܇.;w V`8Gv ~HFۖ+(FG %.3)%TY<q4E][n<z3`3 |̛ڿ\M AMq_`ӗ@!iYrkZ󧕯̀HNρqa,q 27w3w^9-&pZd~&t~ _zΜ sL _& z/pH́C*t" `erKԸz!5dLrdGŪ5u_n&+˼=| O9 Ww*N傿t O)1*E ΧXMjvy@yg9X‰.t>#`h ̐#u=h#]Y{#5G]w3:tNup=6pMC_LDp}WfH1sHg'ջ31?Q$| ⇤#̂qa,qkw34tg2KtNKJ ~<䴸iNpXJQa,Q~7CJCw>=8'2M<(}OM{Ɓ~y?ɾ3`:#O9pHXVqf?ĪW"dt)^ƐQd1^rqNP$_aJ* c zl" endstream endobj 2215 0 obj << /Length 3092 /Filter /FlateDecode >> stream x\ݏ6߿B^fMm&>ݵ{m[^"Y6o!hQ ^b gz;<ûwIQ% iRwN̗w_~x{V AMhFBaH~zVBL8SUVyY-܏ '`fX"dw#%Q,_`wIDaRNއ !$IF)d3=LA*"} 5M0E&LBb:)nw"Jhbsd-mn{㞪E~>= ٞT]%M_'ͱF)s#Φ\U616 δʣSw-0C߲!uTG4H,dGX4f M~_|h,c |Yu^}vS}eYkT7` "YدuqgZ ^Kv-']ܵ7|rG;nVL۶?͡r}ˬ)sx3lz{8zmu_a:{xۿ _ǢΏĦ6:lfw[؂y\~o`Ё6?>Uקۗ.j_wM|[sƨֲ˖fԬK 晋ͺsR5Y".}D[1íJ@8e砰*-aQ1b8;En R^+ >e(:_[AC@r"Ho30oDs1.'ǟ*!FK@ 㤙!Mw4WI1b&pw= }4]x H)vcC4]1.f܆4]1\ ' Ha6iFJj'z gnL}s*sn"'׶YY?A@7L9dkԕfm#ՠAg^0ʞ ?9Ulbzqlj|>!aνدs<}e¥ڥTlվc[!.!6ٕcq-~ , M1JY89ʏFJ3I/SͬKlr Y2",Y }^< M16 @s#J& h_m8] ܙfKlX}>l\w&m۳e[Ie,Uze:Q(Uv6G2ph0RчD|ߑT%K|7EZF7$2#x&4:qpTb/i Ldϵϧh0xFY9=UHdB!5ggkJ${G1l@9OԎBl(7ތt{vD2=:f,"TDD 4 P#̤ͥQ4,@&y@c݉D88#S1';c*ȹIaЭg*T~)Uūd 1LF{rY˚"`@zƂUj`ds`=Ͼmuۆg1&[ qɤ j`66ب؍3g|ƛJ8*FϵJMc8x qٻࠞ(0@F%ͧ\PqIQDobjKWK;Cz7d?<գWA[/r,O"YOI8^o>#Dk1<>m/s]dCĴus>(0@APu,jGhjYT¹wL%(\GY'uܪ nä`3RJ8m̈́ynkO\v4XPrETG;/o|0/MGj;`UƦ01ܣAZ G4JK\.Z ZA3O<տ\EY(|7޷^I`ܹڹWrĽ5P9MRJl8?-Z?LMgJ)M-zevJٞxA+E qdpaTl |BSu{钚(8eMRf)#꣕K }3뚂z*>G.gg)\ $T4Ox# ACL (̀L'.y*ކ>@.5K`Q4$¥` mW1^  1(#t-m3Ykqǯg dMv6Wcirڀ,T"#Sxso%x̙?0W#C_B^D<\\}0U뮮.{܆]1f_ g65~o&O1e-H۫0ljSԅN*NӊSSԔq7ԢWB\|/ xϊ.%A ptz}ٵsxSx)+,^C|^ֻz +^X@VC! '6bL7^FV,}%#À_ endstream endobj 2220 0 obj << /Length 2670 /Filter /FlateDecode >> stream xZKϯQS&Trv]u9g+IP,I#>_Fʷ\f@D7_NpBz OW$Y+{Khh* R:M>x 'So(xBBf4IFBf6Ho~c:R$&&[f˝K I,*q,W%1i|~roԽqyqr`k[ՠSD4 ia+Ui~eT !7IUn^ esާ&/O T9(Wi!R\L]L&>\ g"&cZk&xC? ji|E;.?7LS{eVXTD bz$r yȨ21 k;=;aN5,O򖻅]y@Tl'5KpP<[ŘF=f,%'z&V٢Y n^p.M/lX6+puMpP soQ“\|)\ yC/ #~.]嗢)SFPj]3B_5Xmϛsi@I} OV0~%ұ_ޯܕg7v+]n98;"h , )&( xdX L̪\fLB>^?^ Wa~7}Oug˦%ռ t#, ;Ԭw8u/1 ;SbwEk Sޞ%=1K|=%(0&|zJ>î0H@Lf3%GD%ƜB *Y"F 'eˈYb"HxЩ6}S@rS@BGeDZ {ew Q)X 2$" CRttb XCy= "6+ L8g`))# >uOy,҉('l#я8x\#/Gao"VJ{k?STETֻ"Smbw?/wF&j`͐w^m?[˨w[0RG;0=e lh2Z U&Gk?TSF,d\#X}&\C032ȗ]kdd򭜒:tw PU6/-]s+IS޼<Ή0 [׳Uffq<]AdZte%/UC6<{u,Wܫs-p/6o M~u"kۼ,}e]: a^`,[xm˻tOeȉrq B8 ƏfF'5ަFܥf`-̹CWREU$`[}sk endstream endobj 2224 0 obj << /Length 2253 /Filter /FlateDecode >> stream xڵZY6~_V$Tlex8UP %*$5 @q.~Ah͟74቎RHE7 }O#FIF3ݭGD2[Ew۲],HL+q˻m?lbx=pJd*ﺲOcStun=.~;jQ2syU++Y,SJFL)p& &p$X&"4,Zx%;|<HiTn~F++""KhI᷊>o%,"-3{n?vHX,00,љKHXJ2$LO6(UąR&7GF %\26&&&7~T_NHzέi BE^ʭ )eWj2lG]}*O &mk u-T;7U.XEt4~5G¥$; 8Pڋ G Vkg/ 7-Mc%>I t܈I" /Z@\mcXԯEvoųب 1V,tF*'|%BZF!o\@88:&C*YNciptKK.w]*K a7Z׋'s"_m4%TX)$e%cdO*Eש4ztm\rFh AU&6 4P˯γE `뚽i6Epŋ4G4O y߽}N';r2WR%h,Yj3U/;dqAwjo|{>K_!w!ᓰ(eW"o$Q|XL`Hp8I{s|˻?Bi K<Js)Y9ZCS8u/NQ6k7jh \`۫W躶yQFݗ96 v| E@~?ĂO@ۥMK*r/!1V{Aҳ Nc[cf@U[*?Зps3_Uc()̸v۩sQ[C֝H0n6oVnvB$@lI}N\cjGWVgjqzKhYt,oEu\!-:H"ZK蓥+O>CM )8e^v}fq<5㼦>l]Yu(& } ~ۄrSReg 8\1v{` ~[_8"΍$_FX+e:($J/AݬLrOvjV÷E 8pJ˶ྖ~lS{2+FS I|f 59؉҇ѼHصǩɈHz1=Q5GC&9*\Ϟ>V hɬD3D+,;sXOmT,&a4byt@BPYu^rC22 &+ ֳRU.UI2Oq%R$JƓI|[iޗ\p.72oNr' tK ^Y޽s/9 UQ4a֓> stream xYK۸ϯQSexLUMmjzXH@0cJ"@7n҄&,i/~{ǒGx{LntJF,im=Eyy7J&L)O4{.kX^дP_\w|ocmrS&mURj0mt8y*k`wXopd8ykI?3v†y7m&LO@ '[C/2IR,t\9pɵDInK4Dj~L V2h0 l?-D{~u,27Mv"3"/W={),2 ⟾xmP7lq-ඇ/0rh2EfC}Xu]4@91@G*lUw):4'!wB`3T_ QJPr~fXJ2U({fgk .⦴B07Vj^lH[:1bY܋}Y\tz#&!=V rȅ Ձ~_;`Ǻ6ʻ] E8d$ q&oNwH:cl RKW2 H*A2D " #ʨ tW] m^*v􇳧Ei3?0g.SawɈsς-Fp8w%+R4?CCI*.)U+x/ʦ AdR.A=4(܄Ԡ&ا(ZXtrsd8 r,2;ۜ. $b<<aO~cS &l6@\Q[i:݂ kwZwΒ!0z-"Ō2o4%ak \cPWGG^!xLB].?$/|F¡"P6e\:lMZ{+8|ޕ0'źj^Bmm^|peq YfV~E |ݮ9V>Kdl?r/%7|wemPv,phCScExli׸]=UsȡX,_)1\̘9Oqxɚzϲfj3EuGYzy=hCsx1Vພ4"Υô2?{awYDSp!07Y8ɕO3q#D Ծ3ir] )o9Cn`"pK0"sP^񗅭_D9^ " LֱYh9C`M$q6jo\¿f~۱SD>̇**s=>EpXm/k- veT,2$,Z<Z?mhV_C& wG? #A׌mhWocWHbbAWﶶl'_mWo;2]GOO4ZUp0JMR 5,G'j`[/Y 9D))_諷W{ft @OȜc7O TtS`J5i;gGM'vwy-? 0.IZWk6-vԱ=<ÿRq?<$@:) FS|qZ&}ahm,%ԃlm( b]/ {v+1h E#8Z qrgk]3FZ`.\Id/.*>7.`f)0,P ԌD4dojVY endstream endobj 2234 0 obj << /Length 2762 /Filter /FlateDecode >> stream xZKsW07b1/`׻RIjQX }_OVlR8̣͌.ޟ%d&sIXΔDFn~7xwM`nxsy3JI.%]26xB췹$4Q߯^Tk{mvf[N!)֠(u];UӰr~^Pmzr1/vh[ߪt[Bgx%7~F 8LP 0ʔH˦>˶+w+MSondre_-R$fv{vߕœ.n&R^CDnF0?;sՓsoW@ be}y:Vyz$9(l˶*aD[3o탱 v#pH:wP6H@bc9j\7eigB&__1C,X9kgY`@;2 7Wo 3F82 "@ YH*ׇήk T,%i̧;e$7Ax'f2!<?5Z//rB|c!!̼ {r1Pv-!#\̍|HH<~#.pR [Rm ˦XZW]aY9G]8ʶ4musح5 ӯ jf>Zp"V}c||8\ƖۃZ$GY|e̽!=ml hIꇠ#0Je~Ћ#PPCmdU70ׇ$: n!Ik#@+Оh6:IwQ' R.Æ ۊl*9b Wqik8Q#Qat4|8`Tmo! C Wa/c3,V6}BڳF7=X /Qۇv U􇅁 ~ b,^31a T><0Mۨ3gP4XȐ)fUAYb' @(wvF2| dpo .382JG)tJvٜ>f()˴1GXшǖݢ^UXѳgP>gJ;%Bz㷬jSؔa6JJ,)\?ˋ>&1WG E{,GuJMԎ$Ϡ0MWKJLn29ňRCKJp~|/DRe#?Z)χ"Y X# %APP*h98&چй.9V#7v1 885~x+e{ 옋zmn")<.nZG4@R iCm-@={kmIpʃO#H0D7>Ǡ þcP K؊5,cxJcRӔS0;e-;04ɦ?h @9]@b0%b|Ypѷol"[u*H/pldխ""̈́_#I &(:т+ <ң љEvRɁ8ÌQLBfD**UΫ.WQN.O\{ k_k{޴|NfWv|:~k@P(; sv@5mHm1v8]3we﹩4_k!d^uq; ?-%RwÅ7>cce(?ȭ*hlsUiA>yFeL:3$ݦӐ>Gb]jss󢛐_pOx`H39Ƿ uC&IDHq:/[''>! JTL>#bV-GDE*/f[=j2,&_a(B-+,Q583>7uն_6`;i3^qnBQlrA{[ǣ#3>[&deh/ԠQQH`=YxcyICKU-GhRYj-WMݮ=;V`-/3+}iXnP1^t>ݦq4g~wg[7w6 ͙EG'w9;P4'C;9BJN:f".>I}$pF2?4J=N_L=moW#?C A ;ḱe |7s7 v endstream endobj 2238 0 obj << /Length 2590 /Filter /FlateDecode >> stream xZYsܸ~ׯ`FU!T,kj+nZEB#f9Glt%|dXF7a=9{F'iqC!dUYY7#:˦xBoZnB]֕<A·o$<| ao#xѹ1A9j^KGvYC%_m-f_5]GZYCk~#la{ 9DX]s"5[UQs(Yɼo򠡬 -)НKJ€Ċui# X < ]ԺȈFь 5d}yi>KPD˳)pᡉ" x6(IWEADCo9!'Ba1 h6a tSR_e34뛃Q0r/kI"Wd'X@Qrt[tϲ4^(Ͱъ.0ȌF@jhW]:' RZ1w{H̩7[gO,o,*z02@ >@q}Yd^yӶ6A0׋#oqaߠ= b~c|d=vl/Y;vΙѝ9=_Ⱥ+{fƅj`|ζW?\J I0ݷMM)Vzuhqi@1DX彑2̉qB4#ܼŽ/G"Ԑ[ۙE9A mA s;oqn a|Fc63 -B "q"HWa\;<&Ѹ/nIh,C\0hAšOr{!gN'FdS]hckV&W[@iDL^n.p)afQٕch5+A.ow١.z~.8*$9U:Jt.Rs" 5%0DĨXwπ&W39*\"4W5 k@is?ljVvZfu}wIOCp'Kk}躢HُD =^IcHeζ;GPC )y߈W$4>pJ]CUO&@BZ1ZO€?Tfi fdJ^)kru}$ZVVE͘[X_?ښJ両2gUX[co,W'^Xʪ|Ar9TxoyИЍk<2%vhר3̈]onBC{=bTa'SR<JaQdL5W!AB)ow#ZHثMs0+fVbD0giL @pM;óWfu|%ƮF_lZ3!:߇ӦlgZXS8ZS83U'%c5u}V9FUQr5ΘRYä]4[.ƞ H͑A2!Ӵ6=]ٷY aVpG)K 6D(tHs4YH/Qq]HM!8R~(ӿ q`%:oBX15 lAsSؐp8fш❬]/a!5NΏXIBt[pmROCc3iGcQp7+Wjrw/w*^e*y9 ׭| ϯy[۪̺8v͒ iYrGbt^sSeݱ:QɆފ}mCw$); 4Kb,2G$d2벪YUkrpaOE"$>$OO`j`U; "̍]ۦѸ[!7Qi)pXUB~9ȪSyώnLj'pDfTOt^m3ԅR 6԰ Du1c#ز4d>X#N16j vVhW4}-g@G>K7aTqB)%Fu@Λ׻Oҩ >]yΔ [ >܃:'!l: $$Oר"9W~38s:ZΫvpj9[OϔXO`Gy%~@IT=XLUem|?M_C=62o߃'*k7]4 j鸴>~c2m> stream xڽZI{6WLKdOvr@uCdKOnBK㙋 P(TzUh]իU$LU&(UcV7g?›[x7g^lES9]mnVZ\g+IeV&\g?_4Wm_q_wUߜKQTqXNtpUR jM sFʈt5T~I9(ÂMl*IRaLC4z:('1ݞ%qUk%mRN8_c+sq]ξ<_S)bRED>|S3~5l d㧏=yMl[l䨒z9۞+,KЈERӤum3;g7utbb 4xHի=_ն+طčWB͇s>uu,u{,b="M,1}_n]BuQuܗmrk7{(ߙj)O6Ox* 2")yM_}S AMm[3ޚ5;l9;1zdȴMt{YT;f[éιjg/^n>B7Q $hƘK(ܦNh%oI*oTQ5Fuo=$/fkP'HvPn[FÅ[x#2J/rCؕuGpnޟyaW} F=R<2M-cnT+[vfme558/dEAO&N06`Ȁ1ℨyEjwz>]Օ ; TÜy"zǰH;#wP) Q67et 0:0v}њ55!l@>`+w0~ߕ@SqhIuXEѤژRǹ$M`[.6 ͌AYk|ߠSwv.⇚I{o.؜:OHK#gp@F,PKX7p0eb}`?`C$}6ˮW;<|l:Ӆe^iD!4< W2 lB |5 ]5` wCG,taiGɢr~l|0ʷqOWl8i,cJpZK )_hjȃ. CYYUe*#bɓc1 v2vWTWhn;V[7)m{_)%3:t}EA82 N':%r,1;a/OJ!\m 0W/?rEA 5eݝt}Vg-qRlΓ}]ݮB)4mjH;HJ1CSuJݧ6,C,\e'gi)6fգaKk~5V,o.29&$_1(1.s 0%|)CbR"TGj{М%BDs->wp88a?0ݎ3gͭ^Q1,)zL#!лճX-Ӣ;u Y*؋ Pذo->}4IW^'-Xgқ x.,$cd-[[eŀ|Ģ. 3 PJOC!D㲩Ū?ժpV]1}"wMx+)'YJ?Bϧ~g6?OYȥc44N4+t{zLysi-3`w!=].{ gw,l$>S|>.DΌ;M7BIZOdͮf 7F#1 #?ҟ\;Jcy))(JYji; AVFfͦ=s+P0zN2"?^iBD 2˹YM.Îg5=~: =G``6F ~gߣ$`ݚ'OJws'iL4PsP?F㘗~ W0gɧ{ƕJww7%*i w9Mq@ W Z49]Ո恆_^Ƅ~bYMa䛛|Y`R_f tz&ۈr%}`C @cpq+» {:cƄi,K@R5  b endstream endobj 2247 0 obj << /Length 2698 /Filter /FlateDecode >> stream xڭZKs8W(D&Nmjg'%90mאneEh}(͞*eV2< U$ -y-PQSЌ D$f͚^.UP5́Ey;BLbKNSn&5ܿԾoYxxͶVUSf=^\\gRZ0xuY,jLZ8T.bh *"܃%u\' ^b/Fs}!hDۜ~Hm&8{Az}˿vULXv$'w14!-pW}X䂧L<u#"/dCb~ Es"otE.1C{xZi ة)ЁNpy(6YrͰ`6DH[6p1,0&\Y=LՇ.7~:ǀLKO\6 (Kot e& ;nDvD dm8?1sj THR'=ԡ'JB2cԔ`]:e ?S_h, 4@K}H,0xxR |l/vLov+x-$PjYjߴ'-u $!:R`.u *qy@SXk m1T1o,H9tO͝&9 S0t-VLz74ZwD8ܶs:;m X(og jd ,LpҴAh.:eaX3?HjL`c>BK;^ĜAH*@ͺJ6V*'\]>V2Ă#\e$V5k G>xeR X8Qsnu "ޯMS=tOR'd9C^/z;WHU-WQs #Cn(:Oԫj.fX s5 ͪukz~$uA|Cy.1h9jO'z:<3bќHGsO"ޅ P3r= EȻi7T"^uTg_+aσ$0Wr`uIt.~8dxt)Ć"9C}Q VrHxR?wNPA[0a7ar2!Y74<. 0'Dt&y֯aQ1XԂpx%?ƙ ;sdӱ9"W|Զ?jJ8`0aiZhM1 mŪZuUq ϘfyYl}'8I]O"C˻y|E}' Pl.s,. 8EKnL/^hJ ioކ |˸ {q/s endstream endobj 2251 0 obj << /Length 2684 /Filter /FlateDecode >> stream xڭ[K ;dAo)Y%'IN/v,gA&M பـ͢ $]!}whm#}$J"9"RDatTeÿ}ptqDD&+-ѯׄ'nt\Kd>oձ+mvx"*E̕eg'=oO SnuFO U+ܧ϶mvYE:iߖW[`8Rsyl:Ю2moś^B;8$|i,iΉ&0A4":a,Mӟ?ʠc(Qj͞n7o-ߗrRhoIrx!D^m}("+o֑)JCm7; (DDBhrc?4vLч@3fя{HVBujqit'l}vjDPof[xK! Ǽƈjri' e֙ȜÎ][JcGܳ^8حr;ni!)=ZH{þ)d||qO WPc\i Ko7?^0$LD!e4vq 3~6-뎗t$‰hY9j/?O``?05S}Shb9Wq CWTσG̠4<V10 n|պ_e&. l!vv Gx bg1"o~ w  㚐kҕ>T?*Kzy qS$\%Cߊپ>ߑHk+^ehOhXض"O>8.2]+Fv׻o٧h|`abI{}լ짬,QФm=3c,/=c!K"xkE íya@EzHݒz&q/S(S83,R(B.r&AgI20X:,MjgF"ItĦ:fhl}ZDp& =&=ZU-I٠_ami-Z0%H, Ku2ʽoU6 ϰҦ>.8 &'6UH[%;dnhlv2cͱ$ &3'xw˗~ڮ?,`y6'Wb% y@()C@6_ = _8f`ss0ܕ=-`Hun~D:7Dm.R4Yu"1DA~^f7]!"<&FEҲg%T2WZ̅hݕ1ڙIu(0|h@`$% ip_3@zεek@9iN=V@|;wś&*u?ۼuv 7(} ]&.,13Uw`LV>:>L3پddJ =lIA5F7*uNE$JuAI^}Pyж"߂`ytz gEF5%, w &(t˧5v7 4O1gK/"4Ε|uY>r.oAq:5k,4i{gU_=ᓿ=~&pͨ$8ĶZo gQ PyDX^F Am(dϕtΡ"kG nR#Țӆ;ᤎɮZր.ݻqNԶAM1^Hr"iH^ \v0r&qbS]WqZЩSh9nU֮FB@vd O-脢t" P!4c}o5_!  $E4M3 p$h")L{BG o}hh٩R.V;lxv03`stU]ڜueϊۼ`LeM㚞-|k-]5{_Ũ eaZ,U2 [&DBh6Qp@[4q37wӜb~3y> I-RcvG#0\6P4&neof`ar͗0886:xx F 59K`dVYrf'I2O³? rlOM|)wLl[`efk|B/Ejdx\R` ÛNc,)02ba, )QRQIQ >/o*pXH/5A.S=qXn^.Ld&9,ڞz`(74gE0"l<Y#u|c endstream endobj 2255 0 obj << /Length 2852 /Filter /FlateDecode >> stream x[KܶWelL'*ֺ|p|f8,qJiϒ(x"R #FM o}'(MRݭ#I"IV&&,Won8_dM,sqaN u.GO2D}c2t.<#U&[vEx۵5կ͓cHę bpڷYfrWfT`DNQ0,V}& `r&&/28#&4kӦ6fMɻGޕ+s(]}p% k%0Ju%Pp0Dy8ĭt*5X~8,y:i_ߡ;%n6֥r~oDI`!՞P%cPiweZfc&OV:(Y0E:;]j|Ȫ{mb6/5n2/Ki.NRqwYWysWܯo궳OڢӨn֔yƩA|80jg@/We9 ,Yx aAzZAxpgON RSt ELk kRh2ʯRQ Ө!<\ֶe*l0ֶ\LJ5^@rtVP_ͤ Ra݁S ۈnє~)' SYSz)ǯ=}5} =]'Z" àC.uXIzj&nC\6F\_#H0r8FZ4l'|o@H Zu2*s*(bC\>`zL$s!@1cW~&:qH'zuW30? PuٶA8$AsS.I*`L>e=_I7{ cJP"4G12ۂ.\ۢ1e]:Tbi8v:LYc' 1zz hqy_%YS\Iiqh?Zwmw=rԥ6erHHlꨐAS)1nOSіjD@+`#a GnPXH\2*꤀ǂ*x$RMנU"l-|P?F!y0@$aSgx{fk3AJó՞(txx"20#6au47`t@yK'm@Pǧ=A1>]~E˚j"qR|O ~E:"S#vls+)$pk펈nc|YW+O0_ &mSgJS}8OWf_e?&hICǧjCE7tjc-vX'V݊׭G>?9WL M@A 71[aDV&BND,ؘp9LF0qhT8:,e3$'$Z#ғp< Å}h@嗈GEh.^| O%PAřt8 3JC\dĢH0>/Tk8S%o1(qbA Lp[SțW=tzHgw),+%3:NOlin3K endstream endobj 2259 0 obj << /Length 2850 /Filter /FlateDecode >> stream xڽZKϯo7@rVJ\NU+a$f)R&4|I4Ur@_?A$l_HƻlJ&1?[8"#o|/xBʄchFBa D7߫!k39medv}uNK2$3,w`2<9m2yH% qz}fH,L'IB00pӈta>[3!eD^˘)cBst_0ӿ]xOҼ}cc~ۛjlYX70ͮ`Ti+p`Nf}wE][,CXls)1ya+-P3 ι~DɈb9H'[![+8{EN&:CLŖNW&2XE C?֏z@lOTW/|]TyA Eg٣Z[Q~A&nvdS~Q =MkDžLkhW+ i[-wW[ M:A Io= ~of 3|fSftɁp"|?*վ;0 Ezi-ףϻ[D-hl=t`tn&La/fmH !7.9Ϲ |G1rG6Nଫu l픫 bvq?Ōt]X́ YnoƷ }>&~t_-} xe8hpeY1{;_/S7݃ʛ+Cc$I&(Hbqhq{1V^,jbj,0r7ʨcYXJN'yₘUp>x2g1c%'"|qh-έMk2;0;5<D$]EZg@ICvIW#D,3S0hfI֛I2 Vhr qNB(X*@z|ܔIML̐E )%XGO|H̋%G9( ~Ѯ۟``$Ag!#y/_$IH%%R8FĘ(%`tn]9(͞ȑNd93s̘Ea[qsMkMXy}9ƥ }&w+IC6!O %X7XsXF9r0T@uƗC6HLL1kԬ5gk)銤GK6gM? iӦذT:]9zV} H"%a%jCQȞk /gp/"j|(h5ʄ`l^mW+p*'H@*+\ݠJ@_kM}đm @2wS0 ٠k5phAypa`[eii F\<,F `n}S@@>K[画l Рpc 2n~BO?j')5~= m0?"R%˜E asVD_Di~]o_JPòfU P5ʤq MEDg-x9:gP NXKӶzgkwΫ>P pHQB6E^K6\0K1_a\KhI1A W=L@o_\`g dl;rglkzAE5Js+9_(u~pGW7maup 3\*p08>>n,(]HVt:xޠ JN@4^/!%M_U`"MrʀGvVJ똋;e&7$ETRܪQueP;w:hn9TLz^1 @i˶r1l/h1e/q߁3Խ$}) `,9a(浼m%+yuW2X76ySTcۉ^(lCg?]ޘog>[ˎCɖCs_'Y endstream endobj 2204 0 obj << /Type /ObjStm /N 100 /First 920 /Length 1407 /Filter /FlateDecode >> stream xXMo7 /Њ$ȡ |+95rEQ lj;wݞ}")ĹsK 9 `j. H5(&栅7$``m BKr0@(b*yUM>5H:)7G@^*U AqTR͐]MLCNB[M a0J0<p6r)w5W_a|T,z/LH1 pM.\Ws8)C9#^  Xfg)T))R<ɰR=w㙋gӵ;) Efii8Or6{0u`aSsIyKu[}jnd Ws:uC<#ժAU$EHAsr8-ū @Ɋ) L(֠e0/È)`NFaВo,U`?HQ$Ŝ阆N"z])Rf]*3\\lE؟o_  uӧWV"@HfE>\\%D0岀Fݶ! O](F(H6{؏J8{ v{Sۛ?Uؾy}v_7|cTLnoww7o?uk??p%\%|Ц4TX{p %MqqPJœx[ok- A;cyr^cZ9Nψ-x0slY;f [l4ƖTsE^Qƣ gU b]R HvϥܢCx[̭tq+Э@4q,o꺏=}L紐zz`h{ Z(ցhJ\ׁ(RLYׁ8e}]O`=mt~|<#jOgSʣG[[*n5m=JiQ ȸŒ7Y}:ПߠVkӱpr:woW:z)>8r endstream endobj 2264 0 obj << /Length 2882 /Filter /FlateDecode >> stream xڽY[~S U-$O3-;qٲq##Ϲ@^ov|VەZ=ӓplfī4RAZ{xw?y^8SY8M4Ʈ_Bq*MTo5s1$֫ PEQUv83$|U` 3t ڍ<.ڧW=Ƶ቙BEf9 ~U(KN?@+5|͢t7/0J8h j"uih7o;vF[Q@u P" PFGTk I4-W];CۇrO/D D紁̗rm^]^J/= ?+==™4 JS3$ut&̈́* |VrLp5xF;Da0(m+`(oc_[ouaIaU ⏕;LJQ*oyZ@aۂ{N58j˞ly^H{C]#ې~p +>>x@ ^n͌/r{pmQ*sC ?veB.nzt]tW]-kZ+FhfWI v`_es| s\X ݱ&Ix+o+ QoDE@Rst⑿aC⦔,񧩅 )I+wMU5^b73dg#M۷h^iĊ 21IE m%OxwQuAub-/dg9_G(%2;$ ۲Nμ'rb/A_o OB KeLj?E*<2A 7@S8 <='*h3[z9tJ ~_RL`?2<[P+bYDQ20WN !=ڤ)7$CuBPEu Qۚ8!sXd\Q%^KWn1|7_qhԁ`mCIFgr^+y)YXax41(g21>U^y u$*H>k%6@m‚9!XCI9pT֊OjwoùED3p!i7q2+EĀ8`b+9f ~׺a S|jcݱ ~:k , 3$As_ +(tg cr"x|H4DQB7s",慨D]a=D4;vdc?|F$UK }E%q%Xk$䚫*(,vG¨ G6ki(8dwC1(S1kXRBiY\Z e9gJn.[lcdY6m5-m ;] KFEmKF MJiaْ("%kKN: %z#eWtdlkϸ€YFH>{*}˖_ɦN !r!o `^ϴ}a U,>.U@x y Bx ͤ,~Xx gңbӥb@PFv{ z}z!UJyW{ڶ9r<'"lL78ٸD`PJw KڦwrDsl S4_2xpc{yM]elX`<6H۞W^,;*Yw'Hr"! qDJj5Y~lB$92V[hݾ;2 u(:ЎlCNx> stream xڵr6_Ae@ܦv)kfvJ%y g}8`d[-w!OxG> K$˥3ʻ?'<ŋۣwDa!{(`}eq$nkWt[uGgp,X' L9jwW^E=΋5 ȳrg˃ 7s0Q[Ttƞ'f l=>4OǹĀ0 د ;{U7c *14Z-nWR +9[]>[FAOm0]VhX6E,aM\^1 ٸq,'An0o0K|Q;rv P_zf fQ?t/c B%s^+|e/nߨ Q"/ " ߞA̍`ywgx5 |zwC,w'9.xCᖺ.sbRGƮo_; |ՁSp Pp"?@?oQhZ.!]eóiv10 U:DKK>pIJvWv"]k54Nez3pǩPon)?Nx0aUm]rBg"4疂2iExh\crKSQ:{* "O$Hl0Q_t?'kFL^NEi_C_ORCsx`r:0h}4'(@Gkr3R)fs:oV`ʝ:qc<2 weФ(iKE4FI!tjl?Hs[ԅ6&{"ĤD^Y2&8eJƚN֒c?+JI  裣_odLrK)aEvv9*IF厌I\Pcarwel&!˱!JnLP_-5!t7ݮ n-S:8:?[BiR,"91.;_q¤.J88}(,8!6)N8bu`4.*bq5'#QvaE F5l~ޘVSr.|ˏkE'1K,kr䘎mw}1q{ݏ!ʨ+MG&ޏp4JcFX}oә5oD+aJFD+k!jSgO4a'21npfސߐH-]g7)6gDU3֤XJb+VDS`T\)e;{vӶqnm@o ʪR Ŷ'K`mWHs# 2^p endstream endobj 2274 0 obj << /Length 1877 /Filter /FlateDecode >> stream xڽXKs6WHM#Ot'4S;ĵtL&!3|($ۧ.( Cs"bߒˀξ"(9Aq*X;K{we~RpxD"4 #`B9BExlV//' 7uM=2)›)Fu/kˎDSʑ"]^}׫e '>g7W7]"8!7Ԫ]4mC(L/*eGa,mUi6]֬.>O UYu:Ӽ6WOxM78aM볒fMjMiZo#ݰ=gq"G38Ga(aɈ A)<&`<\)c^)3ֆOմ/UڴyZ{gȼ0+:ˣkJkwX"1$ !DεyQ"KEA@Io O/;HNӈd%ſ}jO:v(+N}"$y<a"NМ"tNW&z` \"r}@[!v>̠ (L>Cґ1*@0%IUg MT -L`%Δȁb8 A:>'.]n&?iH3/X+q~tZ sFr[x YW^0e"(=B$|e Hsť膢+F U;W]WZqJ_UK=2 WDB:m sR-Mɷ WjjCa8A!Pqؘ#mSG=8  +i f(|N)f?=^N@)WI ;\5Qb4W8Ej{?n!nljwAJ/6NGn_BHPȓ͑=a,06~pwpÿ~ endstream endobj 2279 0 obj << /Length 1294 /Filter /FlateDecode >> stream xڵWM8ϯkAAl♝Ɏ@lkb>뷅mdHVf׮ફSE!u7411կr"@7c3,tMǓѠ {Ըѡ`~)UgwW!2 :O5R#B5 uεg-=E蛳%S=3Vִ]GXT͎Ar/M [Q=SkHE뢵)r棢7n[P2xwݽKVK%hذVMz iVpcſCd nZ*F$s_A3֌NxF3<_Mg/oϯoޝl Sw7:0t_1Yl]):z͂iJ2ڳ e⢟ taqgܖ@ϝ`ݭnG)Jhg: 80:iORO6U +f]u cQ@hyL@[UA~vKОŰAׄO2e 8\L+"H :u@XqBҘ^0> }&CX\Q,J;JB<&aӜs`[H tf$Vӷӿg hh[mv-*P-\K:4VsEk{ݔJ"EEl/ P4Bar!sBy:pa/tI^2 endstream endobj 2283 0 obj << /Length 1529 /Filter /FlateDecode >> stream xڽXYs6~[ $@wڙ4SҙN2$H줿:![i2}"..V$F$zqp$2L# RYThr+|·ϟgWGL 'd ţ8zK{ !TylZ%L tՏ&>(dcٟ҇)Fʺ . I<mюl?shjX',(ͼOd)˜D/b?0ig& Z@+_E%w8-8;Z RyB pIr8cu Í*jC{?ӵ#b'ɔ,Lj9 mGz-d'A&#ډDB~@`1W{ѥc]|S1 J7p"?д)h KƷh:Z9ulZoJڋ#SP򼍛o;?_on~?eh ,ێk/WAfFf(7Um${U/yaK9qFLI{!9Ùtu&XtEX|",EJWbO+(NO-;1K%:iW/y܇ endstream endobj 2287 0 obj << /Length 1778 /Filter /FlateDecode >> stream xڭXKs6WHX0 MiNp"Uۻ 2iéIH,bYIXџG4pL2٤-_`g{?nytrdJdyAd\'ٜ1.7ݞ¨#UtU˪x1+JRcߗOy0J, d VvveehtAcpb v:/޼{0X%0RH(?@%|^n`)"Di?Rc\l.L[!nWXxm޷块r(Mq"ݮ*We_}bW90ȌC-Bx_.PL`FIU^(TFBpqۈ@IwF\n%dVeO2; \c7P<(XrqVɆ egvX5]T |ȦUtt)3,… U*!iMAD©u[,7W:S$ $Iʌ%V0218Gi4 B-c`bas͢~/&( {{& V15ɌOW1re&5BD5xC8/:4˳ pXy|2! óǎtw_sJ{aM$w`C} 6@'uI)e|`]&+h]+ rS5檀@2b~y<1LS65r9x8[o.6m""@Yʻ֜pl"98 @ٯzGu~ .v3Ho[ʝo] ~*W骩k&ݠA?۾ ~:3QTK4o 4#ҐLMchňq(600!'!En?8z~3S@q rS8w}^284 _r~H9Ò- Vqdq`cS\1rwo^Dx}%&bΨmKXE]я]3_EZgŵj?e[]_!(]XO@\Z1!5R%\X"phBvi>] 9:V 33zÿ' Sܲkd:~¬=cJaqu8xǑ=##Łyu]2|Ԇ^c׸BVRY ll87W}v~׃E~1{΁V1ȁXԾ ކ2o\ ;lɦo 9%_B[]w$'0tY ؚD͸,4>t(H̗Aa$Ftvn`uxFʏp=jbMo4r2j7tlԑ1r\$:̜+ɯu)txxOdq\8+~AxtQId`-z endstream endobj 2291 0 obj << /Length 1397 /Filter /FlateDecode >> stream xڵWYsH~xoC9l9ZVm%yb$QPYI~H`a'N%Os04Y9yu;1G4 $bos8s̗NDaES!1 ܽI tE9Uz!<Ϣe$|>=C0qL2"Fś|"lBbz.>=I_ G$ImV4/3\X?"z6=];7U[TidcJ_Ng/./޾93wGŸ@S0ki&grfwvHVlYYyF}E$ta9ø8@1 PX.@z@-?mZjeUp}= h̨ Y*Z{2cbYR4@v7ᡛ[9j=d UǬG?И3pZf1tJEڹQ|1$M5zncߢU"@⮭]حpgW2fU$8bH!i.7 Ui4_=zmɂv5L0:dc3qѝhFn#󥿨&kZ@+ Z1I}p 805Lt6ȳdb ,ץ8Jj7=p`uJoaJ GJ(`9 b+ ꈚ?IMC+#k՘ʹSnO D ,b΁PUL#ڻ5TW>SSux(eh W/fF]oǚB6^4GؗIX)Řjt^bNs趈#a X['?b'F >U c̠}w]Wj"#^}2Gv}GZhV-+Wuzesewv{=Wgq{VoSz~zpυnEgS qXp;i4cSTU9]߷fmP!jJ8ܰoMB}ɘ)hn @ܤ]q: \H6*zBQ/̮}@fe*?kM\$>Tw^\ߣ#{ l;`3<7F,ebSbM'<ګT$H2m{0 s+cػ(nЀkO1Cu}rJ3ۚ'ueLZI7hwZ3'(&VZ =^^pUTM bmx:F endstream endobj 2295 0 obj << /Length 2227 /Filter /FlateDecode >> stream xvu@v`*8' ّ]MJLO8 RhA@@@DF.-#> G8@T&4jt:|Y÷gTRh$$H(-o7/-|ͳWTq4T9ŇUfs*䔖eN|iR!>Gyz|L 2DLD=bSb߅ؙ3̍\>} &Hdryڬe۪)eNL^-伍Mh6Ƌsi39ݚ#Ǜ֣ӢA{x{:$.#~ڊA);V b">2U0 B@ 5$pqA0182{U11=)x릀J$޶F=lePvJgntwW[Kc f dmU{ ]PC"&x#XjO^2hcHmWH&X!`q[`]jv .'38挩w^_Uӌ0>DVўm-^o eH _ 'sV͝W *aqU;vcc\tx|HȴfQAKŐڻz[.[`x/R 8&2 I wz>  KgE馂L솖a%:D!<[dMW0΋,ܻvU X}Hhҽ=uZ]Ksua T?c ̴ jHNO!Pл)WMŦ&rɵ*J8We*C8uY%OW&8/<`~'.p5=Y}U0엛yu^.kbҁY&;#zx<@ BfR?^,7_Ć5<0?wËbݸKVy]u'#XQyly,0sqWAyu!gJ%x'LeYͷcs?x3jN%)*ԟsC+t׻Ut9 u.\(ͭw?Ioi?4Y;QN}-a ,aFQiYݶ1.)qvr tv {?4 F?晹P͊_lHq+)'gCp?_w4)ORc#?{kE!(auy: h\, endstream endobj 2300 0 obj << /Length 883 /Filter /FlateDecode >> stream xVKo8W(ÇGn6m.P=z8L,)+Q ;Ȯzz'g`N6W&0REE$4IIWj4нjr6W!ᜦJ H,H,UIHVŔs?\(/%nS)l.s-@1fM*e`/g$"єb$0TOw1;N?}6aEc@@$a~Xw`t)[9VJspr ~YEƱCmLٛS9Ujn|{>"yOS&h~wćHk;&zm ESTCpmʮ7lYSޭ; C8̦  +ʦa_B(ϫߋ%<X.>>o:"sѕ) lNoQIVng'@ .nMF S ]wV5 ,z!F1Uq8Xs w0,s6qﶶ7^D^}2uN;-hQyUۡ95YW`Z?OM enI LưN~85֍pEH[VBZ[QxmŬIFK~'wN]f\<3JuA(to&IkmI#ڲ];F,[Yd%T4$O%P2t7doBW,h}vmW?a\4#qWw[7O0,=Uկ&UVĮe~fdY鍘iͧr WMZ 9ǔD endstream endobj 2304 0 obj << /Length 1435 /Filter /FlateDecode >> stream xڭX[wF~^Y9}p\9$QӓIkT }gYXy%9yof͌ 'b ^?R2`x;ORO2DĽ_89qQDߌoߍ' eH4B! R$0_(T_iyŢY9e[nEOU6X8͊Z-T' ѝ^wnElc.pxhlu\^L>m>#0JȈߪ P{_TlD#>x[V0rJ}pBKkMΊ3oe~g QH XeX Bd/suR..Ԁ2^93^#$dԃk8 ] &ܼF_O`2Xw֨bj8ٟRsl҇OܒVyZNu;]U :\ÕS&*[iG_R"A7_N]_ Sc lS¹=##$øsG8}ݦ$NxG} :G\A|ul66U:!i PzgݨG5UFu.UݕGVDN:_!\k&ުyVuw7tC^͸ItTlnl4 `h'#ftS;Z endstream endobj 2308 0 obj << /Length 1265 /Filter /FlateDecode >> stream xWMs6WHuHHzזSMZJg:I4 YIBA],*Tg2CX}}X#ޫOGO9K"S[+w/ ys-^Laē[{?FOBB(zˆ$d1?`Se%N&!Ǹ-ab&#8%#Bf;oI Mى)E(Rݭ.`{=C u:x_gr1ۅ wqɆջ< pד8OoǸMt\Mwbg]WeʾԲjf(l[&!~wM!\ڧM+>C`zP?CU@}r(_YQ6whJkKټX̴*pוx+)KjᛂJ^ UYu(9s@2ê8]l~vsyz{b7dip긟 -T M ,c^`s N 1eTYM1l?3=!{ϐ‚͈ L-ñ(Ei5y,j )$16bhJ=ZSx12AG Z ϭpChy!Xn]x:E=d nHzCc]t*MKOJ}Ԗ,^F:_)H\t -䪗\s8lɸ˯pˇD`WϺZj8 QfM1Bt(P=kա.moCJԠ:++nLFŸy9 @^W7}M|EatJY>/}GJݾ[V+Y7((k:kL}x$ѳ׿9[#\䢾j㏒QG f0 ,Ww XxU l40p49 )[/Kr`aO:2k/)gӵbsEXu5-Z&Qj d# #YT~>? ekkҍw(3ϻui6nKUnjWJ.Na[nί=1NsTLB1[[qmv4y;[!SeoQmHfvlZ>Z{n3MẠ)JBr:j endstream endobj 2312 0 obj << /Length 2202 /Filter /FlateDecode >> stream xYݓ۶Ld2}pϺƾ̤I:CI85E^Hg.Rs,vihկWID2i4=\ NvpWW_ޤ* ɒFHHTDmSz[ݾ{՛/oX:O9$RG~Գ9KqcZXei㏎KSm1oݚ-\6vy39wKCx^euE#<^.s{j3 B9"s<ȇH4M )  w߯Bƒ I)EiΤ ]/k7hVC@vXrhء He \EO$@,!DAf4(@`*YҌd\;˶ HhF\*T=It:h l Aj:@i!ILZʢ[mMaof6ęR"i0o+'iofs-pt&̘`@.4޺M J&Œz!$.*АtOA>Ą"UO@EkW"(TZ9vL/hlEkd|˼zˢ2-7gt^pL8o|]Z^婄9@<y gDE"nAS9)Wl_R o3qXpTP/}x uӼ{h`lahkΡ+VlUqi Ըbm38G[u-k1nwtӚ;­˲h= 0*繍Tv"(BiIKh8\I3>j D4"՚ŋbLB<TDzK7<;- 6¯b8A*_BNө[\ykWl R꼇x"pugOEoP[m<_ rRԡ$’,ɲl\{@j28%^7qBGPAq$@lL"O.#}檳nYÊI1?{f0'[Lʭ,-OjK,5T_ sgf' D*v=?MLFp-CP3EL:5mSE9GjaC|3D E؀!GdA`^0@rbO!C5 cCwxO>VoPHi wx`GtU)ԍA?_#il<#~5MpJ p!J3h*q!ä*{v^"9"} ˇfoiהzlY%h) /m'tL_ʼnT'Om endstream endobj 2316 0 obj << /Length 1732 /Filter /FlateDecode >> stream xXYw8~ϯУ9SZ-)s6I,'B qljC?Wl!/WWW>#Fbڠ2Eӣ y>=H(FJFSR`]Ha{1LF|^̕! u9IA6O{$SC@ޏ^>Q 1ԮBP¸ENFAOiyN1 m-+P@Mj}UUYesmq`akK7y]Eb塍=_9Lo&F;j^UXn`M!-dUY5^etO?b]=}>{';q)<ýXj+`Zfyl`|'Yz AEe{2QQWvWH’ydNKQ b8hePDjYxҲ-(0 W !U`Z /S:zRLYrou Gd0E6)bƆj9 h8|O5|d \.6GCH: s*5!Y{\fP@`Ihs+0IT`JHh5F>`f$6[IZc ;fP祏7iaNY";J0`ȗ !$+#|wF%"jNdc; IcChHr"V҆2L~NT' 7:P  /C.8]ol_Dxa_s0Hӊ--{,&wnC6t+omldc;jF1^Gx_kY5B+MS@8^|o rpOBBn?QLjY 좛, "<}(64`J-k62 >^5@JBAEQ<VrSf nMrBn /> stream xڵYYsF~ׯxî<$[Iv%n*$TH@;_=(^Dh_wHr䇳?paJ&M=b=N2-]ޖսr=OePV2[=LNo5 ݯ)L &&=AX|\ˢY[U[U Cjۦ~,ɔsf^4[c"ߚժla}Zk7 ,` ڦk7>ܩ+F`B 4h4-'c"Q(C CFhGd: 9e!~8Y$7PѮrOx *WHf^%(B.*H7V7uY.!=ں3W4Fԋivq}9,fqqAòn` 8<ߛ/ݭe=_fe f~vh ژbʟbcla/SC6{Q፲y穡kMyٚ 9 f )U$Rܗ-?@bփe \8dqzqA$bnRۀ t q "&_29ab2f#"!>U͒ Qn*}ac85cvG.‘ߣR^+x@3 @?.D9퉚8"Հ y 0"P}tI\D z&$a=WT?7Q*hǤjGj|5yL7I)*2:`(2:b"$Й9TP~dcSTr]l<̀6A0S")nZr^ԁd(2񧇢)}dP9#e oJcU8F# e[N 1<\ot]~782Awk]/uˍRX`QTy!N_E[A R 1ع¼zUW4T8r@^S2*,`F8 BbTٖ~uca8(E\I8G[D&DH ])G`GB^V5 o>`/ x\`{7O!bir}Eȁ" _Nj 3)`0!qxdB#min N N{ .ܵQE²+-@lςv b",A@&kڦ(^(ƿ-xadD-Dylt+\Y]{aa#G-.k[phle$C8uZE4.X0_zONj,bqo~~PJ_e C k:Mr'gLvbCk+ :%5%)~H"SN5KOg;ʳEg }Yywgs Gd?&7CÚ<5 6DsyXO0vm6SFK#k+V}rѻQX[.@u_nbJGC!вOFe橇#=T$]߀SPCQr2ZRXC?Yn!D$VןJ;I@XȾkZD~f`kzmF->vJIx+eح1#9ͮJ&6NZ#TK2a6ɄYGgC hH)0so endstream endobj 2325 0 obj << /Length 2096 /Filter /FlateDecode >> stream xڽXKs6Wȩx`<t*GbyˏՌj+ɁpF,sH-ɉۍA.m'@YXٿhD#ISE]m+;XK#FIF3QʣTP"u7ѯK8חRM?HJ:#eJ%e^hTBa{EGX!AGR#!JHLfV В hN;QѸ) %$ItIƹEe쬃2蟔05jC~'ЕZEljmfη[|*ʮ*ھݾm¾yWm3~0+Jΰ׹ђY&\Hs}ԙt_,ALh&d(z$4:EM4j? V5 bg^c+2D]IpD6CMZ>P6e{_lʡUS㢫RH#SPceKC޹9rkI /u>@ї*;.uY ]ۜ+n=(J/Ve7VV} R-9OK{4r<{( ɲt;0|dJA% [cEiZGb: #h"4Yh4Mt4Cd7\ 3?D*#`ВAKy>lNY4ɘ8IuMK.СX=E<q)h ؟;6!fcmXh,аF]BΝ1EJTBx_(=o8sl{L'&R!h8f`BP1w˪qvm!\1v~C_لƞ& vLaH#-shTZ9ƫM,'_ >N3y;oCҤI*x?_J 9 E,]oI9ѦH&b:rW 它,<ױ],ڮ+msb#bArS;bknǪVl6=w#,bã%<ͮUQ ^FK5(:"[ؙsj ,fTe#0f:)d( +)Moא}J׿(J8J<K!pmprB-y ܷZa&x `4Bh^gJg=I4` 0yf8ꬰaxmze]+Gکmh&}PrzY99`: `4ߑď@2 \ 26 w ofP8և yOgt6sij}饬:pTKdIζFKJ힩z,Lg,V!0y~_ݣ}3Ll[ޭW0<}dOxohD24Ak%‹ٲJJS],ICC.rL= @*C/ Ƙ_ܱpy_I|e"0]"UYS`F!N+T@0R5J莠+pkfKYĪjS8B&]'j>AX#.9ՑsI>v)vy^:i MD;@" sDbY eΠ2lGKV+C2^l3z$s_B N(u3>//oL/s4qhchLAc+p֤bى"XY+Lef;sRn2p꥖_}r~f Eo~748+=>]~6Cj^U Х{ˀw/kȦ ShwLIFև]Lɂ)vT7&%Q vQ5ٖ+S??pPUaT[]О aH8m0H5,O2dͨ`8Y4fsۓk{8O5}WcUG];>甆gKd +w~s!(RN {PN endstream endobj 2329 0 obj << /Length 1138 /Filter /FlateDecode >> stream xVn6}W`1")Rf)6ImE]L;ʒK}YvmIq8<3sPAQBSQVh5vְwjn1:"SX!A`!IKR? rO+?`{9Շ^<ɾ(֓*F,@,41V]yUP1[-`yBxgc641gn=?[Px;aٕcwlz\C4SQaXjl Bx탲UUmC&B$ H(K\GĘ2[؊i]k;vWg5֕fs1f"zŢ!A^]4ΰ2 WTxO tg(^^Bٹ,neRf7yS̴燼t`>4c:&?MPK{|q3s}WZZ=5Ir4sЪkخζuKÐ d]Od E(E&Jc& 6CW( XڠQ 4;TQ,0NXT]~YY[Bw)u`i\ TR7TM4PGr]f(,1^t-79򡦅L﷥)NVΟPIAjkTk׺fLL -F=~'8yX/#ٵk~ +MA}5 wui SPUEk=ɪV(iU.DCMCz _`߮FY1Ρe'^ ߠ4q#',N^|ce-up /:ʲ4Ji kbXn+ۛ6O$)20$hq/ɦZnd^~G3cg  endstream endobj 2333 0 obj << /Length 1175 /Filter /FlateDecode >> stream xWIsFWp {Y&mMjlGJQ Sfi$e\K.Џ}v8 l?l\,uFUnI #q֊-8$;UkVS偿NcKC(QB vrh40\\Χ`xby9GȓZ[?Zu'X U.|'%2iY EͧroWl=bߔTɌ:UkBΩ%h-'Qn9DY5EbOLdŸ/!~. u=8|vO2Oo%W0z{ y -::dc&M&w \ͷ(m]^m]}6t[;oi^(-Ɗb_J[y.GKx`^YoϏ?Oދ2%swUV]7+}',U<Ӭ)4*CEMN|+Jvfq׻ b%&X3꛲x=— |TGOސq NH (%C!IO^X㫿ߥEҡ:SQ4A>@ P dWr£ l䜾Am hˁeFCCDCeQw[ 0S}xT^9vX9=uv|uA9C.!,>4\0y6xdJy -pAዺY-eeY<--6f5e>n?EnhsA'Ȃ{$#(L,YYr#o?ߏT!&`p4ҙ endstream endobj 2337 0 obj << /Length 1492 /Filter /FlateDecode >> stream xXIw6W7a,:v%v-%9$%I %ZLKN,,YKYOOE-J} \FЪRkq,aRc$[s &c\v"m5q/TYVqח:=81YHeY Qq^iqW@O'ReOxCv}U+$tamZ^DE'/<[7eE1*j,NkBd4+tV:@N%6{,O|ٔQ  CʌQդuoD\Y5hS>g PF=zLuMlGŲ]Gf(\) HC-1D:J;cthFEVՍ@vE6-} 9{i9tb/Q؞uyiz qyrRf~uL}B;*M\}Argz5.5*Փʴ}pS.@j߷N(gZcҀ8Ӝ<;jqsYጡj_viS=*y0nF2q|Wi4pHUdH#=/J ~P+P-W bkkO񧐠!By -HQ}OWJn" P44wӧUwǽ $-gv|&knӦTcUxՁ@8xXF;.J=?ʻ og|Ϸ@Q=\~Fd=u!zEJ+|Rm EALZ{1WFnr1 o"Sʏ^ +-^9CyC{3W@_j endstream endobj 2341 0 obj << /Length 1420 /Filter /FlateDecode >> stream xڵW[s6~Y>bN.7iY_4! OܓQRƮf-//o^\/߯^M4e;'+(!rw:, J؈[LZlr5щ^ss\IrB7J$GрA,FRfQMs >^i>%"M36)-~Wtjuh%kЋ O QaߍO4qUKe+3tA+ EwDQHB0bD^4;6c#5T[ (F1DQAE覊l<Z18eۓص|bIdz§ NdK£ BDZ *͠ŇL͏8KbXprؔd& G'(=Q-M^آ 0Tei Mq8ad'޵*!6V2SS!.~hfi eڋXw{z4mMK# T~BֲK|ؕI|Snի*KXOsL+yFmPٰ.2%aiBa=^_V}yzwLb8^?/7f|&g+e\1L0,4{B: ; ϣT儁LҹI>qIL܉|Va}}~](.pה^խzw'Uz /O 3~ 09aŲz,̰7L`b6W::LJ]US!=NO4%߸HK\t)SEnF~3E:d4D-ڭnHLM)ڴēC=&zEeBeZL0%6Zdl*`<=y &aR/t_c> stream xڭXKs6WHM% @LcNIj˝9$$q,>‡w)Rf]Ec~svsޞ}>u'^8R0"#VG6g2p%:焜_ g:o.o.>n>yj1=uV^Hh$|iXq^t"%Uz)K-kH^D84HQ-Vt떳;Ė_^新b%"neBZƉ/"N 4+vUzEĵ7_K\hڸne~\㬨:{=oCgUax:k7m6F79h'Vna-x&&'('FpD;!BjH$>HjR#*Pg=GIaC%ԡڈ =΍5D'p-sMiϛQcPjU I j@ۼ9VPhO/h+C4JqTn'E%=lԇ(Q8ɘSrΉ# þv 26tl ݉jP/mkѻ`DԈ&gg$-K/ެCil> +ȘhVg(М^|А('Y ;³澲P8cA}B"X0\9{  ^8R%q%Fܐ0ٖ]I/Q6b|F'w4Z{<9 )\+ ASbQtچq} o<H4_yewQXZAGNw?#AiϢRipv(jI[83>rX9 2 |. ݓOIa' C;X987 &XeD>bB{ 8˙(C/?C,>'M,v0%KCDӸ Ip;lc endstream endobj 2350 0 obj << /Length 1328 /Filter /FlateDecode >> stream xڽWKo6W(#"R=zMR)PlHLآ4Eұ9y|3 Bɷ0 ]GV 7I-NSط^Š&5//q~~8~ű}9NqUA-޸8Zx;g$TPE@ꀊ|^\n,Ɔ/ڜFvU:iD%4hdN2I0i&f$7:`0ņ`j1E͈Zy_jC2PDeXR=aQ`RQ3ۃNb46TШ XRtve> $%CoxE\Ѓrb`{T]a zeNVũozϛGXr[CK)rs?StgPX͜ܕ-B4tMHn+sa%zTXjU?dC &=@ endstream endobj 2261 0 obj << /Type /ObjStm /N 100 /First 947 /Length 1449 /Filter /FlateDecode >> stream xYn7 W fE"%ȡ |+95rEQ ҿ81ٙN gđ#EjC ,rH*nZC.$V!э )0''wr C`TQ D=[eJ f]b  FqX*RRV$a֪%D F ם FJT)NK5_E^ᬎ8.CFg 1cS,1&0č_$)pN  -DbX ^TR0`K5*TA0I01 „0AZ1r-F5 Jy倕^YR"r$7FfG ,' Q3RȉBf_¾ZН܂h!5Txa5.-A Թlol0Gԗ ԉ؞[vEivI)ʾn]hب7FQ:AӨ 2t wjs( "@ n` | n ^+rh|SP~/$ywqۿ WqA~K@l萐?}v"0 5w"/'Bsr 1'%/OO)xJ_4z_n?ݼ?\oOןU8ow7px̣# E̙yfŖ7VbmSxnd0lOc$񎂌^`x-j2u276}6scgm.8u;WoQJ[6'ImVyl9]xllme8B(ոꙴVEa1ogQ;Y4z6GYr)f)sR[b,CQXJK2T\ybŕU:+747D-iΟ?y+]ήT&zܖ& endstream endobj 2355 0 obj << /Length 2303 /Filter /FlateDecode >> stream xrF ǘ're+'Ij7"$l`0.׷{z@XS'̣Oh?%Q\3(SeyhGߗgϯ8g"ZnTDLT\G)r6\Tl.S<ɢ9+K/fs$`ߗo_e& ˓#$e2'ro7WLD_\G~efH9Swmc_7 oT2rcͺ.}HWwo_9Wʒ܃_X&EWۢ-[ 6m{XGAOB*@Q°Db~V  +{XIFThr9:iNɾBaXC[`T]+Y7xiOwN޶;ZS-~`.H\ؑJdY9K &-8"ږKp:@M5Xx$WEGMsܯ%ڀ4HW ͡vkՓ^2ڿD6M.A9hR3 'aA6=L[*đw}ؔI7Ugtv5 $scy0R?B;8+\$E4p׋廛>"BMZ‹NN~{h{R$<˦д{:yqWC#>MX+%8UZ!W)) ef5U{=ux 'L6e"-bƃӇA_&nraB!4ФtbFWX}s2 =ò_*1XF^60x%g^Mx 6O7j6Q1a̱}0b6mn0o dB̠>jnC2]M 4Ld衡iÀ=)(~'*Й[je]ںeo{K8 i8?w~+YL8t2R%i/[/bۢsA ui.ṇǷQ\zfࠫ up>pӢQZ7ᔧē&7f%FC벛CUlm?"Oʦ}"vGDnH|@}>AGv]y[7v<{;35W,N֧^8<LT\{30DMDOfGM;$iXئ:ݔfsA&D|@{߸$R%~YbF0gYs&ԩV%"~Rlt ].8py;7ĄAh^Iigp H.fwğ5b3?G͙(a>U<̗Z+Mn9yM_ endstream endobj 2359 0 obj << /Length 1451 /Filter /FlateDecode >> stream xˎ6_ ،(Rr$v٤k@ [$}gHJѠ@.h8ޡˋ.[_<1 ^Lda*4,O.kAyDU+g".ku ԉ|'W p ,p8a͝HpR#0$^Ȍ()/XdtYc!sq jzމU"^0xAf1{5cR[xX$#gC#ԱZ7=t Zfׇ?Tgf=n5_}zUHe9+}lRw'oޭavE9x+ucqF֩UP;*UF6`^iUd Ukgp*`d9"d"rjJQcZlU4f\J]=;[M!;,l^TkSXCFW&E??B#>9((gOہzn/F̚VϟƔ(@"9ʻ4Dj ħidw ty&bz~|^4gl.dؽq„ns+ Om -) [#kIU) .oٙ-o!pT㈃$\T̈́"ĈTcc=RQǑI KT#yoA5UZֹMU!62)v0ܸMql۳cUE}a9keYR4@[Y=f &A ØKW# }6-N*58ݲЈxX>qu)Ds^@Tj& 4@ϩ5XJ]4HbSSlVo}NWYTÙF!~d'@>G_Ϩz)q1Jp%w endstream endobj 2363 0 obj << /Length 1769 /Filter /FlateDecode >> stream xڵWK6ϯSexrpdl;Rj7΁CBVBRvo REF?>䐰۫߮hB+uɈɓ&־[-FINs(#]پu/o3ܩ:pNhqyUtUSԭ{7L%eƪڏNɖ7K7~s}sO?=,/u[ ehqppv8w Sرߧu$qh XY_aYeiQb2H] )lHZ%B,|Pc3NE|FRF2ץh w"-vn[1w0DrW!4Tsaiw5{E[E vF:ymSԪSёɥ^{Op"Xn:Q&aČ,錚 >gz;Vsu±P up_رF$vs[HAn 7jn__vr8Ww]o\TxE{t'E8CGC7g懺9}m8ْZ+a% )rF&es˯4`!LZ<;Q!Wv"!%J3t яmwo}.RRdHMvqws_BN&PAklk,,BvLs?'5{ϣnʄWڱ-s$,P >aO[^c|#k̤w-NBSe}:Zwf6Otz`K-oԻu.݃/\fi1coX C]Gnч So]sQHݥ%!e.ċn8rmZE6$V:gC`,]Mr=1v3r>,0/77MTij.[D,h01bb\.;I_mf}V͙IcGh$Pgߜ&XpLC[/0PR0[ ه-\{a&q?`j]<,O=q1 C}S#}`[{pv^vf8ADŽ^~ 'V5}nE!*TcFWh33Sbbg/ru2hCYJ{ErtV4 qL)2 endstream endobj 2367 0 obj << /Length 3085 /Filter /FlateDecode >> stream x[w|1EzHR˱ڴM|(HM*F{gv \8~y `;3;hrHBˌiA3'uܜ³g_]}~LBI&7f$F$ɏ\٢W/>? ?`ڌм%T|v9OnNg fbYm᳇,Leܺ76j}*}ض4ۢq$Ͽn,.MYmB+;?MSITL(gRNy̬ږ8<pq]M=+6fYՍL˿7ec |Ig͵{ 9 /޺1hj["v[]n$俩 (~7͆b3:Npǖ >\VN`tGL:4[G`_@,~" :tmrllc"a fwY|f)]vjpQ[;MEM\٢.`+W7ujMZqq R1q֋.<|v.)Dܑ3Sv>g߸w5q/JD&=”d$Q>̧3:G"2˸…[ ,ckyJ1G6h&lW+cLK_ү&e2&LK <$:=QQYs` ¹z"`a-%c1]p0e^,b1s,2TZ7dF%U (Hij[=622T-i-޳i&LL,Qd>I!ēLph$UL| 19GHz DҏI$@&<=5ߑQGRcdqغ4v],vn86є.-@~5-Jgq#%bvNmE q1Tu_nTs0T;\yjLbj~j,õ GGvF@b}Qz͐7ѮK/A b Es'TV޵8hnIB*\׻TZ8TE-<Ec[+Mq$v4&M{}їHA pwԾJN%er٢CKSA)>}6&"(Iqfp SZsJg%b}2OoĺT5A@}nd @iG 98.T!HyE1Ӂh_L8 XyQЀAX Dڣ{4qp#L*ocÎ{I!ry=׳NTާ0hP ,*~LD0?H~49(scy{G?}hYԙbow2e$||C$>g(&1>mmLXpuywj??t1Ȱ?F ,΍΍PxOEɜEwM{RZV-hRi%P烥Uk\ZzB 6yUUJ'Dy{wDF2?p5Gع#J Xٱrw㬜; ܆-kM J|~wno_\xW[/B"|] %nQuF^/A>/i'+FCܹQk}SooMthfPxp;U.8 ϔKLupfav@e jW/ w}^H%!,>l iƟws%nOmýjה7k扽({4cd\> stream xVMs8Wp* !qYgk&Yl0dAlǞleb}n~dl-l}9, Z(-b|Y÷'dt1c={1bbZIn}ȾsWtt%7'/f!>J"(rBؗ<35eEW+.xe=o|Gq]4"&ROCoMߍOr봫(< ='ԗ^O.~F$:4!/ISFa{B8T`L6܆($d8|:9t(W}WBȑFYgk;^m3-7d *7jC9nHc{Q@"DHfne- em? #/麝IOǴT.^D)@g+=(PFç2_&?~) [70 {ZzCw^+']Vodiz)}~ #ޚ2JJh`KJ ZPbU/<+}|`:UYԗZK"%80FqՂZ$b,Ck+c`dUrޞ7&0*b{ P6̉|Jdv\]/L~5pZW(bXz3^A~ u<ئУ(¢kճ\kn3ql"86űϢ3-y C/ޢ@R٣C-+` E Zəb)[0 TzoJys zCYk[zW(2(չ8d~A͑@6QhYԝP-H  W*)*,l8 J=*9y-23Ʃ0F]W_=L90W3':hrpVOԖK%$F-}7NHJ OnXu;tp>jvo /˟ַ!Jg4L^t<Q ّ po0" endstream endobj 2376 0 obj << /Length 1009 /Filter /FlateDecode >> stream xV[6~fV"oNi[vf'̓jd/] #mpi6/9ӹ}&"ֻџ#laGRYѯe}q}nf>F!a|+`qYqb}ӽ3o̲ߩUڳuwqZiQ*A"Χ=8[3&p`KuSg4BUQ}ݖjmf2Yv:.nffLE1iMx~xc*L  s}"U@h{Rz#RZ] ثRB%JrvA.bDY4O{ {pbZQ漫nrtB3lQb@0,YLY$ q, XZNGP ([>6YKcZsRA$towe- zeqU>lt XNVu:lLi69xMcJ<0 ZȃZ[壏9@A Z᥹[PfVCFܳsA"-(A-Ѷ.Wȳ4Sz&`c74#fTO}Mɵn<,Ym[ 52 1B "vp4ߺ zTY@rJt#Z DzGf-n$nȧ&+X7WFWq3f͉S7gǰb " rjkDu endstream endobj 2380 0 obj << /Length 1573 /Filter /FlateDecode >> stream xXKs6WHMM&vtꤒҙL"ѲZJ()})6ȶ^z1 j/,vϜL '/>1ˆF+9rry2^z2<:93@88^#Fd8!o' KAuϘiI-'gw K5h Nj4q/UB%sѾ>Q9]G_"/W¯>GE.>/3f\ӼwS)dm]ѴW̝Y ? Wއ秃gWO&aea(ˬuUYHVW{ɋѺ 񢇶=z<˷?d:Vޮ2]$)j &Id-K%feQL!M a  N91#RI3%H1"P<߈0>G@֭be ǔ݊p:;x?;+Yl~al}QcO~iTZ 5"ͨ΂"%4uMȘk $1J*&bdቪN@v't5s7]R?ai ln?by<|= O89q4xk^ѻLGKThAKs2]иМ P+f4XJu 2./AVoLE֗)0RZcQFM=8k[U( wZ)7G/pwOTW޸.}(S#2qHeLPk]'zy)ՂRmRk3Ѧe)s YEŸ}pV!jR0Yq:ͨ2!EKY"3 5 ^n*%:ql=ۤ-uSuDm ֳ-5UhO)7ՙcY26|W ! "8:*d)O* ƻ5XqgyxcnS'>\L&2c"@r)k*г䩣4N1>^t(>o[[sz.ǫ٢+ tBH`$:Zϫë%WKZ_=6*Im햻ٶPxl;N١h#h?hOxd Hx?lqw('^z *zWyLޕ 57c6- #tGxTNhP7wX dp#0ۘ*7Xw_6]-k N[~DjTr6^bK/?tԥYwށDW4)D Rq A$\^Wkd&bM3  i^V!Ķ803\t3}X`&X8`&xe Ɠ\Ͱn|j'o1j4 Zk8:PNjr7&Q6Fg, endstream endobj 2384 0 obj << /Length 1600 /Filter /FlateDecode >> stream xڽXKs6WRS 3ȮWk)$9"dqʇG.P"e(qi. ,w]`]xw.O>`{"Ћ8AQ[3w0wɓ(F1\{za$"-S|8}yه Ppvjfco7J?pV fxUEUtFSTy<WkkF?_/Suc횬3ngGUun d\]H`ϫk>j|sW=XPBPG Hz: Bm[UܪڼRyn_0nkK%,(&!coU=*<(ֻ_W=BP,b$ %}=&\^ i,^)~)x"1; Xz\"E;?.I*lۺڬT&p:($+,w[Ti=WC6M׭+>C7ڥ*Ud~bڬPAT41ZCBYðp}MbRzg.p1$&^sD9ZbԐSVZ5N;QG]XI<4 dQ`ʙ<8$;///ћK /{}.A֘UU6mݭz0Sk:$H4W<@-`Bb_%+1 lDѮNΥ~cDvᴍ/h*7 yUpp&tp~:ӷ^UiGH_'e{*\lHB[tf>֌qclobn1u/:z@SL 1`LG #~eS,_ qBa:!FtHCCk̀ک XMmf endstream endobj 2388 0 obj << /Length 2251 /Filter /FlateDecode >> stream xYKs6WHUE@NU$kk7@KŬD:$5C׷ R ="`./g<.4$y&X^$Kn_Ń_VgM"8+x!mbebg:ϒ&!woyi2d)-ENvmٻn2[G},mMUhP;XZm MS7 GU/M{w&GQݺܕ-[wUWk uvМ9\U~9e\&|.whqmZ/poeOORCۺI{bjWU7J +D:44bEoA-ޗ-V`-͌omޖ@X"M`8p8?{㉽`z *Ǡkp%rHB4Yb:O|&-wodz߂`X1+dIaNΑ#rATyi7Q ƥ0=GY6;ȅ4Ill?,,5?#1KQdy%E2 Q[ Od$M2z!1Rǜ9)qf+^d`MoifTAWS`p|і5i6(ҽC`tσ #V8?Y>l(]]UY;>]j k )b0Pu:1_(řu]?|n}X`RÒ,57^s- #ɤ2͌dmc93j1#yZ*1"48ruk([ח׫ok؃:x[iؽj50[Kl[J޼~$jX']suOeOhݴ F𣘗olݻw.0"g+8t Z.g?ē ̃LAI$knH@dPra76Nܶ> fVO ٴ7}/;.-J'' ? ^*Uä. !y5`W*TBfph82[O|/%ڎu_;9T}MԮ["P!1#rjE6^lcZ!.X.rS.>ӣ8Z/"YLD"Nh-cҫ@i D;l bU*&TKΠ`.BO6/-2!-le'%CyoF+LJ+٤ vP4#y>&<5]s2'u,81?kVB'mD6!b>`b#fB-3܂*o2qoDǽ= {aW l b&sd2cBś8VxSNU~'MDhT`!E3-'CHyL^ 9| ||8J# Gsj*H+Kֵ.xz30cgŌprrf pې'Ed#HUz4"Ux dSWN(%.Ԩ5( Z'?v[fw;Gp}"YsP 9JG`Jeo }pΤ=3m? F=ޟH2 -K9x2,s =^aFXjLrN&?ć2[*oL^-Ps >vO\#~(0'ATFhbۙ˩~Q3ZOKH'B~*|AߺI%.ߺe[7u{S G\w 8Cdg^w;h醿+ g endstream endobj 2392 0 obj << /Length 1534 /Filter /FlateDecode >> stream xڽWKSH+tkмU@BXlVxR2䐓zfz=w׃ȋ<&rJou7ٛ'W˃s=BL-W^BEH,~tB+i,`?E"Z4C[Y ,.2|{t,j$3J..gYMӳcܣ󘌥0Pp5bFR7ܴЫ# &_/{Ҫ)\(=%,<{T۩Llq:Z^|<6wh(4 ,5 zea߯!lhyٽǐ3wHPjМKAē~ܼ.R֝Y9αת + c9*FWvU}{ރlײUmjVqk5\ J+{g7_O֏}Sb'#2[!n )k̷ Y]Z5I+h1*y ssH_iqqjrY ;;>Ȫ a4Q䝥tmĴl07y:d6Ceݯemlo$"d<ݏ#h5܌!f~'{$RiBܥoN g a8L[HbbFת6_SdD߂akvu|p7({+ivBYH#yf_M*a ["Xyev:UzWh)anl*e-۟"ft4"1^A4CnSE1L6oh Lut{üM36&.('ab0ڕtn˶2+֯U7dM%[76kBey=cm~:[G<ɜ4ͺy)E"9Νdo_B1ZGJmh Y3geFB14o26LҶ*{ZPշNU)4]<]O3C8Z]A <̘EX.𰛋], @pcCS2NF3B^;lSȹݍp\bqv#}F³IgK@XT,BS>~t\[rFLf;*T`{>M<KTUΤWU?VЮ˫ч%| 5Kd~ BV^4|^/6ۮU}^BID$5tB_m廢վ@&'Al=O'?+-DY:\#rhfYHؽדhce!h %*\&[Г4%$ u:E"({3rB$0T^Yţ71=i4" %N"f`L)[i!aͫF?m@m #<6q4~q0qܣd03H/ endstream endobj 2396 0 obj << /Length 1058 /Filter /FlateDecode >> stream xWQs8~#LcEB;o NfO@3B8S͵/Jv?Fh(=" rIb"P>,wo|ID IHQ#!Gq>;}"E?J窮kIYf~pVnKu%sܯ|*a* wiI왪IGSpӺpVMGcFCIƔa6U6t-!$cpBCa[TAcbOn>ywOfwu> a$OPKU*%uZ!ZT'UKWHUQMI |0J<ād(]>%("=^k3EWGsoU(~`a B5@XxQT($!A=U\wOSCKsSWՕcቡFj]wmQ)[Ⱥ=cC 7&ћqt`]g뤨zzc^dy+0">[0@t]! 1z;)Bх5U힙EuVTZ*  Я'>>8ppQ&WIdERżҶ ޵uN2JrȬik+ilvZgbO_.`(h'6.©[U`L'r^?uLy4mVba_B0}!/$]n^C;_!EN}JrlIϞkemOH{t쵧٨0o&U~PG pbƛw7nBCƄuk9 ch'0 Ӭd rmy{Y׃BjzehtѴa9R1]Rw|>9VfRIa{~ΒK9~h <A9> stream xڭY[sۺ~SKHCNNj)\yLQ6)I}R(j Ebv$2!ɛ3DdQ% Yٿ`d co={-xBʄ&Q4Q #y2[$ :BE,zMXz w磉C7)2ck-Q3bVɄQĩt\^._4K_N/I_$C-) I4Oz)k0K l6(6=L0/Z/VyY=S2s7@B8nMXK-PhUi?OXܴN.8NG'tP`+_RIzE kĝ_N!齞19$!i >Y1" O(̉U@80g 8 Ĩ7 lR D vbƢQ@ "Fz/Yq؉1}H{ʨs΅ $I Q)b(=NM\0I)B5qXn&4O] bh >L0!LBR@˧Odo@6888Axb2J=UF ;iKѰJTg3$1$J d:,`L*!P !CC iBÁحx[4Et+ih bA9)8Pӣt,CX'B ʶ%C',@,lԦݸWM9"iU6u|s17q:e;oMKCPW҉3g]z ?i tS]OIˣ$Gb)HU1( G wVv?pvb׫CF) VySz+K4EQϻMc,H Yơ}a?DC&-*`dY2%l7J/l  3x;Cjf Zd5c|-?X*0/@MgBqxaαǡ0B3S2f1DTRD E8dGu xkƂ β8|üߢGR IM.Hk;iq"T,rCȠ7$vW^>UQ 7 0y]mW0`sǨyj16̓Z8vRh ܋R BZ-=HGc)`#:lP '|H?};U8j {RGZ·k[M9qOۢ o?a6ܺ`Fq !]6 74֘la6>g22HPHhkT vƛus`LG~B6嶃Bh M'({ [XX8/Iy-ܐ'JE:IK7F -plE$0/yU݂R53@y9u }56닏wW/w92vo/zikyIrBkSgj2N}m^/;%7 {X>б{5:D// eo^ 1_` wO A=m_Ǿ9특^n9-]xy?2.w1Kpjb#WFD|  ,za݇\G#җ/yhLz\P$[ ;-v7Yun%0w%k|=O|[]ϡmǗM\]חKHpٻ=4dC4K"{4c͊s\ endstream endobj 2406 0 obj << /Length 1315 /Filter /FlateDecode >> stream xڽWKs6W(M, >rKU:[KL'́&!#>TDt&ovͬbտWԢk#~`)inO,\f1J0k!%ZMk[_Fu4pXOdSER8-{ZVihQY8-B*hZ\+fzhˏ`ڄD8'<60߾YOaՐAѩ0O&I.Wǘ;d"wHu ʦ~ *MiwTZs Z] a):n资 d oUc$ :w"DBwp./<=,4nC&E]rʀQK:0)\[/F՗ԊAݕ[Y m Z DE<C$۱ b{h͢lL=Lsz9k6{my9}{^^?^AI`90|.^mJNS3㷌?-c:>?ØK} \v1ZP-iItT(RXT5G.;Jw&fˢJk-|F:atAK4ÎDzLuN;4ӃT6c37QԦ|So/G2B樱%W6*甬 j*4F ^ }cU﫿#,WL3 Z,Y'E3`ԂY̪+:oqoƕ3WB<8$+jnkkAgu_ p{vH؂JQ<-Q* mתE6 aV&x=J(xM8@Ee:`huy0w~ϥ !T{ =äH&6`sGg @wz2vLXR~;pA5Vc BALh>]5j߲RnPC}'-'u| E ?*} endstream endobj 2410 0 obj << /Length 1149 /Filter /FlateDecode >> stream xVKs6WHNDO>|sٕ;]IL'Ɂ - $$> VJ:D緻G Qtu ADb( jZV2E E` 4_l<;?ͯ_(^tWSE(` K*U~ jQ6vN/pW- ޻b:OnoάwuG$RZ5iZ?!Rm^/f)iRWcݖiTGe^A<]ZGtBUPY97hszZL>c)sAQM_2/J}\@]g~ ΋ zZ񮂬Rx{cUVO!ރ*)ĒOǿOfPDd6q\7*gK?޹)ӍY~hu@nBLE~U=Z٨X\ǡ9.םNn秷s2(Χǀ s@zg6TE qJw0F.[wA\n3ף\wjs`y.^9SWoIe]մvC MJLfW2(`89d%]ze7iJ&묊֏ n:s{[նʭkuy>7u[,Wn6/&"-2hq^"`;?ffCfBfnlʽ`?fex"DX$Q䮯PSv pc+'0?=KA/pA!#p$DC8[HF@`A 2a`Nr}Z/qʗz&bq>eJ 5&|,pSn%{F0P@Bt r~0 #+|cL< Dٰ j#C J?I@c`aɋ Ca1C1 m \GQ#$&m|uOY5Gq=AL$L;G@(LV endstream endobj 2414 0 obj << /Length 1390 /Filter /FlateDecode >> stream xڽWKs6WḦ́4|'ב$t(0$8.dLw-HGg_ΈG<󐥉4rO oy|YOίQ$|iK#,[1 8FUB6O (q>³Oְ_CBN~9, nt>=7v$Jfn0J ;݋iĵ[^ߐ؈kqWh)\n/mh[Q9A~m -NƢoHTMG^UYH8ͳZdY԰hꐈ]Y4L**×f 3rjs"]!_mWt%Q?iZeS}5UK|dTs~%Gfq^LgwosWrm8b Ey{9&*^`|%Z-=^W 2_ɏP sjE%qd"bh sl:ecQ#R4B#825@!$+Pz!;s .*9˾)]o$k٢t*HKòYXnf5QNFbVMkt@0<ŗL)E,JXOEk{~{nWzM khvo7BR8}:e#[3[PKCJ,×%3~Ů)hgĿ(7}[8#:+Mr J9 endstream endobj 2418 0 obj << /Length 1632 /Filter /FlateDecode >> stream xڭXKs6Wԑ&$'AӃةZJf$d&|d.P"m:;9H|`łY;ysv#BN07wAԙI0wKD"N=BU^fQu1)&bS<%:z ZY;D(<4f/gӀM4IE IQD|,b$9=o.d]&kw.cv5/d}ވ 3yS[hY̢$˫wp`r5rr|})Dh|A\ xdl*s_۪ͫ)ڼMr7VUߺW[.:τFL|*'l5.,sFb]aFML{=FId㢨IJEew1t6U{Mg6ڪ&ȇFUI&"O⺵ H04faEVꮍUgM4jh4$/*67Q/!|n&p=@FBnɋ\؅9mj"Sy*TCTCq &aM?x{}:;><2hLRphp&5cM]}7::'q1HİߚPZSWFDĭ Ba1pKC~fb-n_c5Ű/D@ Ƒdx|_9[SNz7 c67ȢDބ>r`gM߯GqUulGXvZI9  r3xfm C] I--gvJ^k(m[NGE#bhN|% BYFzۊf!(RgS$ Aaئ,;g q2J,c1cؿS'XCX=vc:D?P;#5#Nx"|}~#0,8R PU WC`UJi,f?c1`^MyLDRGhw[h1ԘBhݹ`?,ƠO =N8'Mn̼W]Zۙ.q||27ZVq/jUefnEUk_L5m,N-oS۷b7][7tT~uJ{Y{woo7jӥfeD\fh[{)egO%s*նng?ME]I|{p u6|U{|p7ԡИS6b3:܅}PtHާR/g|g|?;x;@`8Qg*Y+W5w'UwQܥ{7)IiSekV4$ݖ)bVOm5?"٧GeuG9@ò endstream endobj 2422 0 obj << /Length 2024 /Filter /FlateDecode >> stream xY[4~_,$F˗e--l(t3L˃(!]st-l ÓeI>;W#`ۋw(@XH8H#Y xV6/b`f(| C4BF|Ň6 [qkwz+;ԃf[vfrs57sme[.DSQvա(뇪䗿_,I04dQE tWme7|{~ U .2BUQ Qj#~[QF+ɺ2_mQS o]Yq1qjDK)pqZJ-d _]9@x-eUUQ=S:L 96X08ꙣ)>)RL|-rjMf4VS>vPN⣬tboyi9֊\싲(7j+^Me[ Wa|ƁˢUGqE~2ZV䖖levzNrBP,CeJ<"2r'pNWj~yVrgo f,QiA`'-Bj|ߟtw"BWXpx樞;Q%kiw= N #yok7G·;G&b"a(Ɗֵ91d20+Y.p!,m{7N+|k?#/xXHj%7oi~+IA&ITooBiÏ3EaBI@d 7q NiMIL+iHrR7qjz<9BJfl(18 ovy`DXIb 3R4"LŒf[#UN60%  0h,\?P,$J]n1c9b16n9ZN,"Ѩ7E11Rz)q_ih|dm=C ʻJRjϜPv>x% `%/Uɧ+Rj*Үj]>y2q2~UaUu&S5Bp#f]vсEt=U'A?.gÓ 4Maꬳ%Q{o/‡i$+OA?3P؃;oIʘ( tw$"ppIls''ҫv8bRiT]R#w$M^ɨ}<jt%vYi1l4,ַrf-cKJvY[y`cnXN6O>GP6m{+ y@9_?Տw7WS }|LpkS6ώ D{s/j@t}޺~.W?ς^Pxe\Rqjc qO80x>xw!8HHA`x; V0 XTt6탈c ~߼Jj(bh1q endstream endobj 2427 0 obj << /Length 1750 /Filter /FlateDecode >> stream xXKs6WH%cMQKL&Ɂ H*IQ2+'"b\,xy4$?9M>|~ V ' h?I&Jm(}`MrH27EdţͥZeЦL%=gp# Xk72xU&]P oqċ2jyU޸a9s_dFT٤*/lڜ ^C{/.z>s8=??{7>{mzr<&%i SyN?:\/kS qU?zJj U.w%\= uu-AP+'9҇J\(^L&hYPpfuZ%ff $i-`^D_,.GH,\^o#k<GTT8O@,+gN0l?- bs 0D7QβY15-Y=Ue$?}\"ig>&х Q(~8EGH$:6y8Hm 䗑KCtxd 4hA&K/!"\OE8%DEE̝qZp amtЏ/ӆx+!; beXCKnP5>kT u6'>&x 8wdK OPgQNJT AL`|L) TՒ#Y#(\l-/'Z wV2BTK "ADsQ{WkPJEߵz }ظ6$-QRB>k4.=U0^wfKEMA`oī vi}C$fV2񗝄ivD{ߌ$"ږy: 'e\k8r> :BX8`հIM#ʪEY ԕRV䨱’AN.,^44Ɓ^ƬtS]oiY (E ᬡsUӎ!F@a׹yӋqV/;LY]6 8.tvи$[e(3NQoo *V;涻("{~yÈdhFÑ1Nm1"Ywih}D[=fۧ@d[:q6ӕo?1Xl봚ݐSmWhvf%hlw*ͪmaz9ֻѽ޻OnV}p3^|{>~+ӾLSy*V^yXzψXԄZ& -@=9*f6X:ڭ0/cM]čWKLX`Ⱥ(X6}K[AŪ)D* aPBqN,3Ƶ Q ֖iUE|o$6iT1 DmZxǸ‘K*dEu/~ÑY&0U~!)$hψ"SjQ3i7]| endstream endobj 2431 0 obj << /Length 1066 /Filter /FlateDecode >> stream xWo6~_Gy {\;s%>2 %OQdQ#@{ ExwǏ EkDA@b< /k{8J(Ł +R` .{Ga]Jt:/Q1t"";䱶iїCWU@?7SCre,6̧C;WC;ɥ,G^$VL!Q̙v")EV:,~qTϫo;w{?,&WvWl3MsAgC-}~s5k^׳uY,]QDEƮ"v𘤣86H-RkbM)Dz†tl_K(RRtaʎu5R:튔Dq6'f ckƹ䥭B s;er`FQdTŽ Z:t @jg0n4_օ-ZEzwX?Zq}ލ׻xYhF=ñ1ۧVIZο!Mc 9|qKjgYLҨ]<8*GI,N*x[Wld9oK{808"o' MnR{SGϵ6*m2dUJj+UtKt(|5QE2|6y~&>/>€X+RdI%&n8&5 k}zXF}\$}| m;A9ug+C<IJ-+]Fum;$e}۰R/5Ҟ$*YT S0r2xZU )AhSwK=A&JQ+ =e} )W endstream endobj 2435 0 obj << /Length 1319 /Filter /FlateDecode >> stream xڽVQs8~ϯ" 8Nܴ} Biaio%ml+vECvæ 8rd(,~?+w}4Z_!MbԉX:(bOeJT ۖiAϘv~cmb%ޗoWIxJEE,Z7+/ K&مt*"0)D"{R=(ٵy؀`7(`‏[gvsfKi^r7 &1Ī_JAkaTtR榕G^~HM*iaTyJ岲k&o&f~pk$kjj!Ao\jZbDZ>PhHw(5`G1̃S9pfw>Fä'KJk' ;:e]vW ;e՟]w7;8iE!0r3U! z22AY}aq3"cz{3_jh\^+a=%VyaEq`%޽l=KC^} ֡*7U:a P8si{WH#4mz=i5t14<?N6u1Z6j(WIL9 ۆKËoxM`W奸n>}\~\a{ű{y~{P"taq=5NJVdÕG/4:&G}0[CYYmzR Ŧay鲢E#7$>WRcy&O^]f?iReye{Z Nsih Am WiD/#Ңك3K@1fpd)- D㠮E1z,k$8^W_y~TI:Hʨ?k:YQ2ylC,x۩( H^@[aV?C`IO̦+?p]21\W|S1e:({(G0ܨ|IȸnJBA6EIOh˿O endstream endobj 2439 0 obj << /Length 2753 /Filter /FlateDecode >> stream x[Y۶~_%>}H3Nc8]CKmPԸH@:ǔxqqH> ߎp D 4'HGAG7zv( E0g|u)4dMʋ<2Er9 $"ɦP:,]+HֆNOl7ټL +II?c-WؒJ BX+c5!aOCA&O'7@0E=)Z[*x@Duehq&kv;QO<4=VXp$0ݝ"-'N["zRXX(K$DФ^h Գ[v05OTpߴh7/ 9n $yWG?|8dIWG2[c^LW,yGV7(#,^,ȣP"d(ŅYcž%Qr~G⠪b>481 plFJ gKh+|FH@"$iafm6(UڢuG#4$.#5YoX0ň)k‹>%^,!PRS|IY~aL IƃKLNF.NTBo>$yk jJW6dW4}uݝhFqWQC}/Cwnf$bTF}1*O^gmk((Tfk@՗ UC" Ut7TYTՉj.e&a>k)кA`u!+OIx0rCNhvfc\5E~Yvklr/fAo髗.tvͿ {hB"d=b~Iѥ=#Sofh"l޷~n10? `Rod &~e#+g$ 7-t<Y1vCh{:6~tAg>}yvƞp~cAZQ]o4K ֕Ȟ~<~"m6n,f]XOz۳GޞГS&߼@kvsm$I1Ӭt΋|垲< dךNʭ1I'ESUZsvfUe='dd氻x f4ٺ\_W?^f! }Kd30io۟_8{21~v$S7S2eǼsK1n)^;+]6BuA[r'PZۑ_x˨mV)L6ayEӐc5%ñ6q˥r=I Q")tF /6/VU<"(!zjd+4 /te endstream endobj 2352 0 obj << /Type /ObjStm /N 100 /First 951 /Length 1505 /Filter /FlateDecode >> stream xYMo7 /)J#6ȭ@6!HE.H}vb*3)PQ',dJ`A/! ).XBMqT$AKACEq `> D1yAQr Ur * Vʁ@ZVjY)([ :~$&ڼ| Ln(p!\ P(;G4U(jr V\L\I!u_C802)^U w@K ЪeԊAbt7jB"v#h2jzF 9KDzUd愢gs@Ǽ!hQ(dRא7$og9X J![$wK0FUIbH>BWa0гDh)H 29.dG`F"9ɿ$F#VS]]noU?sr#J>$ܕ݆;4//瀆7vgw7߿=|K#c/?~ͧ*"<&4X}y#>IuԿjUXY>wO,"bbHF ܏܂3ӈ} \<<&g+et;iI5\` "d% Iko)|DjK:f D!#tuY Odf"ic*:EE4\0I.npEel6\LPw [~j֔fX_ǚ#4a˒xYE\|6p?pcUÝ;-"gTk"a=i6CZNvb` -fvT-OKjhB*3Sff*1-'ɗ?xgkzc;.EWL`sܻG] ę]i[!H[xn ,'kr,Cf鞤=L6bu`>gD 3I#u)RCV޾cuyP(mᮝpOϹyEzтΟb=1;fJ [=!K"ش ne;nډv.%E:ɏ[0YHNމw"5(vUnSҵU%Džu+Vo)'Id0'Mތ.ЉfxyIԻ(|[bn?N.8~sTH'KU`Pz `}Lƃd,.mA-b endstream endobj 2443 0 obj << /Length 1336 /Filter /FlateDecode >> stream xXMs6Wj*$wzH)8%gMs%ʑ-E%R9&xx 슢KDћ{$L%H AE{Kpo/)NbHqh8A"݉)e2LN[3Sx'JFInޟӃN, qKXs  hxD 6P$ʩ>:ͣށ]to6Q$VLjl(sHE,n'kzobAoޔ,dbWG'wCxRGg/ b',!b tk 3`EYRs!8q\""޼Di0As7 83BVNl ecE$kbwzRr8-!0^"%Fc:(j}6yJ86B!@c&e/xҢj&4L;zؾɞXs (ll%8V!^D-Sk<ߛLVAs A}p"W OU_'f6>FY3 1F"d 'Bq#AEI'T\p HpP/XB*S p|S*M.P KC7Ed.E%k*Z*W `Pj.zP8:ףٟPz +_[2B|(m[v4vl͏͏ 4?)Oj}McJɪ^um{AL> stream xڽVKs6WHNE.顖%NI-%3$$ΈʇbwЩ3"}|X'N6#FF1Y~Ó |Z.fi bMBAB(D>Y''!s=8U;3xSn oMsSXnG!(=zs29v1Ɍ@WTj8 8^9Ym'&jiwMe0PԲ'nzn*ISR+_Ejn3h](+Y<1(<:3}04db4zZAǃ+5EpC3|^ &0&\d׎֧I- ?!r//T endstream endobj 2453 0 obj << /Length 1395 /Filter /FlateDecode >> stream xڭWKs6WԑZ;=8:%IrI„Y.R"e*J2?@7,;V87*j$ݾX]_\.=ؚ{m#A:6M+&ƶ7I):xKvj:7y<**y2z55=V2G o.o`d+k0ܹ6vw^<.3fq>zr0i&kM~Z2<]aQdZθ34Ng,M`SZtF(6δ"vwI.gY<%:8}Oǵh̋8'7Y_Q`#?azalCicH+ ̒UM-g^z'6EzܺwV,"~ܐ*/8Za"hVH1z!M'TFEQŌIC㳬HPjpD'xʪT$}@$r'H:-ܢu@; Qx㒦t_(]ʶY e9xL? 6,-9 ?c VX~AOG%cJEdV ^Џ Й@Am5YɢUVE!ؿG۳ ,uXԛ*1#Z.Muc_󙨊DC9,%OcS#Xّ9}ls,cN`Dϴfi5-뇿0hxu)$,bKq#Cv .grY1g*5!-]Sx>.NS$a'JuAi^HJEzD/! ܔ]ї ݷҤI wϽsjёekf磭(rn =?/πJϮRIKsDNPu|5Cd>ǻ+BPt\@6]zO=O]Ow Mv0٪]ZgXBu82mV? _^PFXѴ5:jC5fڪ@襜bO2B , m콄Yj_[ps1Ue΁!hT isfk]!BԹ͟\7%MlpwP(hsgcz׻*8d}M] mA^@C^Q5ӱnX][AQ~2bZ Q=nڗX~^?T endstream endobj 2457 0 obj << /Length 1943 /Filter /FlateDecode >> stream xY[s۶~#՘!ul9&R4 -S[T(҉Y EJf.Z.&2 ɧ@Q% qP~:< B` HhBDP.bH)M5O2ӳI$0ҢEL}ye@0qL4D LV/ˉf ř@헗  "'mnTVVVņ_Gϵbղ.IVy{s1=~?~˙=cQptJJt;VabmZIpUZe$UR"oOa[Ib)1#>$[4;VjHlGOF\2(YNb{Q(c,d1D(ۑ}1D)3 >`* DŎ\)~$F@ =ݕOPC+N^((MTv.אH fcǺǡLF1KS"!zD!8GK(A&,W hv =G",=$eEތRi > i*W7B>YM~|<.FqW)$ܝM.cfgo Г  ('$|}8F rsK83.ȃ)źg~f?iO NoNMS9#_M_&K ݵG}m !?zqqꈏy k6`Aa'k`Bk;9u^j)ritZjh!?5Ye2]7ک &Z@A2@گKmn.إAچ_6I̛R^Kpd`_Z,w9Z9S 1"^o?LLu4 N7P Kև? s)Kv=C=M{#QD"O*i,#xb(&?zy//+ zQ=`K3'a8 ro@ȶYy. wenÈX{"B5^IAy4[ xS<)D|QC=c>QAX#3o0}AYTؠ: ZBMu>$}/b\[ἣgvhy n?.$30== ]sbԷ},ҞǢj_hN|T}`['Yv&۴y'yv y$_֧/Z$>ub9OvxxS~kY ( {c{W'Mۘyyd[~ endstream endobj 2461 0 obj << /Length 1246 /Filter /FlateDecode >> stream xWKs6WH"LuTNjN-A2G|( :]$TGL Z~[K [{zY,fE%'K8{buڻ2ŌkBbC,l(d1aKu(lu\2ǼI34㗎VCkw] p,Ŝ?_2:Yf,2fe)iH^ djJM-cmyjՏ KU4u6i"eIf|.yH:jYrb!h"ӻz`!|-q#أޔO\M(^oFZ*RȤF(@ b=!7LYibnqcة1SQʶ*6\`(|9d + Nj1b2:(ǔ6)I.~[uPհNȐ X4`E))_HUVGSjZ:^7:K(S"외>&on5(,* F$^ oû{>7 jmȍ}=o=rq!*dsCܞJo3T"=S>Q ǛMS+tRLo0F]4'4$,}Ys(YDScfMnp`,Äs:sZ ZS&q[CN5o`_VE_|5+ݥ?&luX$"5 x yCETE> stream xWs6~У=S5Ɂs3M!`C}W84we/$kw?}(Z uD43"-(1w>—|{SԹH(FJ9R )NE3SX)?Io[Soq?JzIn>HHB!_"J!ژa) 9w3AHzX1h<7E) ŝwIgYP|NA׷w]/`ZjWʻ]^ iXK1XIVɼS7,(f:T\f]q*[FB2OkF&e|uxqV<]-vx>J$ i}Fhxs}錘>L01m1ڬ>] | ;c@xp\|C|!3UJSTֻ"i#+w6 ЌhŚȊ6Rk&8Zy}ʨ-bȰ15eJ i!$u cH!8+I2F9TaR]w>EVUn!+4M;4uC!vHp%C[ha$)`š)0;.OEcAMNӎpT d9TS QIZ|YGzrx ߨUif>[[8 J$ۢnƻ) *)"Nd0t#J+|1:W-A3AiiiAClq"xo>.$/o_CF I_5c@9M[U,V IAd[3axJd/N ;qdRD"W ]2Ӧawf/{ endstream endobj 2469 0 obj << /Length 968 /Filter /FlateDecode >> stream xVn6}W,C"4lb(ۅc)Xrn%|KPE"EI:0"\D{@!EL;q% ;7>`0$|&JQQQ=FSw1WrٝdfFv,\ΩYٽC8l޴a]QfL=Ȧu7tәB7W]:4Ϫsy܎7IFiau! r"IgF"\% r G/$@rƅo~SUtOHP JH)(T#$cz[A& CR]Eσ V&rvi#F5\hn3i+._Ɠf1S~g򮚌zwaW`Qøa\"H5ωČp+je@0Tf)Xt0`*>|Qj~ėH cZqi* 5ۆF [c8J/S? GUI-|1OZJ'S‹?^r܋EI{ؾֈ8\~1gc> stream xYmo6_!, 1W췮MtXހ+ E JrEّb)q]Dgxݣgv#@Tz)3;otʼnƚ8ә##FBqg:7Ǔgg_>M߾81ke_lUFU*\ŒJi'J:cF;-!otbQq‰# CZhS3$θ < 4a>A3рa4Ю4q)i^N>ކe?p$n0遤Jw'PpG683@ z'B pEw@(`C_q h0s$I ç}̞#C*9g)`!k47nyY!NFTee\Œ*70W~>() ~)Θ Σ/q< l{GIZ0aYv,OG&^e&je13,̯:72C%Mr#YrӅ[8]cpNȾU'#lk27Ag(4g]9w2 oxi +*vn1eJϳ 4tvaM.q BFT#4T2rb̭dl6f$^fxTuuם À3x $ ?a'q@\ VZK33nw3'h OC= X"EGcB|[4bDi{}C} g"p* ِAzTT)aHIʃ>KH}J#! yxx0,ăLVx겾9B>S$(JW 9qNtmk#2z4j0] m^ްWE'똷/[NĘ(u A$DB =xd1ҟўaDcqosjDWn-s}< I5Œo1^g‘Pt)&Zڍ*2%a y-lA8=}U`4ln%k)(6pKjvQ&? 11lJ(r1nhD 6= ~k7&mZ{te n3#8eR{Î&Qt6 !a- ZxHƲYa%߃d {ـ $pM6ndL3qтpiM6ZNdCc$pqp<`SQ8e3G~q5盓K.q}# 7|EGHkZsu>}Ts_a/[(rGWޛEiZrRiU(dnNj2ʌ$lglIKhZa 6l]EH 9*uz %N=uNRDĥSP},s~@3}b_Y4@rOt;TQp> stream xn@y%̞s&In**A Cbin|~``#"`k0;VΈUZ1F Ef)u`Sa u0u&`DzD%%E2B{`}yޱX(-8ҥ kТ=[ƽAv Úb: JQNr@ m>j8@p/<$5$[YH"]pR?Nuva`;-:f/lOn$V-:Ʒ(`-ʜ",x9_KxZRAz5//t1,\Pim9kd4O"eJl] W1OLT%Ғs4]o$W*_xEm{_PTy)%GeE7k;xaj 76{UlS25eaSRxY$LFbL8;C!|vlݣ2f/{$'dK!dNvHAS> stream xڽXs8~_\^H+ ArK;bfn^pc3o6Nl[շvj5 %=I@9+q=+ f^?u|rv%k<XS"]a냭z@ڳqf罏7'1dV,&+*\:Y|H_(k}+E Kͭ2ka$%4iR(uFyS) =t$4hҧLCU1gIG1:BVZvQi?{H73p:#^>z΃xnZ܍KXVIx_ߍn(]}O)!vOB;MFѲ7q|n-pK303Ҿq?pfPπ LiЉf&GKŹt_FY(a&efğ$I "`r0N%hU|5]^_߼;7\E(eH JQ WdL€2C+q dz!8DPq'8]3xWNM kٳyG&itvf -̅>ڸs$1닗&*= CWqY=M֠j/y x>pB$iA9p=RI&Vf]7qKjK󰪙/,@Xo޾UE:QQ/0rALo&y#׊8)A;ޓ&O4:TR71`>ؠTӱUӱt1aTp7 J\Gt?uMtQB:UQBr/i9:[( k٪ endstream endobj 2486 0 obj << /Length 2607 /Filter /FlateDecode >> stream x[o{~\q]sNM.{@KDB:QĥVоkIwgf\$Ä$/O~? N*hN6ɢHO“!<{˓o_h 6$NMHh\Ogߝ|yw}Au'Uɟ&ղ({"]v It+&r-GStbڣ*]~ns1ps/< BFaGbeh5Q G$YEIm:$&&t1%2R?1ٞu{Ȗgߋd8Rs-G&8 T(y:m5 H\Q":?@Ԗp@TzTT$ f˧ .cfB2T|eJ@dI)x]`0$xfԷ.qb|Q؁NyYӺu{o9/_\h6AZVl7fמpi4uZ-@Q/S7)>zFŢvr;.b ̘1nCRY[[&M^n(:z8z/}VT׶E# Ly*% T;S#{]a CjdeD}«\U#t}D@MJXtk^eŸ"duA#*5ELۘbeBm7l?Gܱ"f6>ǖIh)mX%5Mצy$AnEn1nmz6/uB{(ugPڙBE+ҘB!_4 YWK(ݛV .c!;M09-1m Jj`d.,@=8I~Tȇ7 l$ʯAch LG\}Щ>w(nRp*_'hG6W8-oK%(w38ixSW&1&x3⨲b6RI]+748tF * a+EyX*9 jѰ a>ًu+l:vݭo޻-ŢR{Z| Z5m [h1&kD 〔܆ܶbJVPLj0-ZOT)Sᅝ-+ q rY{C |Y2bt2 봌ACmCL6y7&6uM~/V ckuF),J͘/D"H {O?˥ta3iiS>g ||_t=Cox2b!m6 C-6zɜ7;RBJݱELF Ue&BXŽr3mLT))y}_g EIBn>|t'g'X$TI0''?d_%1;G:r\''ol"JΥXhȢ ,8҄ҫ=xn< H\sҪ#eoή۳uWV^*T٩Q2vq>G>e}g ϖTb Tؒ&2 .'B5oz5gP'vwb,(CsPPK( ~@WBl?|tep9W+zgPO<8;gV2 Os}3gr{2Ll3m~~d7u4%Eߴ\7v-G[ɾƩe?TEuc H HG\H$ĀhswHMa.pk\QD:YT mH&ͣEoRk > stream xV[o6~У4XHsZg`h;@(GEy4ؿ!)v,Ya sll l1q `!C(ۓj\c2F87|bA,p83>> Ƙ0s#MZngg9Qi?_[~mq(֗2 쀵K?aS\i7viԜY$0ktÇVo,amk aàU >=Զ{h}靖UV&fA1E Oe.tPJl.(w%]%:)}~淫xxuH$GNh9Dٵ,#fN+M˅E|GaG6RPs܀lMP6rd WuE%S]me.VBn{=c A>3~Fx.CI=,im$^l8>Z3P=^l$& ̄UlvAlNA ӶkV}߄4M]ba<?A!F}b*s])*&!:E0D'w|r^x6c0Ns2#dco;lk?M^ R e{#홶`apv@J %;Vf! [yR !ԅd#x[4jSS奴S4ZĶ詇 zܓSTQou{76&r`?[kawǐ$(a%Zvq8~ZE=7pޛy"!sx'qg73rͲl0f5գYvQKE =ˁKn``! IIK%F=xAq@m={IF꼴(RrYHT+TT)rgկs@.̀@}sv;a3@TA͛G=Uho<-ωW|ZU|uBA~^65 Y;_ga&wFo AS'8:^& @A`q:~y'Ҿ9<Ør:ZeIZ$ { 9P[,ǐs! ّT\B endstream endobj 2494 0 obj << /Length 1856 /Filter /FlateDecode >> stream xY[o6~ϯУ "a.mmÆ]ז;H8ݭ xs"G"ȤIDN Ҩ̢wx3ǻ/.hj,,ãƋ0Z?sM^ٶlUzL|Q-{7٪ i%+`2Z_D2ŌN (_'4qz\#zbAX'98aYNU:>~YQ.,ܓ f T $ѡs !.ΚI-ke^pij l#p>yxXɄ{µ$̈&Ǫ*mgZfmYtd Y]7;po,ҺS"eS*>OFd S$qe_x4K8<*n<!^hXcB.eI6Q)XMERE*=ETeb=ެ $[HF6b=d&%; N isj+]am@ޚжӲ-! λB㰌n]ka)cQ>%<= y!0M=##.k1͔G"a9da̺B6Y ]O9VO]%tSH2SF_{e4h)LU:ag R^Vt {y8&C\vwL =4iF7vYY #M@}ҵ _b ׬kC%PȚOW6Cy5J.}A}vmq"iDJnC#g_ w^^蛐;9YK(R2:KuMQH?.ޅ< #r_ѝx ~jʦN ZMEj(pH(`>/r)o pm9<_dO[bo،go=Y47DZeSSΎSYͮ6lwQ2w3)_Lu<2 r5]AЫףӗGx@ůzO/~{  $+7Ҙ.zB9!<[_*/[4/XY˷{M,0{5yQdr`1? Ai-N6OB&81: &WUz}ydA,q!ݐ8F^H!٥]^LJ^d^d/xp'-쎌EHƙWMw~) 7N2d`LxE8LhΥn^:o(muDK'x҉(+$MF9C͌ڷM:6m=tdmoL[h)swR5 ҬG-aku潺 ?B=T)߷ηB>pGitvOSm%s>;YdVZbڵPɿĊf7ZۙE%&> stream xZ[oF~#s\Eu '[](D' HitqmoQHw ޝ~BXU`"FLi09w[^(`R`8 4D(_BMb0ex[&?&`7ZRIoe9JE6MzI隘 20 g߆ߟ^0Jb3+y~x~}3"|&|s~f_RB6I43te\d9k Veèۧ[]E[#͟o9Y |ç!>yi=ׯ#({)/g] 'fɴV<߹"swm}Fu~HۻIQKOW;*RX5-_}F6HF~~tGz~ci [w3fi>d} xN}ٺЭ&| mQ&H |g%n6kBZ7t&A2vIe/j}-ACh&qp؛[Jcb61!AixY?. tQx}q2{U_%ȳ`G0z"sZF=:\@\q'fb;q4h8ր)"Dk]r|qmMlFneCaוּ1f&vU!Z&u])H֖(+,SڣlN=6bYs4@":: Vu*ŚniEPeYGH рJЧ†9Tg2% =+>]}1y7G";.+-0𻚥d6zS]'^&t0$^܇PHlQuB26xd9Z}plS@fW\ &;OS1s^sgaMqo/=)$Ow IoR\-C`4*гU Xܐ:Cjړ,Ks۫$__Մ ܛ&5]jTCYՑ^(AJq(ij?(sYS&D(ܓ!Vd]uKCb&1`4;7a{(gvaF[ 6i1wƳ^[ͺ^PCQNY wåf]W抙z$n87Cb"6QJe 3}7v1XWëqͷH %rk'᠄)kmQsG mhx(}Pj#~3>RC@;1՘N ٙ2_qy {\|[^:Z؅NaOM^_K|g3WݗI{.rObLx7xW$wϫC=>"ڰ'tZX\v&lf|o5UDY͉iЂJӎI1 @>"?t-z;}v4xXVk*a?(5aSՇ D@gˮn!:-:o=R:=<D f̣ PH*[NKQr+drc+E0~CzO6rDÐlyG#"S-N986́pVI>8,~~|IkFuj׿T\ypW s/.]LXU>*`Zؤ!AliJ:AE?a,(ݑ]\O _m ء~#}֖$1Fm袺>晻ѵ}/돤hǡʀNx񻙩="EDd*ϽGg22ڳ )l= ?Eq ?V<Ńw|XGB1XUÿU^Nٲ?U&?2y2۩̝GcQAiSBɪ> stream xX]w6}`JN&YKٳ=mh+Q*EN>(49'03sA;'8@TDst4er}Oػ:"7lSY2Dx6S~^-ףL`s WZ&샓 m.>L.GoFTo^E~u.Iߊ@$Ym۪Dkoq[NO9~U{ZvbM.ɫ' ~)|D2>}d2 `Qm5hj6TէMY,#;e&.1aHYvsomc qdN4u XoWnu:>mc)n c17›-{U 8PG#Q # 9ŧ")E¹g"8moJgE#-y7#5ϗk11;TS3xzQ0Uq3KvhoӏUVBe{oZxߙH^)l3k8c]  ĢqUKc"$ h9ቻ_K\n|ny9b 0>ʼ|CaDwQ=T$R GM)R3P(8RSbIDEp !#A d@$p7NMĴRP#hiIL'A@Vٙ˄ 8Y$c跮 }yn270#QB*D($z %1 })Gw7e- G7a HtjXG!F9RpJI3t7å7H"zUiD !)Cx^b eՙbn7eH}sw_uKepP*JM0C.m?e=Joi.r#!bEPNjg_KI6_uo =cnjhA0?0NVஏ 3;PEFZzcF$kFJ_D"1.usa{\1+h~ ֱ 9sQt IʆnTba\ڑ 1S[7U ݎ3Bv~ULVQ-?,cjP6;_DrPj?I~&Qjf1y<F7R(]Tvz#HS6@4zXAX &5z@;Ů DT"SFZɻc5}0m#HXf9Rpg+p"b:w.sɩ|ȨF.'qEBs1ƿ#ªHETx H{I %ʴOvPe`>GQ!RW! i.@/ܢgp9 M`oqctY/8rAG"`1D> JːBɰ|ܹ|#)3=Zx_s,8jH endstream endobj 2507 0 obj << /Length 1514 /Filter /FlateDecode >> stream xXKs6WVj"x?MNҙN#Q6g(!8%Rb'j_Hpї#@iq8\÷W;ߦGgT# @@1t|n"|^ d .@M#Y&@J`DdJ+շȑb4H }$kgiĤZ%>g9bUM^ƙ}/sn^qX9WEgefUgV&*J0DD0εim>mQZ FTW6b C6)uJ_  ly2_em4@4UuH#Kpkg8)"-8D |x8A|qnV)mƅ aO  x$`!,#r\pO.AD'(<"^4Pg V-nk$!*\2'" \ܖi={ь,D(a&0Y3´gsoi7 *GGSLg J*D k #"83қm]uoBPRsz`l֞qر&a0HNW.&o>L^}46;>M.!A\(⨊烑"<-.)&ڮI}e8m\bFq3JR#u$UHA .LFd{?KĸC [G2h'co㫳fȦvM[JTl&Z&~X溪E ONWsd,}_n{/(D b_Q~٨dWQqZrY$vDr{4SiOewhtDh0IG (fv{󞃪zho6x/9ܰ=iD>}OEun::Av1*aপ!cnJ2G}GjGb$*00obtnoOƓG}gZed}.l nx$]/$x; endstream endobj 2511 0 obj << /Length 1433 /Filter /FlateDecode >> stream xڽXMs6W(5"B|`2=8ƮIs)JBC I9饿 L܋ݷݷZ .NG"`2E`ekLOG~DtC,@!Mg^CT p]nRljn25U\/LeegftgtfW(+*3x#O7# Z @biR8߬nQ:]0ø.Vv~|vuU6]EY;^3j?݋dyKt>WG^bo-_|^F(gz^} fdiW螌@Niz"(H3duf0Y$Fj8ȫ!%!8jdGhhP8CFLU5 I)Լ,)eg<J$mN_o· NDC@dzSZf6%$en=RZdFΐ9ڵad<9xSmWAmO_.zӛ_]CD 貉Ö*5' OwCǧャaDI7 66?ʹG6u !_aB_"n`Zea?O$YF m !pO?Xzf]وT}9;c'dDŽ}ozb ٧ Nנ'ą=Ԉ~]pQ"8|nG%:RMb{e2..EVLuuPhlCe#wecMcIe\ J̼7$Mr*?X004pO,ā"ܛ>w]酠, TY{dJFp?&͵W ! (`k? endstream endobj 2515 0 obj << /Length 1669 /Filter /FlateDecode >> stream xYKo8W(çHilӢI;],d[XV"[P"ѦS7{؋MYÏo䌉w]{@T+oon[oFS=BP$F3ORO2h}%~@<[0)Xa^<k140SzGDQ$xd8; N}iH(I* ҪyNh5T;9p̾?0UfO8]jQڍveEK̡jN*?rF=OHc]uLy 䦈|p|/E`$^y1N>c\xr9Yr\iEsXC*tu`^ u&a06_1a.€,5B5v6kN0N T+ÊʩL)l"amd $CD8zk$bv;X/ SHBBq"dzY:Hr(CDPs$>W,Ý+ (\X)I,́%ʶB,#R#%IQG7Q(1A*UiCyuYB*f`DF*"&V-:(Z߈q=V= D8փC?p F^8h…^Hyi̻~ wXhbamxAA`Y2݀voP:R7 :bS%\.(VG|WjþK Х삾x|h'6g&[؀`rL UE||"]3/ؕ/OpR'3Hr(_9;/ SW^+/ڰy7N~$/Aw%n g(ͥ6w'.P(DgRE~i TWJ+@S3w;*|Xt=7pUM M= BKGz/o,Xg)cJgBiZw$tFL `ڹd|zJ ]T5 J*I3 M(ftE[F>4p7C #ܕ~ BuJYe)ܪ+eNF>pi7)a'2XKCه| 832UşkQ?OqQsaĮ4Mʻ[L7}phН+9g^"|ےp >Wgósl8s}9)YzLlbHN?mNͦŨ(ժyYZ[l1c\L$tzw=Z]B&Cą&Y7MwP*k}23ްiGq0M^c2ЖVt-J{n|0nyz_G˾(;|FZm"5wL]5lA79/xj츅ypYcPU_®+y".umPɑ~\73YPU Y;$Xۃs endstream endobj 2519 0 obj << /Length 870 /Filter /FlateDecode >> stream xڽ]o6+x)Qrv m2[0Pd&*K>ߗn(+]"0 >N $<"PĠ`=SlWo|B1# YN2dxbc^sʙ1,*yry H|&"QM*J 4L3_P'»^^y>EXAN8>BHҾ%}U*ܳǒfػKo=2{OS{>DFnSk9,mcԣϪ8SE#72OL51,[5e&O'oj7E`&˫6|/S[S7j+Y뫡k%i5N㕵[.6.- q_@mRƏX.H'~E y> ]l]~;LpBPB@D@'5_Xf/tJ\;W*S?>8&9`Ppn+;X.jBJf0{B&`( {HϞB5h;&e+t~z.9s[rKu+81Sl,hnڱD p8f-rRWc!Q;nbiU8՘JNn_#A.]2ݧ4+ZՍ,'`RS7>tJy~y١0Kunb2JsU?om>u1/!}.bQ}%-reSe2Q"Q{|~*Z!}DخԲFiL`,IKR:@h陥XSȵ;Qz9wZ*c(Qo=96 endstream endobj 2523 0 obj << /Length 1337 /Filter /FlateDecode >> stream xڽXmoFίGP;餦 &U/ipZUk7l4b\ ~gfgAGaOh^ ޤ|·;!H Ap))]f=*I3%ae>y/0vRh1Ȑާ<HcM p!ܜ=Ѡ{:ԭ| oq]XIEX]ׯ+;`X9/(Ɍ%aH'.2!A3qQEAl0</> Ξ*uYGHn9hQPJչo+z>TN.]ī(eWi#݅m%M!%Q՗iRw ']Z}~%#zDZ=i_I$^(Ɛf` )ېzL#-) GЀp3bTW7Ch$8cؕe-=P3rYEAF`TCLd8'jʃ7rg(NyLelIZ>[M!g =O*׷mȽ='7'? .y=H(_fآa4*qIi$;Ixy /> stream xXmo6_!_dfN1Cei&ۚ,v YVxueMߑ-)fl7p/C9`?8Q% Ooe^] 4E0qp*D"|߹\ 5ʐv)78EQpoG~8L,G˄FS6_?wzLO,p^=MgQ'0EBѽ8FALuXcpg Fkb&vVQ$v_N: ;4 ONL&@$"Ң|b¬[!)w~h7.LrZ;XQ77" :JǿBݼLV!Gi]]$]LO!ObMpӴ /I/=j!NȦiLlOIގ$Xpf4veIÁ>Oae>~ZQd 0 3.al[b[|7G6o_Oϯ痯$5'T!+OQ9 2'4,w'cGpXN pI2vp?B`$->7/LXah5y> njB]G6@q _)v!@-*BqjD!qkMBIڡ*,ܛl'ck3C)#zK$bUg̀Q(j*!ͅpMs D!wI۹@+p_E)S$ !d<Ȍ Ұ[W⋺:dk0F u}yypyrwUN '"%u:\b1"Ƃ u{C96 f ZȭJE4[}nTpA)ŪݲȞ$x%^2\PPX>b Pj`ahl%iwRf;S'JVWx7&@PY[49QY=F}OjmYUfOQflB/BmHlsb`YmKeCƩ' r]/\io,;ڬ嗩ȧRqJZ[d!' HǠFLxo?YAg]ȯuG!4*^iS~H h +XUi]z(R"zb8v==-U{oXіUG<= HЧuC-l3Jmjcm蛀6цzG$ k[-[}t'nVrױIX)d+pyFdw. R=TgnR[͓rոڷUM,'Ҫ2Q7/rVeeC ;~1Wvpw}zbWwl*qxД %_4}:V;SΈVT[o2!3e!Zϒ2AWvnÜv1$WưIhzňk6lư[(* {<2)/tʨp | n2ZP'ªuĩ'Įŷah5hUpU> stream xY7 +cQIX{+9 rR(ddumLi=O$DqTJ 1RJȡJT(4V7,p͡*IH4&N # < drK[5P S %3Uݹ@+JJlpPjbCC##2-d+0 R ᚄ` ~BDU*cY-+@H cH6wȡR +H0ГD@VUC2 7L!4:XSxX2W $YYD| c6<00E%EPWgɈgP 0FjeN?Sy!:X/,beԂvh)7 |11 p,9@-8I1KhaduE9q%G_HTFr{RdK2-%f M*23"0jdA)zBp  lh1W( }5rJA˘F*AZP*Dт7HThale L}b 5R\]mg/lpp`v~پ}eo^G|;$] l#yx˰?0qc‡߿99H,<wYƎ#geqe$^bg*\$=kq?sdq>8L1".&}ݯ">W/܏[gԕǩP]TW{m/WĴnLܱ.rt7^ϛt&tę5TAUVP*-PhFB[-> ) ':xUC%t]z.c[osj،^کDmxq聏r;Q!ۋՙSTy*0(^]rxO9IVIkVK(1>W}q$;.u"q5opQh@\ ;v* $i}ikI6yn΋W$3ZZXֻ-lr6!4V)R}68nwߍ& $_3G=x>Zk} NtJSoҖ* Hk׆f å$ZZ=]& m7uFO^t&gD=ڤZmk?%27L!V C}WG-<`|3>S@^-g&)gty4f=d7֜(!].H%^ [`4L]q1i1Hl A?vѝz NNJr%^ TLU endstream endobj 2533 0 obj << /Length 1372 /Filter /FlateDecode >> stream xڭXMs6W`zR 'ӃȩIZr;8&P)v Hqt@,wo߂h(zsA@b|:@A?aekov~2( (ΑbHqh:C0 Fs ?b&0]&f80=?<~>X.H@DŽdu 8C /L0cĔ؇nmO1TL Taʞz'geDŽ]ooFLi4nY;{jS` E1$s҃9"XpUu4V{p0nz%=+m3cG5^o³zϡw?)0/12EYa P;rHSX (YlS^鞘eНq:BDHc\:]s(~?L/9r})8b^Z„lɤD&51¨rF ,(C/}\gSQeMZr(`Չ=*}R$_q81G] <<ȃ6wJ ZMWͽc+z'q(NAɶ_\OƓqvA|VMIWF;6)<]'r <:D AN$Z''NUe=}+,]imWE\ Wn[{rh-08Y%L#%LFyq ^2Lܲmx,%b\A#BTY}RA)*lvQ-jAAdZQF(Ppa>~H(B/B7B/*ӧ|P4?Xv4p͓"O~h'd6I5Ë).JyWoǰ)`qAwTExMl]42llgYv9-wG=7^guYgr W8k"ͳ8r XvQ[-_v}ٟ QG<wb@AwER%þd.F?&vZ*s(Αp+aMd%dC endstream endobj 2537 0 obj << /Length 2374 /Filter /FlateDecode >> stream xZKs6WHUFN*c'-O!7f֋.-CɳtuI^~\O .Mg+ܦߞ/CvUW$Tcڕjk2BrY80Bj]X.ǫb^wˉx q,,l~bkC&W\\P^l^% JGWߙ忡O\})qTڗx+t40@mQE:W.y+aC2C}%:V c5DgIK軘2h+b#򎾛>c'# 5w>cwx: %%|/!=L5\ ^b, vM¶J`7?K`aM(L2}O |P"{ԢZirQ#A׸\Z,$L[BR)0WeleLDZ3;UǤ=-,Cyv'3S桄no a!ˁR76df{q~\޻>? ! R% Qz Yup+R,>%ۉKEtKhde@7 @ a0QލQⶢ֖? t ).|ftHe(l/L$^C zvg?]^U=>լmMu!Ow\|U*}W+) ]2 RH+jiW*0GCy`$43P>˗r cc9u5v'`)arѭ~R,Ӂ!@'"P׺2tz\;EsoԄYBVnEA[hL~_Fp7(>?\x Ԗ=g؟Wmc(xFf` zUWBGE|Mz] |o)3\.̟g!tbVp&K¶P rӶ--3lw-#v= 'Fmb5<72Y-W~-W_'r,ʏ1FNyGp^l?xQ}؝K-N7aU;@0("r/ؘ-vh@ak7y0tL[IIK,P1åB>Db4o~mvcJ; >6PP d!)v BIl-8 xlp7W B,MOǫ ةq^xGE@Ƌ t]Nr]%(b&ߕ-PLB~9B{0IP&0 ,{2@8a(Ax~} 6l1 GWrq*ɈbjCmtTرzXZ|Am4K(vrGM܌8MPXYл 1nvlRyrP 8:8ׇ -nwmbn(1)+WhgDR+s;o lDs)O|\a? YFw[3`NJ^U}U^N[H[V"Uۀ |( r•x32 3"œ"g0 [#8]o)(?X~C]yU34bD^69A<G=;կQ ۥhsYsMdĨBŠ4GuPP=O fϧS˯8R6RwAuJCemz.q7e;-YݪnM磀 ׾=ܻ~3%o7wQ[%79ĸJD(| [^4:Q(Z[O55eppTT|%\[< jzҠE3΋aX3L\Y],^{]/0O4 nx.^h;(lT?@-ꎖ/$?ʅ&^)'> stream xZYs8~#Uc! f+ٌurnj2[HYr(*ǿ)4h{g*U6itǃ$J"J´ĤQG__c)"JI*%f FDXJɔR&UV&Ɨ)2~lf?.T&Iŗd&XG'xtlTD&)h\:N'ΏN'O'ώMd~th$hv6z[%ܗV,rQ>i۳{˶tB竬(՛^=-Mfu#1CW-e(C))c'Y]}+w^?]M?z]m΢<,:ȫN}֦)RG*#GAﳬMeg*ϖ]e_,1 ɖyyQ_d8Gr[Fm oc<[=ChaUdp^Ϳz_bŢyYoJtP@QvWmHaOMBG|tW&fitn lo`e.ln7֌DHye-)D]vKBTtx2q^fID:S'5~uOB(͆ YŇlS4 x-gu.7d2T'妘u4alo9$$=ɄDOFy0s'*‰jsY*tT_C?\N$Zn G2D&b(Up.M{ MJ#nt IR"F4݇Uaw0%8nnN8?L| Jg*:>,OXd,ApB^2Tg.=%/NWs.g{“O Ss{ QGШB$(FT%VټsNA80EqpfʫM]Ի]U~=f{tңR8ZfeK7T[j,qĊh[\ MOoGh1]K҃Z㺱)LT"v[Gpi⭛3uI@߀JNjSM"( J]om:>C'K@/@N QJTʟ2:oI78[nG{d!DQ OC ~a/CbwO=^!fjZ9LY7ʼ5$Dzimk MĹ?,*z`1zr%3EcKۍ/#֗{͠:W?<0oevNp6Ux)Ө$ fsP8;mޱ\-jB9 eɦasC? hpGJepgzU\m|CfP7cT~1.ʎ ;)6}">GB;$]~^ŧ`}wZ <%WUt_϶ڍ{-PTA>,8Z{>{RCM+hOY`?qu) endstream endobj 2545 0 obj << /Length 1957 /Filter /FlateDecode >> stream xڭY[s6~#5\Nu;qR[ݙDܕH{R )s?YX @&p:bD'A_52 #<%(: Pd6N鮙̄T}7d&) *@&z{QЄF4 Nd}nnWw-wW1rDq8pbk+@$o>Te{`!^lYRMŴhּOW=gMon?:9<@R'J}ϓkq38^:j(:h,wvTۇc#i1͋&[gU'꞉x٫*/vKt5<,ݜb9߶oa4R=ԿESśX7_#{7&{.ڪ γkۤ}>exytVdna^xy %.-P^ԙ@ΖP0Bn6c~3kg r,*/X8[dOYV8miLt]=*o>ǫw77n/"(W&N_<uFq*nhHDG5~5װy׮ۺxşh 5ԣ?hy 6Mpˑ,IH5Dk_TQb .3>Xq*بoAHsIp R{4 ui,m1 endstream endobj 2549 0 obj << /Length 1621 /Filter /FlateDecode >> stream xXo6B6E>YҦ[KC#ъ0[Ri)q#)GrGQ$w{ddq^}1( ^;J:`'ӽc9b?&t{< i|p_BY-W fEZ.{1m# Jk}FaIPn=_M^EfS{X6c`= h>=| ǢНDG+j{.( c)eՌb },_6v (-6(cn$p 'q`$(0ܩvЬF4ڬR:(D 2ehX/ RPCtVJJi,$ c >e^EzTA{@PƈA=Ek; =dQ MJCE*&ɰ{]@ _?aw'p4.m k8 C֏Z]^+ȓb{ȣd-Cx,"=qƀ ]b s(F[,f zntt(e^̭ t:p g&JECb|\CӣON޾1H^Mߞ Csr^"JBrWk3Լa]z:6:=-Y"sl pؼT*_lA{GS蔈f 0 NwRX#JS- ,3tsj;&mC$$'xw ge|!F YMcE. i#dT]j^^Hc5b\e5 i1p!ig4-W~2E49CrfyQdF~z?r=r=',_D}1 %@LQ=4fH,K^b$T'CS4z=4fHWk$W*?hXut<,6k6k#6pHobB@B}y~߽ >:{zқ16{flpDg$);Hp9"yQL*zYcb׶U%0^! Cޢ7Rp FɶPzewq1.+] 5z;bU|ՖF䀂YZmFlŀ*<"6)#}A -VuSt7؉95f8;116]bhag{ߨխ25dDѷ3mK‘@6 }l3-} $| >.\6A8j"/u{ b8twx5cE?pg6~,tWm/Q? m}X#^// ?osNo endstream endobj 2554 0 obj << /Length 1245 /Filter /FlateDecode >> stream xYr6+8񆚆0.Ԣ<:*H8JQ2%AɄEI uyν$$;D,U2М y܎~ofudtJ`[H2(<$05J*‹q$byO",g}fyQx^y:/3E^.2~; Cǖ[-YΖi>_IM1wlOEf|zߋt!n? fGD=$1YSpM6:,vjŤ Eyaq8 Y^osp|+p\Z>S>6UW!-wU܏+gw`7'+p &*YcZ5d:P(V ^ZOafde3jm8i $yH^p8R5.Ju^Z7a|Aa|T:v±& GYBiR 7rNFnP@/uCukXRNFG C|I%@XSqy9ES'Z3i:<"CuX8jpr<_:ɮ\su^N?5W9Mr:ޫ:'Ĩln96ts=&SvGښd.}8S q9,wiz3ToStng5ҪCXN)ll( Pe٥@ac(/+m[@8IWRV"\A㲋OMi04$T qu?O endstream endobj 2558 0 obj << /Length 1372 /Filter /FlateDecode >> stream xWKoFW=]Sة]4N-@@Q+y[t!ef7E*@9BΌ*/וm$vy¯~z prLpiR0 }Ľ%_yEE;G蟍7`sAĞ@UAEUƄ>TҖ`qF̚@ިSГs^UlU^)H yEG+tL Nv0BHrQ1\2bj6v0_Gųh(2y9,`,_ݼ}{lP?%w͊VH^VSy#XVSƢ[iEvݍ{k1% iֺ*7O%&CC.`GAkWZtY `4mQv|vvsn%tcg}Tvgj(2J᪊7ƕl̻!xޔ ,xГL+|dGЌҸ"罂]&#JcJ/B,.tMcȝuH¥m(9Wj lEftߡQ+eT]@x@pq$$tب)`YK)s&Q o 9-Cͦ. Ӆ2G[z|p;8ZUnsBo`Rc_ >.o5sn"}G> 8倌eq:rp' D=@G3|G !d111bO'HJ&?d4L`I7mhOLV##e+ T/g_tgĮ=\nK+OƪN6 ^:1gnv EpwH :gMLkXvtu#65:XБ8kk]77-HޕfHeK+?tu:bd ^8 endstream endobj 2562 0 obj << /Length 1166 /Filter /FlateDecode >> stream xWKs6 W( )z䖇q:әvwEꑌOD*tڋEZ[4c@-j7 g$JZpOلc$ܵ++tУG5O/vH c.3Bn&e[-OT&ϝtIV1=|ߞMb4fZ#%܏|<8g_8nd_]gF$tCk 4R.mT񃸻(Bc2Nwm U ޕylG*c<8MsmFoƑV*m l^,qClD6 ,jՠpH"B6j;fo:-lB[V_) Op0vΌB `7e _~9$.Ыg?Bߙ9| }|$fȨH&!eOoPol:qh o2deQ-b4nZR:eh $a=s8'WAD\0h`gC W~73X8ђ( 94'!42M54~=A݈^p"WLu{};p) 麟[o;,t_feԬ |Y#AW(e&E7HU[kЩzmQ'Y5|m`]x'"Mk[TQY-T#2Iն ~#~>:ρŰ(08 bZ/ߨB#̮N+|1`lEq#gg3Px\JV8>4QAڶI;rU=^͎o\w f*< <R6ྛn:V.U k0N_A6˾nD4XYJ'y0jj%wIُjt좧i*RpS(d`]FfEumX+\ʧ UQQ=;wx=> Ȗ73t90Q&?h(R :yDZ`p 鍉Lo zrzo>_ h|fJj*[q_)= e'SGzsØD,}=8 M endstream endobj 2566 0 obj << /Length 1672 /Filter /FlateDecode >> stream xXKs6W7jƄ @8t$9$aʇRv_RC7"bo?,/z,aF";E(axljis旟BL&pVmt&$`aD$9<<{t&b( l &t~~:=꿜ៜE|t]- q½ ͵6*0f^.-鮦`WUua~ta%ՄsS0wDC#kܱqS\Kmy^Ʌ}ѪOTyF1(q;@@A/(M:wYivWBp) >L/""pȻp!.MARc7k7a4S΋BU}o"6XLN*VFeta%R$$U:7_FY:1`KPmaH:P5<ډ2;& (k*QUYq󵪭dx#eѥ{ccRQDN3 A'|)H;cIi_{3v33yv63}|0F>=b \?Qa'ZMW>?}p:"ŞRl0"TxYqs-`Ѐ(*\ vP(B !Ԥ#Ԫ̡n ܇PN{ٻojmQ-Tc\7QOTH]J4P㣌7b྄ 9Il4iA-\^҈1}(yiY֕ ˧r+(a+#9>FY ;nc+ % 1}EE2f?CiLԎ{1#B"[A.1WQۚr߭y  NpL`Gz7r1nDY&{DM g=arT72\lpLSZ Nܬ;w"=w+vA-hٽZH8 Urֵ> XJɕ,n6G? c*ͭUnn؇Juf]xl %&|uZϪcC I}k #t?=r)fpŠ#e"[@11!sM"2񮫌8pV9b㕉j uhmgH>ˣZa3 X B$L~ 'I?I V6ӝcC14m;?:Q͹@ b 6nI}0C îNkNolgN41n`q#KZhƄ#!;x?ŎnT źSwZ5$Zޤp޾˯^77N坮wUwo>t!p{%}Eq#eӚTwɎ)j-;띶fFK*ݵsvbŽ~w;WNŻTgޜ= y=r4$bArad endstream endobj 2570 0 obj << /Length 1277 /Filter /FlateDecode >> stream xڽWKsFWQdxz8Mv N*! xH"B`ߞ w iuc"H3C8Q78Y|$R24#!, 2s)e{.NoV=x>Û/DI)beGz.z$H>4h(%8$!5 qz_Ow^A(p>}#Q,֛YoJAaBz!|_V~2|Zy}yF:3vLc)cR.l܎ 'wOcnF:KP;)ǜ ^U~W*(qʶ7eC[8ԉJg,3ڤ=Ubyq$&rpEwۓ҉ ](#:-@7FpR=vJF!N?r~#;KBM$0k. l%'PuOkPzbcf&*#D_fCIXXD+L}:ߪt/Ý/ :?t$DI*nuNQ'Cu*qIvFYl8P5\%<^(N>|"(a+ D n\b!؎hCx˕^˗}_r;n)iFe^L.`??ko7Sx2pn{ 7 TP Yٵ}>ϫ7+w27մ:+B*ƁqՓ9/2^p UYx2Od:`%:Uٺ"l0KXX6R}kЍ8OWKe&?~D]z j_*\.z#`fETRWaT =(VV cښ?uIص9?̬j:&5BwjwY8[Nce 5*3#Vfd R=pb+%qX6q35}IEfAЈ2b6" nHI HK=āJt wjR}mKQn`G n.ŒJhGB)\è0F^xBy9sAE۶\2L94" 1y|PEuCckCf!*X@30pCB:U4P4i-T; }.+7Σ[Yȱ KYуh<( endstream endobj 2574 0 obj << /Length 1717 /Filter /FlateDecode >> stream xR8=]>Z]JInCLcN ~Y2R2[*Lp"P1AJU\c?S B@@2$JD(PJ&ѐI~ʺJIѐcеD/'J#51Dp0ŔYg㋓H0*<:>0p"H G`HXZL*eVW|qÂdCѓI GsVNfIV\cfTjh@8dfY~u:})D;R&vL<+o٥Řٕ߼h38 fa f{`C*kfAL΃޻ !T'KS\F E6 lP.W=~3pzv~^ *y$exxq10>z̲y`_E3;+`u”Y\ +NӪf}ǿ}U k*mpdQ>0L#Ⱥl[Uvf*sǗv'Rab_"&1},Y_8cVЁ)> stream xIsF}*EU984Sc;NUjfH@q}^`NJSYsM_-AIOb*B~-}x]̤@bOJ9 9` o' ӢIc%ݘwH̫bYӒ4b8Qs1smD G, Wۘtqi2׸NG/XsE]}*3J>{|*cY4.\trk@r|kվ)7ig?w>< 5M1.3b.\D4ҥGS@hzg8+m:UNʱZS{2|$_eg7#.vv/nAk#˫ޟNG=ݷ&^}C \cSC0gԃZR3"j| NMI-!*PZ 7ZBe[-E?ڻ0ɮ10 jRATE1UmUImOL WdqcJ~!,9o>80a:TVG6Wua97ٺy8$; Nrش2llv[`9J|] P[r}kRG|-~ywWR{ja~;xH*B 1$ZO_ 4>e^ ǼJU[ 0geS'?uWH}鷠px]FRw/> stream xWKsHWpDUx đnlj+HZ^ HN}8TE MOޞwB-jK7|?JimN/[u,HZo,[k[l0>]$y-LxtH ȳ̥԰M@Mߝ^sQЀjx@/: ^zbR\qϚʵjw[Ze#MKfZn~Ty找و1*&4Tُ*]^^X^}X|W7/_?d.C &}@ xne@MUV˭m6*AćYiuuZ5jEכE~lB#fF#e4Ӭt_$x? 77`$a] f2REG`5v4CcQlv`"b0f+h??]z/ $sU5A苴@*`m Tuĕ0pvCY*G<N}q~Ԣ_BЇS-vXc+%soFcHk4dL(|e ͡d X"w\B7{UCAEx0 }x[$㱷yµ:utvMv4 uم&T`d@"zyb ] 1 PR0jxS&dH6)Mԑg$5Ckw:95r"P-Y|4',x loCĈvڣGCJY?!Qn^=e"f}`Ke endstream endobj 2587 0 obj << /Length 1589 /Filter /FlateDecode >> stream xڵXIwHWA~c7elÛyl˶@VKڈI&Ü*Uu-"!˓o'9R8#HN:f^޻<!'| [dq9=à W }U%Q`_>>_ a{je0 2-E>K dܪߵ͑ٿY0i>LZC:Q's8RHEW,w'>cgbrT;cؙ5sA>TpF{U ! 9Mq84*_2SP)Z}R !]_L/GGTg?=GJgB 4jU.ϴ&ZlwHg3QχJTE#}v~p, >I\X^?}a +z$|@o @h:aAMe85'0/tN-NJ{g2TiZҏB6 EV; s_4p NpOCAKҌ":Lj#}O>7dI !x!ѵ!e~5% I~<@Õ騞5bmc⤆ fln2a 1$0d_ )!Y[e I Ɖ^ KsiT}`;Zj"6DрQ)(2V~ d *:mZ6>|Kh$l&:=pa݀Q r_l x2ˀlt[>ѐ-OtVY ,Z߇LAPC` Q]5mC J-uLao!(1p, } :gZ05wx0R$gɀh /X݃rƉ B '|tF0!Ȩ_'@L4;QGhkab*< _&p0uqȁR6>Q*l<cA\@obHyx#jE]*65QrH4OvÆzV VfC&O/>^͠c5&q5vr􇑑J(o##'.=hf!C#eCc;Ty3jY9ZWɲpZKM'6M|AP`thYlW80.Dd%e H2kK_H8Tٿޗз#6bEsy SILiqLֆ9q՛mmͽ9ccTB7{ endstream endobj 2591 0 obj << /Length 1226 /Filter /FlateDecode >> stream xڵWMs6WVj&I^\GJNcג;Ӊs$H"r.>(6:iz,v>>EoN>DL%fIXh<vVtbD NIJtNTM}z4^^;|=3ulOА%ʛ yL*jg_a4 mWAA({- W(iBIPhHqco N>+X8XBSJۈlN2n bQ9p&Dܧ飄rȔ&w^>& 宜7yU')M!'p\@HH;S,Fn&}5ʗyX0y^l5 ,$<1㲵x>"D_V+)R.CE?gS&)>6~vV$e@f'RXIdAepa 1 )[{Q̫T;3y yP eJZOP 念@ܶeRKAT&/n; oh]tS-6Yfz 6f[w=x]e/Wz䫮/O̾mM^7| <gFɼ!;mUv7B?xyU{wJ譁8] lV Y];^DEVDmQF(fwߝ~&$V4i-% 8((^OSS!2]>ӏԔ9haR*(ky_YStOv (kD7翏d7fK?β0_gJ1)Y=W`[V.".0y5b0VjWEak_􇔟| m!|2Lh9|j' endstream endobj 2595 0 obj << /Length 1398 /Filter /FlateDecode >> stream xڽWKs6WH͘0fȩZrf8Z$RwA)AX~$#޻?ΰ=sDEɐ {g ?.ndboÈЛ-ni6xfmʾ<*.MS(Zɇr]uOLӈJl`~YB/iGLXYJude<3쨿zy+h_4xc~^Vʒ:- 8H*ۖZ&C;ᄁ.n Us#VTYlm#ҏ6(-MY]׽I;A:00VC'(bQ!}+d 1tMG\m=ہ)XP+Ufqgʭ֪W^_j;GqT'ca:u=YcbjD|Ԯjntv–lc9i&c%;PN$Ωm\nN |Yh#KC00p"=8aB~yj[abqbXoY=L PEDtI"fK]hH;ʥ/{jDV0 & QMN6PaUuw(:K`EcP,AU#""0v7Ӄ ,[h~(VZ#?in bBT! ~"/A>IEnx )w€֑gG@ciunM޶!`Ig]~U/mk"]U}7Gm# dau7լX#z)С?;7-q<.lõ2bfæ~⪻U$v31&ٵL`gmvh'ETwvF x&XѾf&+wZA[F%6?h_OOW7Ez0m8$ŃCp@ endstream endobj 2599 0 obj << /Length 1245 /Filter /FlateDecode >> stream xWmo6 _OĪ^,t6K]Qcvޯ)9mv>)"?9';FTB 1 OٻOYhN; IFUtN>x*^^>g"geI/vյx `^#{c0kc2krY5wI-oVW#Xlqέm3 nR%4J a,=N'&w)ũ uǭ P8RKpK?7)'Nq <|p;8/vS endstream endobj 2604 0 obj << /Length 1002 /Filter /FlateDecode >> stream xV[o6~X "ijwN$C٦ɒPb+QEaO~Ν! D$f*DZP#T'wp&@HJR )NKt)Ly2|U$ ?Jz$*ƭڜ$ëo㋓%8"p৙{crc_sg;KO؞Cz"b PS #뮚yUYv,k fc=PVjW;}ٷe<" "wEJ,)l(cHaau)XAgR= ٶjfQ1ة">締OtrO.O%9)L8͖5ս *<2ͳdIQYr)ޭu| YِHK/qbV'k4;.:4|e5fwPN9ٱ9!g3.Zڴ` ql`:WK2`)|̲ aC`-~ 8!{΍eٺd2w㼾cEKWe;i r\L݋|n޼u FW{S9iu"csCqNWAW/73m rmSĕ /&jsH,]H*)v F?To+KS-DlKEm0YyЪab3%h $F_j pL͠;!B)uwm~g~qkvQjVU[2V$o4&)k_#|ԔU:5Fx`:Sl,9nyS'Ӵ}5*;. N(pؘ ,Qc١nڍ]~T9: `(P}u}u#ڏnEY~I?}&!⼃? v1txw*$`xX2 endstream endobj 2608 0 obj << /Length 708 /Filter /FlateDecode >> stream xV]o0}W1ؾqlԏA:ijFBn~8iش78ȜN0"BDjCL;Z?DvO3j$%FHtK.p?gu4h^g%eF;lQoW'4G/ݒ'YIKEp1R=άE5e!6X1~鏰ec °k!S Hn,tL8I6t _eFH('Rn9 yMƳ5#}@a5#Xpd9bC& 89fتrue>N{/&X"c+':198 `Ӂ?ÞX'ʡW(ā,oyYYn+͛,oG쟞_DlSjW ;'],z~cW؁[ ς3:?QfM;ք&6,..[Um ZЭS8JI~RNt1MĎу/7M0X+raqr*j_ja@ ͣXl],#(+=(ޤ_8ԟҍx_8m> stream xՔ]o0L$b;u-tt 4Hih#ABBcVAJ?4mWv>>y(G~"H3#-(c4i}{;~5~ [RHP8A! Z]9 SA]R&\Nbz\IH2|~2' "$ Gݛ>$&AgXfa9pv{]sNߧ*+@Vi^`IEyge7*fwԾm_))h..e\WjU9YJYZZ!Ieaȓ';v0֓Ly;a*JKEo((µFUGppϺ;M&H$^#q9pܥN..qEMl\vb-nIj7iW autŭ4F1)jf`2ǵBJĒT 3(<|•>IQ\!%O_ 7P 9<@Yꆠ;Xq5C3h<玐ppg٘;I쑟=Ki2Y^/Y'XY|K]-4|gq&jF?X9l@ 2vX^mn*Y܈ōyaZ*m6md@n?2cƫLl  endstream endobj 2616 0 obj << /Length 1622 /Filter /FlateDecode >> stream xڽX[wF~ϯУ|ġBcsJADd)P~}g-9kl !ۙoF˂ۀ/>р*VXɈ" n'믓g,-%ZJd\` KW]$e}v謁Yi2[ 0|{C&SyʇtZ. ʯ)pY;53ʧgVwr[c18;g%n/[[' `B7&%DUM$?xrqW Nک;teWIl!Tlv&,gၲh`\ZjH:Pu+0tCq (MB aR< ,VS*/bg<|(Knb+ 9' gdty6"<ƍ9"><]yImkG꥛*2o_el5];ӋʆoƄǗǯF?CK~rȦ>ש~Z՞,@uj&ysǚY ?gPh[q4)Ὤj˅+6ލ `#zq e0 ;HPprq 5a;^UEj+ǰnE>t [~eDg+Y骬j>3Rɐ|T;g\76>Lx7Mm6>fku2X \]IkePA l+bU[MUNe+OPPI,nT@G9gH6I~f5TYw9P :ARfT hpRYeޮˢU%N,n )gk1&`գt ˞1/Au jh…#h&& uxs&m:"p{| Lkvņ܏YZ"[)۷R"U3D7YQSiĈ692,͎d)gIb@n]'8AAX=&3i:֟0S(Cmoh7ŠMo] ?[쵁-rÖ#ӦGnPw]ޤ[T8KCd=8c8E`Z1p')w);q = Z. /m`[z-v\1&O.-Rǀ밌$ȶ2;r+{pCa޹rC>=ygf ɸ<6Xz(QF,=-?(iW<|3aDan(}̓ÆiR5kɤҭL칅Ly!2!$C"zf>;UnhYOc8ԧ"ǞϩŴ\|9eS[bTgPdtyH-4bY05G+j9hETDE>$F7l!XfAe ]K endstream endobj 2530 0 obj << /Type /ObjStm /N 100 /First 986 /Length 1442 /Filter /FlateDecode >> stream xYn7W f&-DApAC $p>U\)YΎf=r"j6cO^Lt>Ј&lF4V912l!a/dQ->jy+(Zv+F-1.#8ZEg-HAe1W88'%L{zK8vZH9ug! ]ʑl% VtJS*O҇ !ӇBdkυc$"h!MȡZ3ghi:l R%[}𑡝W 9*͐1"Np&JcVUi9Ș,)N`b,zAzaj[ *e[L|F h`!Z4j 9R ,5Dd8D'EaQ(mb-%BR0AXѨe jR,Wb!0 Ci W0>2`'ƕCZZ+Xhc8|Xђtsvپ7Xيl7CFsϛw*Μy}sݗ6K8@ҾBKKuݗt=2} C~\fi;OCG`wuw˜Rl?n|SV?/n.,>N/G7.o a{GxtmZq \?x$ɓ@䔁0sHPRi)Rn}cyl]u,~ h݄ei7MCݪ)Q)NܤVj5aSxZ) B  \2!>M䎥ȝR6% hZyKf6T;w1%948ڭ|2 6=Gئ\̯;/'X& N^[`LyٽݎNFY -F0y0S+L ̤/vuG~ tips ݧ`r:qT]/ZaSsh-0L='G\VKX:JH: 8ǏSKoj,ם֓S0X@oq q KsĆ[=> 48/kJqb-P*֯[lߡlc`;N@F?-%O"uN]FE ťK]jw>rއZ\g47D_8#ԝL(* endstream endobj 2621 0 obj << /Length 1394 /Filter /FlateDecode >> stream xWKs6WHM% >rK9u:SKL'́!12 (O})+iS/@,}b⼾t찘!NŎO8./]!8&r K/pB#2u޻uYLf3>en]qeE+̅OTWv݈\vb*yRL>,߀43!ǖ!PcW\*)SlF4;.ȹP<x1?V| Ù{B W0pu\:$;mx}Z^̲CQ€~{ |U*.ߍv-+g\džc˦^k5$uk.>7C6ǫrSHce-_7b}Z.Pf42 eF)b$/^^]^\?hԿ8䗹HYrRceUq^eKsk=!ub |;@'춂\N#.EmdP6uDrRփ!VDvBa~;!< vĘ@Ft $B,Ce; c8Bs&"<jI6 nE|a:kSϺ5D8t{)Dj7#!+x0((<`Ibv5C(BIA&čwUm. Q( mղ{̮]Tv1[*rݢwFќh3.-qʔ!ۦv oS#̗PnUt/xף}m~_̗0(hbB@ jsvR> hW 3 0!ŌQ-,*#W@& oHu\ (v\7${j*Rr~{9I O> stream xXs8_Ggh?`xJʕ PB8NVDҤ-7s/,o߮~+\&$y}'8F d9A$MGKS$ihFBd%ҳGuZj\EOH+83?~WW~[H:Ӫ><=rsCb$" iHFTN,tv}w?*[^SV׼3xbȋ-+哺NO1GOx &eUY'3ҹJN3?QEvp4WO̶jQ*۲m/9`Yq]\y6@PQ;GBS I_#͜`E[$ Ii"A d2?'||`ęL7s6,B6nZLMnY4AY=AĘ&+sy &o`jqҡUP+X 4'̠^)dnPιH2{p kMpZ-?M"Hit"AJ .F ֒|ߓBޞ6l$A$x'1h1XCI!\Kţnm`ى\`/1ӝ^O#&bG'XʆIǂ0 $ 1R$@qL- bTL[L L% iB1.v'dӎ_N& C$肈ہ!rTt?ǝ=ji_}lS\E-IEn_e a~~6^AF:uY^ސYlo8j=+Csqs5 R+ǽWW !/I9n) 뛉0w/Y_r/BU(@CW>?%%ئJg"L I $ ml fmkr (^D 5v ٍP~l]x1%1&l]$1-3׿Et*R=<cIخ]I ݆mg`m!Fe[ 퀒!&!h>42Kohpzg~yCiJ .a >n-!3{G?pTQÁ/"l \l3l}& N $HNdzٻJ~?ޝk$axoi餲ePAE:׵qIBG..7sr(unpwW[ɎwlFXt] %i$<*繋(#m/*m P ؽ% e54g%ƝE (iO'ü&*tb*u^XXӶ}(Rm]a8>XU`^fq^lF~7e@}";P?0G}O?t5Cl7c(:\ǮVXԋ9dWZ^ 'gGpΟǜg嬽dm}=]i 2ҕnUvXevRY֕P}s牿ͶIBܙPI{c'Cd\)$ oREQ?WN‚=¨Ѯ#,Vq a#*Z*GXCVUGj?\ endstream endobj 2630 0 obj << /Length 767 /Filter /FlateDecode >> stream xՔO0W1vxc]:i0ib<-Ҕ%iaαK[ *B";|EDIG D$0]BU*Ɲ`d.Q#QX2$'X%97tZWG8PETl|vk\o=F"92qv*{\S˻[s6#+ԥ&?>t6ӥ}#A˺ިylaU ǽ<3Lm1IKlQ {͍6+3ikŹp[/ޖc!ּI ]0U;\A!lq u(}&ľnS0UXښF/1> low#Do,IYN?PdDdH!\lֹ"(0G ݵ^3rkbW"Jq$kuA:HL(@ ʔ.ʴ}L mF'GYre(V |Žc^eUZ`dL l^^_I}"pys]̡"d01ߤDP> stream xŖMs0: -M֝iҙNfbC i}WqtҤi!iWjC3лEPHyUM{`g{o^( iPwLN>$:v}=+ ɤ=9YḒK|l]j>gI_QI\5GNfVM>*n13JCw{} ::qu`*k~,"it9Ѯ:ׇ;raMyg E"}cwXnjz 4˿|f5/НH|ʒFG>y, S x b" endstream endobj 2638 0 obj << /Length 752 /Filter /FlateDecode >> stream xVMS0W"a Mg ml:ӡqm]Y28$ah;kvߓBQt>> !fa"H"|,$MQ%%s2rE$G8>M?%ˋMh¢> 1ˬY GHSȇzP/"!s@VPj]dv%RqXKg{CYjL~EQ/ުe:u9jhl^-$󍵊>DitmacN]g/faOrp&Gbx(&qi:#$7"I768QdxF Qq(8 A9C02lQ%!AK [ Q̱MHzBLP(BB[S\5:S}R,1KH)}%*LN16HƳ0;3a8d룋inu|\)NJ*BA\ٝsqi*/b'؅@q݇~} W'sBgg'Q]}Ppt-dkK7x.[B endstream endobj 2642 0 obj << /Length 1019 /Filter /FlateDecode >> stream xW[o6~ࣄ }XS^f{%,+d;Xr"Yl^,k.rѲzu0L_RN(Mg~_}>"w#z0h@z7M"}4U[I>$-e=7J3P:>/rեg :%ێI'Qvr…[I6}LGYK{Xoޏ0]y0ĽSbIeOG&3 Ud604`bR]2 3<#7dlm8A)rN0 ñ-o09]cU ݑܠ~ )0ab^/Yʮz=xSsy^oRFYrꭣX*(ɻH*W?K: X'7p'ȷ+ofҬ=d Os~\a]lU|vBlw4mC˗IF[}]n﵇5~:,;4OiDe^rRNN^չ/|} ӖxYRe5['U,F6\?DYTkoKkYw/HN > stream xVMS0Wh,aY2@L8[I4vwe9BPkeWzBQt21  dTHQl~o'O'QD%8&1E I%Hr Qsoh?LxE)#c}xʥ6`ѝP:x8=?'Og.8IL 8^]ZSj1jk^Uʇ;^|S/lLם[(Ҷ6?]lUfJJn]]/ Q):t{oS8nَj6[qFr5]uZ\";NI"B1ʊ%A9C/1 r%°uC$BD)`1$$0uX$Χp2s٣Vu,!%dg1Y#W@Y2|ŽweGo5-XᢿN&j)Ma~Ǝldk1"toMpn;c{{4:<ڤinSe(3nx\E;Fg;xy~ % VDUnZD6u`yUۤW8vC{?j{eC *}6hBLM(_&Oi:E % RF/ `nD[\&ӎY:B rT?Y <^_s[|,ܧiRc2sn#8 EG=NJpo endstream endobj 2650 0 obj << /Length 1220 /Filter /FlateDecode >> stream xX[o6~ T tX]ZboA؀%gl/~[6}:Ţs|G4EO:$VM ;}{2\@DJH394oTnL)Q1κFQZ12' bd{:X* ÏW}%8! u 9R$^a5i8W)߸M"v${2}opswuxaf'LcO~FYZd(kvS pxʎpICX3/u>\b_r1͟v9~ol+Ud:j?6]z=/ә?-^!/ ?J4t, fp}TGΑ3hQg[NKq(]l\+tY:@0%~ y^v?IIZdiӼ"9aPÛQ1lC c2$8 ¸#B 0N~;(; uePG u`DOF3*h(;P˚%K'm5eG#AAs\c!dYJix "<:֧߫cFE=[Ɂ>6 չ.\(2ji=|OFK#+ `25<]> bU/1c\?U ] P&" ߣ䏽Gɓ޿9qZ<23aSL7y/B endstream endobj 2655 0 obj << /Length 799 /Filter /FlateDecode >> stream xVMs0+tgЧ-sKHLHv:i|1we!m=.vvZ .Z[QBEx#-! >.wqW1FB8(((-Q[z<)2-REUOORڊRwdR8μC}( i'J06Y(9db˴)', )W 5@kwQ.(rd6-]gl5^ĝ LBi|>^GbovL<;k2/~8߶6Nr3NmIm]^Dv^t6\ǃaq sx@hϖ4vp\T=c-bG`?N<65xU> stream xVMs0W}-Mptt@pq_dtiOzIo x.JtEYo{h RQ@[˃e1ᖒqJUdC=n!²QҼO\G S4wFP [*"a]E|j:o=GSF#pjTR =ݝ w܄AM-ʤPCgAx:}fWf ߖ˃H>IUZSYzl~K? &Ue}0˥g= ro!]'lp0]B]1yul0;ć.u;\2VOfHf؋Og8 "5}ۃ)DO_6#b<|y媩j4Sș$ib>D%XS,GjYc/ro=nj j X!ň޵@cAU6)x}$2n=[vwp+lZ͒\vw.K0uN?mWma $JPz i/6w8oV^Sj+j#p)t)不| X% endstream endobj 2663 0 obj << /Length 1353 /Filter /FlateDecode >> stream xX[S"9~W$I[:2[V@64N~N. 4('/_(G]4kD%f*BZPcThû~\ D)d?F! Z}m*Lզf&yi͕lIz,=j%!+K< ַs!JpLbjBHH~漥ytsd&m|xu/+PQ̠`i 1Yfvm{{t_bN4̌S+XmѸ\i\n呛La2nLݦ7 ij{04?$}^|RjpY0pϊ4KZRK3tOݓb t|f BE;PǐǔA6^WP#de]Ԗb1B*`sS.BRYhsn!.|`4-S?mOr2d& 0S fK}:v{1nunbG׷C`0|AR7[NnNtޯ7$ׂ'K.'C_-b"dvt̐pSCUGHly0vp" |k1EeG4l1M^v;xvbe¨W{^;wJ ,%+ԝj^fWθ벶GKEkMf슠~8K.±"0qf"dheugضQ&=N'WGx@AX3pV 1I$6DQD!&硲bACh^e'IOXrIGÕu+(TGja"P+eRV `Zoa 5=Qw,Ԟ(C5}eS2-*2~CL wg {c 78Ddr{a7B3pG 3rG 3z2̌c&)ZO2^CN$Tlҁ;\P8A0]eUd![`-E{!$ r^.UpMԯR7md\t̵Ci .5nkZ{P5g>L.iSrp-<1<mTEs]]+YnqD:LC9áR*fv'ֻ )aX~W^XӁ_nc%v«#`GT#G?NG OcY endstream endobj 2667 0 obj << /Length 1381 /Filter /FlateDecode >> stream xWKsF WH͈>uTN-38ZI;Cr%;ܥ%ʴ븓">|::OOdQBWTн%!YV/e!&^HH/SRte2JcƩ2Zn.' w',q/fg=1>'h"+ZYBn2;%lˆukGC[ވOHZDZPBSU^k~0q?N=9uD3KGG"iҙeW#ZCD̪myfTkfVl,Uݑ~B!CIYMW)i5e fP;|??Dzz.m؎m1ŻZZ{Գx 7f̼Ēj$>]dEY#Y0 \PY mvZ"qWmޘKXGC]UPŮQL{c5R}[Ik)EOյPK}SmUm2mf%0'YNٔҜm) G& s(aj,6vV ݹE LJ鄧Zl)nNKY~C.6:D)DR%n[4rWHae5,rD_ 8rs3:8) alLe`Q?!_Z|BY,-z~@D@BQA )Cwm‡ԭ€sn恥̤&f aĠz,5hDATs1L>ڈ*j#>SmDa 1?v`>_@!1,<_,ox{ý[.?7bw};-aDB8$Y@'gr(#a: 'pY' u{)L=ANs9]ijV38@hՖw6t,Gv5;^Ճnn~nx82p,sYיi}orl:PLpJPKQ{!7#WzMm>ZeWCobrdP۫^$ Pž G2X{i&Af8DjLלah6#p6eBBo=V?g@y^dQ[ۻLJ\ʴ~@=$ 閶Ca?3#8i mg0sg\u88w1(H7i?Qr#!' Fd>$#Ix4ȿHld endstream endobj 2671 0 obj << /Length 1114 /Filter /FlateDecode >> stream xWMs6WHX0E*خEw@S̩H 6]Dt"",žAD׉|$B '?› ]49">h  |,G tj:Txo㢉g/BF.i?nG^8+N=tq{=FByS)ˇwsD@TdIp.ZҸm53MYY]&e6:[z3+Lc:1x}e݇p~3-o˫}p},4'js^lfdCf׭[ǧ]:\l>;ʾu^Z9GB}3,b$c0R[] }E)/d0oU'Ijΰ 4݌/z*w@J Hiyv.vʦS;ZE.uQ~|ϯI2A{Z1@܌Y,̪]g(󾤺4-0I9!Ϫʹ2*orX9b:1>{S_Zrj>3cQ7PD0czX½t_, F]Nn2%{rD NmI|ʈW=Scy}PܼV)(AwU5Λ5 cu~Vu*?00*A.cf70|62wVthm1inqϘI%άv[Ӫ#ٔTSy66(p-tlD^a!67wTa0%{8@BAJBT F):I֎EV9!@ 98zL endstream endobj 2675 0 obj << /Length 1487 /Filter /FlateDecode >> stream xXr6}W0.ąɃȩIXJm0%q* DwA)ӕE"b$X$x60x"P1A* t,G`dc?^8 %` $ $È8-7DDqD^cF:/IOF3~oq1ʢeA~j/_N_XH@;GrY`eSϴ}.|"O7x[ۧm> |V4kOܛʁfXEk˼,m뾾;Y.2mЃ#E(?E4${{,_=e=4P=9\ew~K 턼1g|ͫrX?)QřDa"'fl:5DydmuE3U+mʰe3]vzFڼDޣqhNUh,rkfTvbی-c1h!1o ŔCĀՈ*o(qݞqxW(F4f^HQ\RO,'X[-6$ N81z oD"T~rT?\ce,HA" I"fyG"Aw PDc @s "+q)>bD1@L:`NuVA72l86K8둦##dDg< '^2q2zeˎ`K/00}h84=rUPѤvpغjA4:#1c: :©l2}|mV>TUw'.m)btV7R܀7 B08 燢{b6iRs巡A]OjjRMMuDd1$f{h> RyGlæ.51bfH`GWS(4mBj: HulQپ@&чF8 b*DĠm ff)6t">/PB?tvv#Uv{]5P`Kuzm|0M&ԭȠj۔?Pj33R2kKqzabG YDͮfmc[)fgL)޺ߝl1ar`hɴA}cRWE`쁾12G1&Vs^C_b*b) H[o?=}#?6nEV+EvN:iн>?`|)xdIMe^|/KXҋ& X endstream endobj 2680 0 obj << /Length 1434 /Filter /FlateDecode >> stream xڽWKs6WHME{rq:]KnS2 (X(dI3^D<va:K'tΏNeGyI8vw,M04#'?-g6w> (uժR)HiӫLK`+/"s/2D3`4/lrs6*bt zYjI</X4ujz-$l|dӶÿ́D=iiR>iv!Non.gW't&*r?( ',ZtziPN]1s.; F %I:1zj< Lz5cvq (tW\*]ZTsϲ =0G#\hSh t|;c@|UT$]_ эZ'IZ(QW 7cʤ2N8-0mBJt fDalH p9ƍSHDկs[%~[ny1.D~2]LL=$ F: /tB$O8ȝ>9p1\#U;IwL 0I2?'Lf!@,CWYlbيxTㇶ㦪M;f[cbc>Wh3i3}5vHRZף endstream endobj 2684 0 obj << /Length 1330 /Filter /FlateDecode >> stream xWKs6Wԡf"LOcN3Ijt` 8CH;Bv ,%n8xQ Y1gyl~{qo|:{y#VDV A&#qZµnmD~cWU״ژY[fs<~k6Y>Ījeh3(e8^Ɖ7+U>^\$.& QoKݶ*HT1fhg<,`}9hTbvJ/N˓@1P8S4,fyv֍j-ϳuSgzWؗ2JtBh8 Zӆ[~H-XHNnNALєi縁HoFSʒ\YUR'8|dҷc;K,YF,yzTQL$yuk ՛ߞBs8Itg"$GI0kMwWPv-1fFjS+*tmUG~ZϣA*R{]qflvWާFݴG7]M jr%H ٩݅6ihxzd򤼎9Xm>źu9<], /WoWPO "UݵP|וN#ߘ $ i=yTڸQؙu-ARl"H{| ӟvaEx V1}zy*7wO`0^K"Y͋"8|v,y{HWW2S3=&S(r)Fc-,q+1uOkjKNy IBe12v=%,=}CtL:PrUL| {p9Ma-өRP W;ox"^:Z$ۻ9{9< fu;> Eyrށ, ]?kų,3\Yh~#91 ^l9j/C٘,\due d`L]4C7,  MORRX㰄GLdk PzQDV *M7~>X\,;c~"R endstream endobj 2688 0 obj << /Length 1560 /Filter /FlateDecode >> stream xYmo6_o1Heq:wX0Ֆcr(RKӮK"wx{=H *COqT7?z.٭ϟ'GOB"o2WBza$&3H2A.ҥy3 7= Y8̋|eފd3iva>< cd6)`OBK1xq-=}r}+Ie _LbI*บ^7v $#016۷E-,p[+$ 7_[nU>[ivw:? _N/:PQpd}<ߖm˅Fqa[Eb:fIIKxQVH陑*/+dd2@&.55 czj@.0*0 C R11^F/|GUUJN~x!B?8]Eue|k]N~hYR/bz_|5yP˞>Ѝ^8zle2-&eR4٥A![]FmqOLC\Kf}UZK}MЗ4rbVx %d/ˋ,JtsbA!7䰻7iQ$gN$3[Jl_Jhy@BDTAeT!6VaQDP6Dk t"5tJDxPe;H@QVq[X!G 7 6~rZb@&57On%R\B;T02"Eڐ9-q$=17BLR$ٹ(V\$ĭUR'PJ\"{w0IkM 먁-ǂʩM>N}ݰ 掀(BګS<D =ư_2) ĭdJCBwJ!oa䰳w7DXGChI\@^k.K>Q:hh{&t֓ ׷Hrti>U98L]FGOʌ`$g=+ټڎl= ZyT;O1{a>DHvp$ kY˛>6;7`v2W^KWXҪ((Uy6UCNCŌf!)'պ@}ˮv7 @ynL+XhxmubL\74"U 1RQtABY05Ga.oRjbCtp('4[0Ux a}.Srwb{`aPlw=M%bewn=nkiTM^ikv`?bW endstream endobj 2692 0 obj << /Length 1779 /Filter /FlateDecode >> stream xko6,OJ1`]tФM CW`#H%yI"%K ]ۉMR{NGC7/`GQs$'HN9x2go2 !39>u|ܙ\9>"\By-ÿFz'h`#ϓsF"R99$Q9|ut^zGX︔ We/8Dk/a6_.6ׂ Bߏ|#`b;>D f13ÖѰLҰ*[VٸD-٘) )* C/{m(0^cf94ѷ.vu{%>xu~~rrvz_3P*'@aXG?jgS#=(Eʆ QfȟhJ<(J,.(g+ F.x< ! xJVO`|X:n8g nj}}Qgji^#w$va[L܎Ix|WL@]I0**JR%ۨYGT]ukM#8RJV@6>V.pppH^?o'.&7q01@竄9^e'G~%F&5':쥕Ch`V s!q0`IZP#0} jD$**RБj酩y[CMy¥Ok\4r}#(IYM  6beLMiW1Kfؕ8'WcuJ_62\t#eyXQV5 8y=/z> stream x[ks_5_Igr4ImΙvtA@&^X.N| v+$7 I~= Np"@TDsI,_׮tN2!lH$&a$4O:cŇwgϝP]6U_Ny6kci^x:~2"bܛ'_ZD!#9l`atQMq LYØ 1MʬOXఱNrIEl) X :}V%)~a2%(Ҕ )40i GJNph70TDazVIB@>.#;iXمI_7[2-=bc ɿcįL%USJ@ 护(fƑˠ_ <ffG4i:. D cdz$R^fs/7\"@zq?X^Ԇ\?y1!)E)el7 T Zs;8EUՏd5wQa J3$xCoOVoQVaw|3TA]#f"U$R:y+{/b:S(V 'ňc0"Tj1^qzt$ N)Cu)gYV166o+fQY*'Y6Hqi:}9yA!%=xK-pFb[PKNGy_IXߑE/}oBZJ//_:Sf;:}&~.J˴weڸgOɴ p|:ϳX,gj&4,ۡ/hz=l^oyޭmhi2es۠uT0_}n"x^>Oj(]7!,8[ruylGJgoWnKcAhjrT"yX؂*BW100դ0z-Sj=kUb~[da" aDž bZ]=b8FLpaJs`A/!vg\ E{Y ׶*L1 (ዿu, yVPe@g>p֚rI0h/ QJe=;ﶛae1VY ڷHŢ7ih6Q0/COeQw(j>F 1[7~g{=}*6DM{X,f9:v |<\Q/;kMQM1*5#lҾV5JY_H!2/QTa;j0:n"ѣdyVQVG87tdύ"rcךn}Mc4҄Z"sUGH$ UYyLnhΠe^Bk,^!Lx wa=ʍ;!5;%LFuj՚8*eN e)]BI Q' :-;`2c"fOeW@1 =1YiQ2%*>@躕1XgH&YVK)jǔ@.! xVn7Os8ї !RUDAjgEtqծd^l?lq!v3scy"8ܓ*v,zFYW=]-mL&8ǎ{tG2A?0hwAm|V?4CԘ{BcXK1gsD!ruD&PgWP ' ֏mn9fop'2{04}UCۤ||i\ P~.lo4j|״D#CTAu= /cA"*1mK2s,j)2*i{}e[dewfuʫizg12obbq)VH۠ B[e=<ľG-5ln,8HG>uiSJPe/@o ^ P?" N;Il& |n0~I|*rO8-|"xz{GE<==BP0-aqNk(k{ຶmɋa{ uu'L<n F<70ΐp^{s?Κ8 endstream endobj 2700 0 obj << /Length 1756 /Filter /FlateDecode >> stream xXYs6~#5郓8Q[4c 3PRw)AӤ=]!-"==x#T d9A:jO~/ pr ()&HH1d?ߘڌO=x"dRl̓0)*(JGc֞a`)0zd0%!"ӻE2I!Za8I@ x-PV`S, Qljj>$ ĐS%! Hu.4캡^u vx!++0 E2U@&)҂~k1-~h0HJEҐo)h̤77/jme[ήGcj "&%@`݂3cS so6jX]јs_]@Qyi^IAn )bқq0< Q i!E\t:wiF%;KDcdW !$z1KbH&?\qquG׋7Aq:PBy JJE<{~\xMvvV4FT%K55O | -gx/KŶȚ[VKSnOܘnC{twJU#-ڛt? ;vwη:c#sYM-S; r7Yw..L+3^p9ޓ4nzn wvt(lz"Pv42fI9q;btk T }|~jic ڗ)fVT݉W#`W΄P *uIF<1Dkb1m;&u%;ܯ]Qw&:6l5Rڽ;gh^- )tLh#aÑl82ҵ1܍o;`\w iP[& #HҾ [J5,G뉎j C/4BȎzI 䌇$8to^W".(ėz B EV}SZg&+eZ@7!ED- jgq/C/"\DA@QkA=$^]/JԘ{v]4OϪzDn zf Y9̭6ڎiaM;5n +'E,νzG hJo3Wv/B6^ְT?{ &Ng)sA 6 X 6 ZmG`1/}ֻ(kS6Vi 2FPoto kL+ݶebp K)#d8S?聆UƂ#~̒H9"r#M q.|Vۺi^ƽ46rVER$&)N>IY&+H'ɿ7$5|K M1. 7 endstream endobj 2618 0 obj << /Type /ObjStm /N 100 /First 983 /Length 1389 /Filter /FlateDecode >> stream xYMo7 // 0rh imtQ"qQ쬼c؜ޣD5Y!%-`5dMR 90h`שA J4MJ%^P8' djHQ%w\]7j$͟>($K,pPap#Lmd!7zXQ)vV8PnQqz0g$R`E#TCAUH,_jTŽڨ) M*MR>?,^L6jNWn"Ҹ87 Ju}lmb6+%ͪ6+X\e%W\O[FH \}`BbNb1(W-v VFr`,[P=H5 7gcP>05`\&Ug|$bIt1;ۮv0l_L_/q,N/>y^,qj ۱Wxq6Ƞp0]Oݓ~oO-wOk?9h)}"n7v80iio_}y6 W/m7Çw6~@9mwo|z?ۻvm DKIw`Uv8FY%rL11<"q3*"퓑H<瞴' 1e=1u8*"UOtlG⮸1WCJ4i=1N )b.yR=8h2!)ePDE}|lO9Cq5 pma:jgSMS.}? .$G ZjɢgTQT/aSL6f}#0 n^'-K}p913jbd~$@I'o!3zH erP";GH!մRcvzK($ħGwM?Ÿ̢3a3Lz&t eW$"|T\ tE"wEw h*c Ly93츺g@p> stream xڭY[s۶~#5\ <$Ndڙ3mx"erw %A.N΋Rb%f~xU$2cEӋ_F/%,bXjY4D$(#Q|0T\/et.ry6~:E6u+?*0dF!DI6FݸqozM^|rU%+j7s!E.T W;mfLRlzoVs?Z`9VbCiHۗ=e ~-VqSqMEC4b? eq\g.Tz*kUYNX"Ai,4w:ǭ&̱M@ ndY He(qe% 8d13xì 0' w%(Dºs%y& yMBX&eysH)DJyEyX(y; 4>[cJkp?)˦7Qu\wmV'~Ͷi`[9*uV xlgE[ `j%.axoC7-w7דVAMo*mLrf@-hr)0@O<Ǧdri#D!l7 3 .Ö[] )V-00[s_aۑft1PC=D &돣;"~yT@Ft؇\ɹZhY(|1rY\e.Ґ {\m\@:~}+c }辔rdKmoɃo[:)GWQǏ܍ӆ5- _e3@LJ7fm>l>ฮZBr&a.e9~jF|Zof}yIQRpvVd;ۣبAy@gLE\ߍ endstream endobj 2710 0 obj << /Length 1530 /Filter /FlateDecode >> stream xڽXo6~_GY&aM-,ɓ_(٢$JŢ3ﻏw;Rt(z}AXb2b2A?5|{}ٙQ i4'XfK>z5:_=98{쌙%zOi4Z$z?BB+,(,EVƲ,䍱X#{V,[Iɠ; Q{o2ݯqu$2I@A&I\MĠ]&wBǑuHUao0ۮVi>;dܻilCe&Q>G MAk ПUuZo7yjdQj OdxO18g ޮ^#=7=_Wxk{ ETۗpȢ.JW]k/ֻ|(96iw}+ >^}ApF`eb Λk}NQKI}i,. Hۋ%KP$U{aF=vL2.M-gmhƌyijMrÖˇ@u4T2c'hDw25 [ Ϋ{֩[9 7Em2Y%gWac1B ǪF*g(Tl| endstream endobj 2714 0 obj << /Length 1815 /Filter /FlateDecode >> stream xYIw6W07قtCة;./Ɂ(RwpAYN9q \$xp "(Ȓ`3|o\_ OA4NE0q>ThBE 2gpD |Xe=;rZI>_j"#@ⴧYGux|rd~$M.)>ND:NUXւB`:ibM}wwCBo{J/9/wӖj$,8 |J xiIVN^sa1#šTa:P(Rؒp# EJ"}2D(2rZ \XID()L BEfϱD$j+a4ͽr5Do!HI>6 JXI4_i Ptu#dTR>qHyTgDJwQ{Y( # #mBlp9:TԄByh+ w!6.TT6NW6pg@3];+ka2}͒[@-Γ#X-uɧ)KgJ_B%wZ[l8B6SBQ 1ƣ8G3۶m:MKo$c#,Z?rv0x(&% :m8T2.,%wӱjy9#rWW $"zco+g\\@:V'XeoK>dj@S"NwocD(Bږ&V(u=ŋ5X kP[mxRti_=7U']Xj+LGb_dyGnh03&oR@X|V<05怵C> P雴=0Z'̐oҎьӆ ۼ] cL#orjM$h QcE&p$amb!u,6TC 5(i3`)! ѝ^@7,҆ʠm.̅xsv߁AivTh]Y LP"M>sـ/AFU)H!'ptO#\wU`CɺY3W9:KX]1 5҂eAFާE4tfbaleJTN}@f҇G8عR۴֊wCJ/&ᓎAc"Y{[)'0`ޚ6e|n{8.730X[oL@)\oD.GxIdX~;2ɲKo+lؗh`^ vę{3G=v7|͒QZn  ] .ԞB`Ŋ7f>f) Cpբ\2Q>Fۢ}gwK1f^v YIZ20wMyf>p|qU}xnLQizgu"]5%3 C 剂G՞Cp"|El=_1g+ъn@JN D(@n(*B_b$d9r 7O endstream endobj 2718 0 obj << /Length 2067 /Filter /FlateDecode >> stream xZKs6W 7~HYy7#MR@PPH @9Fl!&)ݍ?4>DD3 ]on[/όB`K,EkҜ`iOѯ/ߏ߽=>}3]{FLcb7߭< b6s76)n"3ﲲj1OM(+|1=nȞ, wj7>xnVD`a9QVX@S:FIb3 kIaec#zYh'&iqHbA9)3+*X`.FB:tp,ݑ^Z$j6<8䠆 Y139c2(Œʍ"EƁ2^9r565-eO}ȑ=cuR3mƱkڈhaXb?Gqlewo ON=PÀ;Szzh,%['+J+N.k|0`+ j@)tB vU)Pm+I&tUdoͻSB/mq&*)j~)3>#Ÿe-K y:q#̧ :Sjﴤt.PY|o`CҖM$ި - t|q%ɿ_]>l$^)ڇc%#LR ݭ0$ɛtJ/웿ߠy3˽Y*>mE݉]?UVwjyb瀨,1OV7+wP C} Xpj˟oM-+> i 5l0LWz4[9jrUԍ2< :tIf_[&>^ܩ:oǧg''O7FU\Uv|/^G>Niqd|.4COG9Kkj0WLp5kμ9/Ed&云D Ytwn\T!R[#+/@D2qUVmbݫ^}ʫ["7f"$5l}-) #]As&wI}u;؆J2eE#qalo6ۨc'{Ih,f ŒCK]]xyw= hH~ 0bFNk/j_E=\~[p]wA0ȻO0 Rjw{ O3/(9Ur.صDީ::p>!X|s8 ;)<ߒDGZG'vHBo|[33F p>*Ow9-F) BsBU^2V^cd2z+WR h1op|Tg7I`ri l=v'oEz8=]|?r/ [;_&rLt-sk t}h4R7ͥwl<LoF YSCcyi#{ j =N?H~e!}4ޏA^!mG 1_Q=+Y|yO SWs%OlH:?7Szm~Ԭ,WY# mi< evWe"~XC-Ǜ j я [ ?/\ endstream endobj 2722 0 obj << /Length 1424 /Filter /FlateDecode >> stream xXKoFWHz5ة&q-@HD@;(k9h] |1f^}=*TGUM~ܽzRh))Hy4Dcƃ*z/l0%OXjSs~Y,A"0dh1TF#51Bp)ƜwAMS'rHQ%D!ŅT KD7Ūto!o.$#E_n^ K&-]YU3]Ey\M>˫(aHp*;f,)fe^6=fjAW%!//7WףNG4BX&o6UY$MHj-:z*^5sO^W+2s45+wsw𲨲;k{#GwMU*C0 /->z36`gS\')ED(#-?CSoϰo~HE(UޚKXBCH?(-}`b y k&A>#Ѽ0M 3" TBDJ x PȆEPwŤin+.$/ERNZӊm "cޖͽ|=(ANH ̠BR;ȴm/~"~8QܖF3c֍߼ w@Ǡ 37@ d96@7Yԓ_QZqCm~=;Ky,-mc#w> stream xYrF}W`}Q-TlLMJ9nܢD}sdUƲЌf)άdĺ.˃޽%3ƈSgJd*2y{p<,[)Fk 䦋 fg?L*Jlϔ"B X^niOyy4+J5[C$}۸cD }6r(,c~g'VgG"c\#3`.Ȝ__5γ1dch4M\m1G,>Hytyn2܅0rW6b`u'|&AF/_| o.Dh} \WE}u wjy=' /^MN߿; Bx3 <"^B2Gd^֋jixXZ!čp'"Peؔ1 ij#Ja&Z2r s@.MK.Mф7]ѪAYqc)mB" $8C]ԸL\F [cf`ڝ6Teh;{klKn=tեB<&,}8j'~)T }Um 7;U!u@+~sz1y_ohm9 b]W9bouxX*?LuD#fmyyHlyrp0UpwqvqCFci~>R,/wE-sIqK$8A8s8 SS&H{tǐ7H>9gu?jriGQn"'] Z%oy:i3.'1MD.&;铫*3@;1$A.Mx G5 Ӄ=L =. fhL:HB P{Ԥש0 Գ]%‹7Bq׳]u(@&?|)C=z/Hlv Aa#@?1JDec,XoSay}} $d0.oDtoRf٩z'$e;Enڏ|5\-bQ5n-(MJtzn'$@ϟe$a%eh_+ 5 KNfC7{$0}CsjarÑgC{ZQ{z؃ȁi4$S_o4߄@sYB瞌YyUeN-/'(_ M3΁sNkɄ{iIFQ |8vx=iԻrrX@)ͦB1,NeQW+m#ɿ|\.ó4u5-f[: \L7uǞG lr]-ԑj]j UPy ߥ lLFc%әȯC=ெOYw"nڊa endstream endobj 2731 0 obj << /Length 1530 /Filter /FlateDecode >> stream xڽX[s8~3U]˰3@&.0;&QZ:q%'v°4uttwT\$x~8 GT@$(u< V.aߧs̖dqE6$("ZNGggHs$ 'v}8XYKT\1ŒSL,sb>8;hʹ'YFNӨRRCl E}2`1(%{"{{N_&'#xrA8Tf5\Ns$inZ{Of=bml>Ւ D;_DHp|1~9os*$pcM;ڹ`17cp~<#}g#& $nu2WX InRGLRq&ݐn6eanUj)gYvR5"!|'a~"ɭZ?yI#tD<Ncx+tS#mۥSF 8mY F}j k+#R;?\@}.0gPq!hiK".߁|'|{`~ Pba>Z1JT;.*:Y;R?\'W͇hl8F,.ow_SCWbf32O_uU{7rySop`!Dh̰f̣"D.3 3Ǹ#ot]-reAPgz=bie4Pd~miXm}E Qakxa4vav`C m[yѦhNF+Dmz)02MN %rxɈswT{ROUB-,[g=',D]XA}qQؐXxq$Wx70!!QO !]q& J@?Pu=sAf?`0)uD!;[0*a|ߣ}c^z2牶E'jXND\WV+D_{.vP 0) +CzH|"n2>݌ DֱYX~m1VE0CT]5K#ICE 0HB{-II @PORomPDdo2-X@.YO ;2N e!3Qx`޻ըn|aԃ+}X8jw!K'[ lT|Yw6zSE d`z}u^ 0 ,f0h{?w%x7s})OSHpqA0^,:&Mͳ0o~20/kݍ9|^4T@}8WiҶ`HpwA- endstream endobj 2735 0 obj << /Length 1797 /Filter /FlateDecode >> stream xڽXKs6WHM,qڙiZJm#A'R]HLAjA,X,@&p:bD'Ae~ѹH"%@@ JVeSg%{66(=l;9lܡrNL<=&QMgOg7˫v{sEhUS4XJM]5 jsoqCFH^96r 쇺J͢V rм s)e˅f.4LnfuUtxMjkwdLPb$C&R0PJ`b;u/N§&!^6e( _"i ^E[PH1XqD wxI+ H0>Up ,l}3Nb-V鑄Az1I=pdʿ'z0N@yuڷU 1@oN(̹Nr+s };4Enr~rz}qEN}Ŝ$I {ȴ;$O:\<+RFk/Ê㐄ӼzYVr^rEuo-<TF ^NRO- 3ڴ9zעܮӪ=#a޶93~(m3:5&r˷+£I,^b.˅UpSjˊyw SEn,\|;|ҏt,)&jLEٮU&ӻ͆.5O;qF]L;}5?ӝ'li84߸cl|uʾCζ4x(]HCVA=kGg]N2@܅/.'ӫ?ƀ\p2%0 %8eԮu޸_.}Lۮx2wZM^g7y6j>0b|k:ʂW|!gS8(lN4 fwh0`-Zusy0"DɎbbH ='mqmF{49_|g#ZoߌNO~9'ߞh5eQzKj̵K+vhY&NVfEmOXwȝUtղYŸldPҽ p4oWv!B#xC2ԫ3VP@77+Se3D#0v; }MnhrSC@+% ga4I D#S|DfL #x[yfL~ʈR噷z> .oC"WA:e7Qp9РC}\Ezb?`v/Edϧ[Ko =TNPۖ*gn#rϝV9nсD%YSUh Xd E< 1ḍ#T?/Y-Ϙ1$S?Zc d\toUn3R~5#$\ӷ No/ .V@)GA(_Y0M @f*Ix! n}fz0HR=rW|'*+rEKL] endstream endobj 2739 0 obj << /Length 1446 /Filter /FlateDecode >> stream xڽXKs6W 7jbxgrp;Uة%wHTIq.]$Eʐ<AaoB!}DA2iAPnwع7LN.FDMH18R 4AR L`S]`0|0`",,8/ν3a/7VS.L^ ư4y#S*rF'2z6$R))R )y褈) u" lUB>U`< jZR[a⵩ЭF$)1шHFBB.-A ;^ycu)Ng:Ðc!'{}GB=]h?^B >Jx=O3}xQY")c)|\4gFX;0QU).A!snJ^nQ.Ou.2yLXa 黰>RNj鋁CQG'B˫6:yuXQK4M[b1u|pFjsCBpjkCz ]LQd;EL,H`.B4]}D 6"؂C]!Ia=}iȐP(S8D\AHKknY Kq覐)^wS'5B4֢7ƣ+wt~'7V?1N.CknCˮQ]d繉K;^H&u,ݒjg+*>0@m`0ł[*٤Ϛ<7=Z:_]c4W-f]g7>0F_,Dt8Dٔ;5'%HZ0 agy V΍qɧƽ_&Ks R yD2"h1]M.n*v>aʚ;=(#~]}\NI|(ݜW_aF{7YI˺z8[8IKsg}Uu3uܣul4O'ч SX&(auqb3`kWztV|fr{#.!TD[ޜp1U v06p1ITuf6C!ل x-!30(kĮ:6jSe3skgO3I.R6va*K i}0/ Nuሰ@TgXS@x>#яpm SWitӾ68Y], XLKsG5#(7`Ö&$ eGfV3mazHn-<)+?}SzZf.+>=Xte4yNk37!kQq(Jj endstream endobj 2743 0 obj << /Length 1440 /Filter /FlateDecode >> stream xXnF}W[IZ{S7SJ"P%"2P;%)ZJz}̑)#^|JˋwW뱻h'~[!Ml# I Gk9eW\TG4"JԖZYHc{^#2M}s,-kVfɴXQ*ӧP8IIsݫN6P+0JMOPW"2Xix@4=Z\zc#VhoٚZbNaطS.Q0O3~N{dEW4Y:4Ͼsy)d*,co960F,<8Xr632?.|nkL=o8_.D n!A:uSXjO{hf_4~i8ԾF.: SȎ'9٭Cee3\s⧓0`K}@0VSzZ(&!u3_(Z1 5սh<*t@51>er:A^!J, 8-%$3_YRWg4:g>#v쟪AE̱QbIy`e4plVzX1vn,!rXX;^I6/}ʿcܾ.)7E΃Pkf̎}k3aMU  K"4f`6:n>8l2v T92lȫ|5?]T/HBHAFx %._vu;8D¶o^³ćKt :rM6T)$TA=@N endstream endobj 2747 0 obj << /Length 1621 /Filter /FlateDecode >> stream xXMs6WHML:؉iJg4f$J!ؾw%R"'M3=$\..v7 |< d* WIcFtE0=g4>8:qIx((Aq0oCE8壈1.f9+b %?WUrV"I#Ӕ8:I(Ii "ڸx9><iOώqg'EUqF$Kfu]/VR=F_ûa>ݸD_Y;^z38R/gü$"YSxlV뢶ϋ].ʪm3_VPuwD "cn4ni2V@[]d3 ۥs:YVUk'Ym՜s:1sˋb:-`^+ۙzvuzyz|VzrEhOYem.4>nC/8Lf_p;.θm.쪃f2)Ëiz;*\ԓ , aU'MQŧ9;AH` Ce:P$U]N30i7Rh&f\!"JKO*y' ߺ ByPp,;:'!b$u' ׀%$[3LSsDv/tm?CEdQ*ށ1r0>|TUI۞οI\Y{9"! S,NP~G"6ԞT`AO lLx,ro;0Z Ydg^//IG^sqc"i<'<$IOJntԄM ; UP}~|⡈^~\BK)0L3#\E MWUޖʽ-j/Jp'BM6x@`l c;T]ZtƉ)鑷J&9g,pcלBee>_{9MIIXY36l3up_boɇ,w.nv);*p :.~v`U>㑧ǓSa{PY؆׼iwqԤPA4(o`0#ܭ2 P1I0{1{xfeَiۍMH/û~6 n3/ڤ9m>?d QHj,5b|YB+SNJya?M9qKM[, nWś|QE.x51v s[/rY/]9ڵFO:֕w(цE@N\{3aw 'A{{faGH$Zl"TmJd3sd;ZLKlF*.N.OXVx>-+,.$L9(&׺Hzp646}gmV,bŶҺJ1i'˺u {CZ*l" rD(h`ouy endstream endobj 2751 0 obj << /Length 1675 /Filter /FlateDecode >> stream xXYs6~@ߨ>Ƀ؉ӉJ$a$bGW)9_ۻ @!N<<{}풢+Dѫ"HZVECý|{uwp"[) fHs7@2.Lf-ΧޛH?"*6DT5lO>|"h 5kt&\]^TpVb8tG"|Ra+ ٪^'QY%g(Xtc՞ӳIL{3:'6IF]j*Hrc7qe>'@JLOjx=/4</5U7k5oi콻0tyYD0B+o~}Y-(BVvg1lW)Bǖ5KPSSDK;XBcqe|S{hV{MȧdWMfaV\"btWr,E(,&r^$H0ظA*T:i6bg)c(U}*]?ro; or4tOf9r¡Ivё4s_hlke^AF1Pr|A; ĠXd}շ63&Nb!?Hf'Nc!f"ehS-3LfHdՋ-G8x 0oI5fQ\qOm;heʢǷ9 < d00n~̗JdS${bdKׇ5F5qt%l2LT%pZ&Խ _.(PX2Tipc/ endstream endobj 2756 0 obj << /Length 1781 /Filter /FlateDecode >> stream xXKs6W7jxNNN;IHD"%>b.H5{ $..@ˀ/V{82 'HA{×KcBP, &d Ń,JDq4BEXWi>MN&`$ Han&J8]}|< 0b "3ypg`4oFc(r ]m|XE(1SƔ23g9'o&Gg#U|sy#W&DyH:C`4 )Ǽhi}aZi5jT I>ows*hÍvv' 8˟8~qt;$ ؉uSxyWi[Ve3ӥ#EYHR$@ʰgY~TUZFl&eYO7"10$xl9팇/2wt ;Zh N!C!S4/D@.>1z)l( z!jӥJ>sDUEn)=껜.5(u뇦 BEbD[? :gVx ".:{| Dgt kSE"pM\HQPNmR+1V:Oؿ>"G (G)9\,@(oЕMJ` L%ģ?N΁<-s:9=9x,6vD1Vk?Ej fC]ѻʸVUxȶie3Oo7]?xwU5ˢZQw 5A]"jXM>j,WY-kn pg' dWާm"Os+~:Fa3ApIE'~c?_#G1GvԾ6烎`W [1ɱFn[dZ4Uо͏1"<vx,Yd՗u( !J0Eu_  ;ag6%\ S0RHGG:NO^p ?>*oj|$F7dfLGDHjÈ1Ы$WUh(钐lk&c1qh(s$0ttx`z5Y ؕ.<+ F|E' CtBc `Wk)")m116NjI‰ vRo!~h{fidZxw#v1+&?:?'}{pF]]=D 8@ϛԾ/.6͉!{ R_8b!1j{M?,g>!t|=kwNYKZцK8GܲrpW3 -Jo" MgueuחӺ(K]]7DDdR5 J_Z4Pz˭~_Ë?4|Y&e+孖ij;<PS`@f6>Ӽj=ǎd^r*L~c0JfIA=0dmfA{ʃ]v3]cM}򢶃D]N‡(ݪYM؝'Ue6C[.#&_'l{VFk߅e endstream endobj 2760 0 obj << /Length 1238 /Filter /FlateDecode >> stream xڽWs6_G%[[\ҙ=8 2'\_]KK;}iwkaۅkC|D_+ Xae~q9aE3Fyn =ao3 t mB(TBC Y٨X\Ws9y~DE\'vc&\X[Ǐa 4܌PkaNHC˦ZS<PËHI%Fr=l56#Gl?vCoߔ}ļwWZF 74l[VCA}2Hq#U*QAƯq/y?K6 {[{kw#Ejcݓ˛nF@+#A̞x S컡֋Dp@ ݨՌHiIZ/)z 9J@MH| i_TZ=n'ɣt5b28E \LЩ8vVfq/*ɂg7_)=-Aj&7qVHWPa r2f8R_ڗfAtU"+0 {H݄0ǃךKaaq:It@URSгsL2m3w?yPω!ۜ5;4]bڶp  aLYd芍tZ*+(`NWS/=mV 9ayX?Π b:|ԵHmvc1u]ۇV^1 {~PVCǃB*,*+k΁»>bs:=gti otw僺ȲB=!H\?N endstream endobj 2764 0 obj << /Length 1433 /Filter /FlateDecode >> stream xڽ]o6=B`"Ao]d鰶CElQTZNl)C$yw}8[8W\Nċا,q҈Q).pW~]_TW8rqLQ,$@OOI`W SȌ$+pzR+DX2X2R$V7ME//ggME*8BrYzQPV6PRf ~4͡ }aEq%QN՘jiѻ\՛*D;Q4u<*bgo߯ފS݌1͋?`O=Zuܷ #)"]]i֪:n&".كَq, +e pX}>AiOI:pme-e_Dީ% (͡%75ti˧<á@?8)14 )Mf;lzd2K5DNUWBzZd~ uO5t#>xm\A Řو n}93dߏ32&mld28C} yɠGoՇNxC 츌]EEH)#Qfp1C3,T,7v br^ bm6 Lڷ'|b\O{ g(KPE`y?(?+Ճuii > T1N yY4srf_+C"xmopq"\84.Ӗ8> stream xڽWKs6WHuD߾%:ͫәN-$wAhQN{ }~W^DYH;iQ9:ůe^<_ϖ$u2?N^9 qGQ:y|rY;n-l]jB4ek-3.xh;#+~ bn Z+EYlrh i],$oF3/27Z@=(t@THzQԵZnw4T{ QH +dž}]IsuZu88 I*{1| qV͉8qY1j*iAjQ++sJE \UL2UgoWy̡,țAfۭ 2ǘ{$Q+&aR‰ARU" U!ԯS SJIJHbU'&Vbm 'H"i|,,CY9 QYv~NE?_7_'-|\ u8ꮄ{D"mq_R5Җ=~crW;*Z(s/ă(;)x3<20/Z6C ]01`:`.9FU$L( QGκwJ؇Q TukgsQ`("fDFqpjқ1vUK@.DǸXSd5O}HUo}!q[]+x/YK56(K۱v.ݔ'o?gj^sXȏZ:D t)D|S( /ބIϔ>|̟ŒR,I7.ti!AڧK@R`U t}mwkb;oLlPJ|ׁaŞ%7mU1jm3O[oPm;fSrQg4yy7j ӛR` +8`&}ctC\ʹ(gTBjcWcY;cd?6j>Z {zIhڱŦ L%."զLen*ྗ`Pš%)YCnOϦޏnFqL>No5su^8v~|X]\ƽ<7S-~R $6UsݫMz(SbԾ$H1J"1U9H1pċ.leP̱~#LӜ %OhN8As^x 5 G D9iy ]O$a^hN?\sr:qӍHX(N.p!AODh$1 x;/ endstream endobj 2772 0 obj << /Length 930 /Filter /FlateDecode >> stream xVr6}W`$xȩiJLf:ihR8&A tFm,p΂E',QQFh; fv0wΧx &%39twMstriۤVMrV1J; $Z$6l,UC7_݅꜅9cSnZlnˇxzsm6p(27DzuaBN(3#t::J-uGE'3B3d˝AωF~nÔpB u`Ύ{6, 뺎(9`$ÕښQ36"nG4ǜX &^n+V}DfsJa,Fw"zL1("2nOݪy.@PT!Jq9Ӱ?~Hf PR4xʦjT]^-$Buxb9 [z/ċ4t͏eGqPZ=: EU d7БCzx_@}  endstream endobj 2776 0 obj << /Length 2926 /Filter /FlateDecode >> stream xڽZYwG~W|bUj_Cb 93'AXiɀ|[8yz)}-B?=/xaak|(x_xsw?ѷϤ/gQ\/,x]\LFg|)'chs]҅UdMz9~t^-&j>3 ]Xɸv1'` !D#ߧ# ə6Q s#Fsɀ{t1PSvW3si'ti9`!;x9 39.a܈BZ/=c#7Fs ns?gq=(7rjLB(LmU2`<\"uj,]-1g2b오ӑf)$wR߅i,-7VA^c{_;=Egi9\Џʷ\Y$ڬ^c3b w;۶5ƵCxPJ0-ӱr:`vy9y9MO6pU-VN$lb#É] B Õk5So"B^\̪qs-x̀+; ">j( S>,2' 8#HMa&td0p/{D}NBTpN+f`m!Rd:Z} b@u^ł_;z쒬WY@Vvգ(7( rҀ} y G΋)^OpK͋s%c q@;ۺgh瞡o`yR&{ Uk79P99 RS~W^6,jg&4;QNh# {b7Do2(z+vO@XcjJD ]vQРřTmd؜ʻVfH6x Ս6|/J.R^rY1VuluE#'̬|麬ʬH&6^ČJڌ*ݴe"=v}F7.Qi>m:_(9l5z9Ca- ЊA{PYYT2hؠv+[W*wAUT\S%=a3VKH{;@boR ;V-ٺC7ֽ<%Gﳥ)\dO F7'1㚟K*TK!PkmlpZJ{kr3ܲ՜GvrCrtq]C6J- nsV"udWLq[DrwY#V~Ѧf/VwYfHѺ차bˡ";cC\OkQG<\-nbZ-]u|1[NNj҉_j 6FO j6vmbaE'4 {d90U^-Wբ!̖|]Vhf Wz)ȣ ;-CUwȡM9R${ I1TLJ [MDsԘfN4/ߋQh4mCd~hٞ˂Nf@լm\EO⪧)n)l,Pf!sn ;dCKvx$ꛜV)%ڣcϟ_6k-ܓU]~īF&O?r3JQ#bU!Q,3uY46L(!5͉ݏ5?p /; 3řWFHsC_E暬=+ _0me5EpZҪp2M<)Zd)/tƍ@%KY!bHzt^d^գQ̖e6-Zf6"쑨C odh<^&J~~~~%_ i>cͦa!n4#hҥ+ȳjDjA<=:CwNuzMZ4md{v6l]y洤)9:_n֧dy;zl}' ~TMG:h;mgr;M'*-D`и͟'I[{Ts,D궺,38:p;Nq@ l71@5tnRƀj#%NoN]u:]y_z_/>qnÛ~y ϿJQI=n M$d{]+BfrS^DM;x>4 )YU/tZ h|এ1T} cOiQt}wwA$cKkK.j&f.fM?bMMH-~w )ESI.$G?yz~ lq5.ͩmcgl]Z?16_=!i>aosZ5zHmu3ɖV \ѯݽ۠z|F@ [w(QŝLLKo&QڶoV%ǥjۿmOl >Nq}b8Eb~ɶ3KE!(qal`ANv6YJ+ X FʎZ &;Lu8G1O#:=\ Gjz2 got}2ݍJ8fC5N55Vmt8Vjz@EdhlgʉlǔFk<0rGcvb o1@,p"{ ~eLsL H">H PkdJcvBb#?wi7oa;%d,7j~mIFzG`Cg#1$hhv&1gU"}"=oA#;{uCf b;?PrE~8dǃ57ꏻ<1So͖Vt!-VAT endstream endobj 2781 0 obj << /Length 2820 /Filter /FlateDecode >> stream xڽZ[{6}#d؍6Ime/_Z-%$U{)Bl% `p `,QA'WiIeyPxsw?}59zqγQ,JQ`2 ~ y9 .U]V⎞Dx#]a:Ec]< rirOSΜ1bto~V˲6m1my1vh=7c\c(MrVj&UT?_LX7o>!hT7^,JXH!8ah,% 'Fc 0c&Dve" .V ,V5E[WӲ1o4uWb93Vu;pD(2vTF/&{,Zmm8YH;;${G,PQNaPe, Hʌµ'<GJvWNI\a[RE)$ 3'G)6x0jSqU{EgDY ZAy8& ,0掰UƎ 0~em g;, {b tb #."`Ú+^V548t̙v~l&pI1k ~ K%Q*/bN §]2]C3\u4hxgx2HW k[c$fɖĔi?<Nh'[zz(ss pgpd jMH^rKcyȈ P~^D:2B;KVdO-$oqBHKS V.䎱.`4¥0_EBɁPKCMX$ƻa 놪 ?VЫj4X\ilY$@$= OwՕ+(iK%Hg{kX>Z;$ߒǦZ%&pbQyZ׫LVdP'7]iLmoi%2W?Y'Hm9@CӫKsLSZ"Rڜ^ؤi[JTyŲ1[ H XVԳ7K߿n j>@;Չ1 O˟ cJtMNF{*B>O6icrj Lݏ~}d>y4ht!97X}-,ilP2Hgv#Ӿ,M?pIU%m+ )= EZ$ԵH"SoNJ0;szB=2K%Fzݩq%2MgWU;׬r)9M(MWUl3lG]벱eS~7wLD^ `˅Ֆ *:k}K]篕mY*5c2q}vx{2t'2H#qbe=ºlIlMh*iBΞ!g y¹3@ +Ig@`#g{U"EӊS@ovԾi4կG*gOzrpp[i9 NI$ћ=^~Uu SfﰴKh6ʹք\X ݭQ'.otFvE|u궠NMb^n)X\۫272)Ueq8W$UtsfՖ 7e ㌎Z{Ee3'Z )nrș+,]nLMZt>pT&EđVU|RU|Q0?-*}CkWה6F>RٗQ>Hͧ"l,{@-ݣ\5By.k[X'UYwZv[͆Y]Rì]v5[xL``O8'&v+ {FfHm@HswwyLj#2}>;f oSS͖"#“˓`շG;tcЈtDRʠ7Èղ-oz_Tc;qxhIp} `(1uzZM7w&,55bj<[+Xlwk‘N:tlz oMPeyϞ'Jg%7Wfx6R7-Q$5ᮖs:}/[c#)^k'ȟK OFL^rqmP4; ss(i'Q@fkұA endstream endobj 2785 0 obj << /Length 1194 /Filter /FlateDecode >> stream xWMo8W(6CR>rKS6NEӃ,ӎYr))iwF,+UIÞHGo{6ss>|;ud$ |'9vt&r NJmnd^W},@z j5F9x&B..nFqBTL(UYE=b`&sZ(^ ́ 6@Դyw Pa PdRPsÇ2sRDАx0-^@ j>Ԣaxx!ܰ!V;&eo,f0g\+l滢Lȍ.n s1xMs⦕z9c!&P r mDJB)Ӳ">kIMX^4OGĞl@?246q&inhފ~iU5lսqo! 0Ld%|b>cX^ kyBRk~nʈ N9H[;.A\P&/_3P1#<,g,@{5VJDvZ}yUf2۹BeoY9,M&ڗ,![I[q|RdU^eUdJyz M=W] VIEgfU&]BC{Dz\ݡ3؇恸I0Z|.|6ͷ-ph,PPMq9.ъj݌ReB#=N<{EVcjHDM0.r%,#V8 j3D6t9ipj~ml';كFkwͤjDKύkX:݁Nv5&] Zbh ۶&d}S2 %e V,}o:_hm{i[B+[?9눛>|-s%[ ,t|-0_n` endstream endobj 2789 0 obj << /Length 2196 /Filter /FlateDecode >> stream xY[s6}ࣴ\Lc{ݝ&Y[i)DiIv\(4T;}1AÇ `G4L%*$ <_v홌H*%@@ Jdӛ"1.GwcFl\7P(9J%ZoYnϊenJJdRHӟޞ%q(Iir4F]l'wz#ob"*9#]o)J vf ŧ `sEh?mͶaDQf}+=1X>k߿R2o`~AamnNgYiPٗeuRJo "[ʹe@DQ fG&9V?rYٺ:{ųHhe I5" Iy|c+=j/0|8|/R5@FXzԉ~W*mVnB^yJMųߘX&dO|ۍIdБ"(ˆ07 c~FEm? wcze7c6~uhn?2P0o=Im'mKصRcB8X/{u݁TwpB)F‚`++#K>Žʧ =mYJD&N%ھ( 1a.d0[ n уDp{#Rٗ2,}, ӆ,]k"n8nx*ߦet6j@B,|dr۳yÎ7_`A:Byx7Ds(ORw)=D+F/ @4vVsWO#* .Ӂ ɒ*agJcU#ULۋ&Reliݰ2 ttQf̲ڍs~ʣֱ0}d L8~bV|zm/z T2(k4nK;68-eV@E_.Pi~*N%Iߍ7m14#=?Ck뢜-7})=!:w~HGIsb#Qq6S&WowOv {&hD-zR.6ls-Wn1h;E8_N[haZoV_o?}e2=/K/~*-A}N ´>}GY+"ϪV;mCO(Rs=8zT)!_y0>>0$kn1C-{!N[]=~R$bs9\7rNTt:Idxd0B5/ TDYӣߗ endstream endobj 2703 0 obj << /Type /ObjStm /N 100 /First 985 /Length 1423 /Filter /FlateDecode >> stream xZMo7 WJ(ȡ |+9 rEQ GNٱ2c;qGz8&bHkV C.QEu` A($kөA `Tr C0S؇8Z$dZprnAG3~&7JHm]RuVe 9&@T9&A3t  &aC\>((ЃS &+{āRqorQ+'Kjit9j"Ml8& PBs&G$f` `;,@&I`>vI]pAblCsd>Prp23H]iuG@) J-XR4G 5XfsW99V` ] KOe>KP >BF K"P Ez,c).YB,9$nERjnz,"XTgkI<#kF)3zv~~{^#+e((gN*&˓xq*Et=ʅ 1L)ɭ/2 )uW_@!{XaK7\܎._cpؽxUxv/_ݫu~gv?cW|kQ^?]~nzl~۟.1xA{F\wq_cGkY;=\am5)Πoѯu!&_}lVz.7sq;¶0ݯ%Czdzz {{H ]Z&zl&NStsɓf\2㘎js>;x4wTeU-l[z&f[uc&,LA)b~[*/j ?n8$SRDEO JI1D)A y^D'߼oC :CZN f}]6^ER>T;%`:&fb8-UӁ"~{q:í$iAt&=I4|UNf :T.d8PJQămk-!DS8hTll~t&MgNĶ6x'u^1 y“i )#|HݕΜnmL2)uJW*4YY i9+q3e8\biҜW$ʓߡnGtf+߸ y`+Cu[\ytqBX͓ʹnKGtLZ8kK\.Q뙙92I(NzgNl{4l18 endstream endobj 2794 0 obj << /Length 2259 /Filter /FlateDecode >> stream xZw_}C'f߻c=Mrm=} Hrd7}gY@V vt f73ěz{s{@TIOst792laxj`xÉFBso8gqR&!#d, ӞBGRSP(DJ4(ҚU\n-A[1ɼg9j攌'd3qdH ]Qf]Ll@7ڏGEn:ⱽԬ/֫$+eQ 1-Sj$Y-w.u$35"4?L`A ?K0bT.EMJ(ɋ¾"ybb{]/ANJd!pq#V#YM &„zaH, 0Qb\!*hN6-?wbileU,8RI緳:%'D"MH%!]YhDs{sFdgNC)xW> >[p:5?بX 0$DF(CKwjDi;.I#\N'h-7HTi'KQ-Tv:gzY~~$.t8_@4GZ Ƣ ]eS-Rb] dT@mO smE2iOaYat Ao⒤)KWQa ;}I2u;uqSHo7/vȬɵ- *Ϝڠj-L8XROdIt+Ml qRz‚1W7w׿2o5I[-J2Eٴ{Y^f&x\:"ܹZ{z\!{?7  ܻ̄o j 4 CjWk~L8g?LYYn|d11 $ĕݰbj_^\_4R_ *CyM[3V^U#=NSrӔmU$͝j2|!@7~v}hst)u \(U8<*#]b]\}ZGlmh $;MU<ݝ iwZ흶N#*=n-q @d ?UX~k欲K~s)?,FbZQQ>۫:ۼl}(Ce\*8}yZVy scd1 ܛnq6/n%ÖhLgvAL\NY:K-j7fʝ){*4a:s\ Rwl @c5خD dPEw"}3gx tBFCQ$L ]tMɌade0lG,a#"e 抆)G ˭7ncudNBȡ5`ةрp 0nAw(\Pv;@=0.qۍ } ?%&n7U70|펦P$ &/jeB5!"iBۮ4ӿ숸sd?HWz\]ԕWWtmcؖ{꒣>$qoQA? Cn~WÅ0gI998ҸG.8_1S\➏uSQ%0#SVwO1R3oA3U/rNoل,`XC9:"DQ]9C]vQ;HkP4V@P֥e"IHW/UYn[wÎDJB+)r_;Id_;\7K4GUxگATmtX_r6?6Խt0sy.:#1K%=:f=9"ƾ Ч0H3xpZa;|Rxs0@滽Y_l^h>/Iwk)TRޫ9wX`p%tjGId%|YKP 5hh Y+Ed4Z%V'"9=m ]_w0 ڲ͡93}grc=[հ*fC`Y endstream endobj 2798 0 obj << /Length 1709 /Filter /FlateDecode >> stream xڵXr6}W𑚱`Aә:\j)t<$#š8$*Lf[;YEE'OhD#*HF' 篋s"FIJS-֑1pAJdXEof;hdml\Uݝ۔(?-`];~܈CSrNSWg/_/c2*_M_=~>[̮P׌yŰ/ܴyVMQl>~Sŵ~Ӹ†eІp+u>x:e(zCΡȡ"6n|8;OL<͟\]Z\|!BǕmںRҸ~gi,50ͨ!tP1K0(_n O xW#lVw7ޅ۬޴PWTlM| ׳#1Nذwc9$Uq ť94$iyW.7zC? IiƈI,N޾ ^B/ eD T$$h큽*5Y>q)"A^LZKvn:+lӵ!*|޸dJH~Pdcl97X;XW5˦r_ ]$a>M[,[W % ߡk"*/Q"s|5B: _CgApr뵹Uh8CCh:kP1D#vtRAC&m!=L"ֻ]"rxywlP8 =62Q&=* HAK[^ɾ6JH&M¹Ϊ]cz˼jk3ܟ"R$~ A@$c,8Bƕ6m4lۭ9p]:i.IhmDSj㸰]65#Ag|7:[9paʿVtvsLʖ[\͖(vwYSc%`Wk`^a Į24傣 01܎T0GWPiDWLW_;J[Ⱥ,R@юňRJO(Y5߸p|e1מ]F rBL+!&IÌC! w.2[ Gfl+K e$@T tK#0XO/;#H%F@O fq!8Um2K7DK}5)9|y2z#$A΁ө]# =|Wc"U{ZKL c"ٵUA "<5"zĮGJ #jPES95; S3p86LjxCBq)(扵R,?;(߯,)8_1A(ͫ 07qRr8`pv $>|HxPbT^ x@: WX1LȕW!xhOԏЖ`YgH/v~o7//H.K?ostM~ڭi)F8IG!8Ha[H٥ONzd~&m:>iqsx #m]]J>Ya\?lgc෩aI|k@~a: a endstream endobj 2802 0 obj << /Length 1002 /Filter /FlateDecode >> stream xWKs6WV o!U$Un7N'΁ 3)3]-:t6Lv~+nDA2iDh3z ;[؛)]̤@HJ iN4k!И1)e2\ekCł$\H**~> i2KB&" NÏ(D HDV`#t&.g`2t0b-kјjlHg~|`|to/xpSwjwzdŐCJ_NWxqҟa)\xou"8Z?mZ}(UTYr=۳Zؕ6mO )^ Ҵٷb{ٹOZ'oqbot1~y*! $;Y<ЉAFK.+*^~;mL*?Us&F#ǃ_^{49JR))t75_!9!9Za)I,z$<%VV>d+zFGt|9gnb=Lman ԓ}@TE M_C 8$=^'Uz@!y ,_E!N$&?RHRhw1I~7j?ԳI=J{B̛'!J.@֖'reέ5JePF",8Rp o;,h+sNcKlȑ10FKμ}6liIo\tc[` '@XguZك@ɻzcoIف 6h&'NL.O^}.1 Տ7u &=3z {&nI/q ڃF F>hH}g[}+BB2hcU.z]rޔȍ! D+Bw7M=̣Fb:3xı,G†8Vk4<*, endstream endobj 2807 0 obj << /Length 703 /Filter /FlateDecode >> stream xVMo@WOv-MpTSTFeAܪTawgf̾ylm@A2)iAP} c)8hC,@QSG)c*-sJ:7Dy]u:r=IH?Fñ%8 5WqM(]͝ci$cfX1<o3mwU]="wsy$_G"mvB$K'WpzJ\J9dz!t@@LcLȚ%jw˪]VeVeim{{NlrM#3b0Iu¦p~B: cE]V[\$G]z=,6v. bB< ǵlpٽ=cxgwMm SIV5sΝ8Ű"tw~-sw~է>TCo%,<;X 'h::Ҹj6"z83#.zQ#?B5Rho J`Z9ʑ A^0aP kհ,N0p<@0,/3b~q.̼Iʜ&٦E9׊~k?,fJ,Q/c8^ep1 endstream endobj 2811 0 obj << /Length 903 /Filter /FlateDecode >> stream xV]sF}ׯG~,͵%Wr$N' D-U{EQt:ޅ˹~%v}@A">a Of n_?Ń88G! }q$f,r=Jpvҙ*oDYYWGj] uw0@DԄ" ?p:rC\,tW/F=FX2<H4H*k &yyQ$?zǙqm)t)?}~˧J.=0X|z-a_L10 "t\)!tm[JPild[K([RUN=a~w\gάrR[|B?gPb Νdzx2u%:KmN?3qf? /aI;u3ͭN 2%kԫCdt1 Fo$8Z_s 9LӮZ# ļ_9>ϚɱfۘaK2g zc70\ ljkW1N˧A:&0S:0EAGFbbWҽR!J$@VT_nE`KJI  endstream endobj 2815 0 obj << /Length 768 /Filter /FlateDecode >> stream xUR0+tzXĎ& ,LQڿud7 6L+=^QB>"Hh/(V-{aek'OHxR`(X"!,v|82IE`e sD*> stream xWr6}W}fBwqIm5M@K)%&$ iQb:j;X p8=XSt(zu d"1 AIPr k~_GOOB$7H39.t~rycz6x6~z6iL?O ͛I, r?^L}h#'0Xiv-lv.D*XthEv]<*vd>*{G\k,ϜG8ٻt{I=[38(tكE`/f0gX id N[OqK /{쟇+w{/`Wc#])~|9xԪRWٲi6?0JiL$$S0z9l79l.\e.=c`H+dt=#"7/ᇺ3)E E 14Z$h ӯRށVHp%C͹ڒQ)Y- {B3.&1p+=y>-CMB:ф Sj"^<9s2=,k!l6uiuCֳv$4^w/i©jʺͣ}RfӦmlA_Xvvh@XEY_z(;U 4*kbw+땨""ӯjfɘ=)ѣ˫\%C:saF1f뢩N{1B狶b=/ӀAMeI;O7 Jx(gm XwEvvEW{7 :.=Y{;q5 2E+=NgB1 /JlV G62{2^G}.UsB:G#=J%w_m 0iArΧۓ\ll)v5eێX2- v-o ]d7U7~u"MMQ+Q4-k'  CK cֈN"QFzl9VS p}j$Ҙ@~1hJګ?hvaf:cZ&=/ƼMfaE: ~%8 JCcD=4O05) ) 2QˑC%Vb ,:a͊`sWK8l2lp,:OQ(.cbtjl^2o};BLb^z;b  à2-3e䇏u2TaxRCAvxv@Gk'83z>x 5 H=Fo $wSk؀ endstream endobj 2823 0 obj << /Length 1218 /Filter /FlateDecode >> stream xW]S6}ϯ[ЇeIt Z`KB>Dou^Yrb2,)|tu׹ E/=Z`&SFA7_-|{ݸw0d Q5odHrJx>FsSPm M8 Ŕch: WHb-3 M9-JqTt.1SAQD5)u Lo v>"Xsbq$k`(NF37As<}ČC̒ d>C$&sHrCҁmzx b{%c%&"Zca63`߇(L LAbN1W,jn= M1>&UV,ݷehp]L 3c8IT3^'Y dt[,^Ux묚,„”Y[J_;Y*M<3wd`Ffze1ix TFϵH_GC8aP̊~9dtrqޏ9я'vv0Li D؄B !ޕ=2B{ntܴro0KȔB]Sy'f~`HhjTnlF0A+ZA+Au">1N(T9w2*Ըa0@ hnD 99.}ţ܎EQZ_CUҸmH:㝬nh0z?5/f$[Z;mT6&`293Fw6@x0:<0= r1fZN {"ӠAF3\eMWO2ˡ2'l93So)r+ PuXv4c8 _\C kt 3Hd7_W]It,2W ѹP3H$D ʨ-Z#Dk]Q 0m)9ƶ7M|6*SxS.a B7:[Tk4m'XɴsUKˊU()UYg p%mg/(?Z# Mmǥє j;%=t: V}>/٪*]88ɯ`>KL06c?%ٞK}7\~a9UĠU~=3h (l4LRt6A գ endstream endobj 2827 0 obj << /Length 1027 /Filter /FlateDecode >> stream xW[o6~ /DfOd.&C 8tduRj٪tE6`{.LQtGAB |IbP}WXYǠwv)=D VDQ#!,9z4`r!xuv=ACc5ҙ.RC(_'ygsg_aY[{ϤSVJ᢭{Ѣ˸=.R6 IaO]8.e1(DXa67\MA˴3S=nR]4 W~Q|}tVJ55i'װ29]YNo'3H/Ĺd\Or _i2=\2 7*4(!p!ޙs=EVqEcR@A{Ta wWQ>VV)r9kfPTUQ.pb>fS >q7}N(9V."m/DcB6{EBr][7xzܹٗ04&>jwSi+%UGPy;0ng Py=< pwewMġE.;sO_S_.][6+2hT]"P+^%N:Ag@ZHY+ 2~|T7EߛbP >O1UOmt蔂ʓ&G=c1ߔ #D|u\v1c9߅$Tw\RU^h,83)8 E +'TBw`x1W/.,,5EXW,}:NΞ $߇4[Z+L4ӥS_6A endstream endobj 2832 0 obj << /Length 1127 /Filter /FlateDecode >> stream xWmH#lf;{s̩{eoaU x쏿jT7%0W>Gs $|#Ƽ|Y'ݴ 'tnxF\8tf|6NOӇǏw֗Qa_h*Jzde08,bF#Y=`SnCz>BԷ0͔T8("XR'f婐Xڟ2JjkfU$,4Mҹ#<^mw {T" qכ(a)CPy&N z4}Z`rS=ӶںQBj[%P:F'Xhtb)$AC=bP*\{@_&eOڦ?rɡC*\pH>Aj)7,R!+s<+?7A^[+ eb8WЦ.Lcb/_1P9Ġ.^ Q13P:w B9zQCE |P(##؄ >@rNú.ۄ0N3*1#J,|#K0sNvȣ^ͮt]DܵBuY+TejrklMhbyM>}?MA@ڹ0,3!dXx2aՇl&<*^2Jl8q>T9vY0N\wQp}e3O $.mtPUMO FχD36?΀BHޕk.հ-^ϔbdtFT3n9Wt@1hw7R]Äׄ9N/9}k!bY-=W=tIm JqIJ/U)zfBMJ ktMu*5h0+x_:W@> stream xXn8}WQ,FRl&Y`-ӱYҲsEɶj5 A}m9:3c;v=1GDN0bG+gz^ntpxPMAA#&gjt~yq}}8<%Ѯ}D DžMdRweZz0`&+B/>2]N'fr&[6."Lk?χ~>]}iwO" i8Fk%K5|N/t. n{_ hpdcp i!(v篁3N(sWYF 3Ts`bI| BXLF<c9$FqU)()ߘI9w`ƭP^,<;7 Kp҉4SG d1\{SDx4&~LV@6]>\%Qbt28"M,_9DuŪLse>f }3%:G'?oq #Ve*)fd+ync@77bYlS5KZ$ҷq].I7gRe*ְܼwq0皾'Cݢ*I4,-gv̺uߘĄk \Jgv??V֕ҙzxg* ѭ\vefQR=,0Uz弥]Pf/]|kƦXŔ0fa@8&UjP@dUeGE+0EUjjvFtiҶ+vdJ澶6"S:y6"ܩn, kG7 X5a.D[7qkź5c*.fJ!SYL$qP=nk^r-@ܝ뱷S!(t'[ٓv|\i397> stream xڵXYs6~SaSMZJ;iv( 9H,]DVd}!q7`b֛NE-I =F*59 f0\zc$[Ép+гcy:q>/OCc1D~7)|L1L^Z(VzZ3khipj8G5ei(g}H-#Uv>1it<ͪiӬjF nBklAjp&yݘT2*tV-Rų}Za5PZ1Hgj2I,$.RעH3KnQIiڿ`|=# P[YP[ sߎ'YwZ`2ŷ'px8{ MsO!9}hcGH;[Z=gGMѶ:, &V}mރ79 u-]"֎'푎e: UF?22oYfAH=C m.""<&=i9ٴ-ѕ;>lY˚f{yN:*Mf8eOܪwRݙl 00*M-:xV`ӫ>`t+N9vznbp {|kX #jC#4ѕ7q$H͇'\m>N'j*"sˮ20Ψ.-0USWIon6/pp|Ћܾ#r -@@_'9}̓o!}ѧlˎ gd\z> stream xXr6}Wa\GN+)iPt)ʖ]EZL=gR4G}# afJ"Q -_n;:SQ 1MbHqt>OӣOS!:+O~Nq3I^ƒK2sd"8t}~]qfբx"-V~'d!XD#T E8{n㥛S 1Kw!f}z:\QBj i֦6?<b$m$sEnOaY瞴# x]@ncv;z %{CI䫢JիЎδl^۰޾NNǣ14Lab*Rt-|3#vrmYqHqZW]pcqmyއ5y6[|vw`Sð>'˙+Wn]ڤkyҮD8aaG }A{W=p`fjHteE^3p(^ScX%Ore%Eb`-=AfBJ74q!](?xhg;a4^%S8;2}uWem?w>=/"{l|P7BxtPr ̍FX`\ (ӋQXREiJ(eK# F1b6射F.l IDPPcfeØfM+o@eɚzCcYo ѡ7h^L^*Z?b4+U މ( endstream endobj 2848 0 obj << /Length 1264 /Filter /FlateDecode >> stream xXs8_G{}XBKnM۹ql<6g !}W qp\K;KK?g9"pO B9ӳWBP9u&SGPG0I|vPnc?0h80IS8; \^;P:t33Z B2/q.be\]x]qbsD8bC4Ġ8DtbRXͤ?xna4A@ HPt)A8`Vj}_2oH;)|w6[8l{]d{k(6494ϥ{ ^.?۬,hJμ. @ kE^ܫ]~,4+WvMUt0Ĺ0jf,EŃj*j/!pdIEmWҽP[bUW Qވ71(<*<;%NG(*@e˼TYFk}`~igR|ԤGֿChݾ{dx{sa|S0TYC>+HW*BhmM pVe5{xbZ׍}**YCw?$.ja3>ji[ gy`6\=tiVSt@,4;jCBAuD4Opdn9z,}XբrR>sifSro< N{q4sG݀ Nf&Zs߫R-w﵈i#KP:k}JJMYbK#DŹ!xFRՂs{rP %[1ZF?cq8܎n׃gяpڷ;ؿ^,r`Zc2@X Ǧ-(~oIFhE7 )t9avt7|v`Jf?o&<Ϙ_DVZO DIpH+0͇B IoI=F kk|($0Z. e颲җjNȠ>7}Bo iQ6H-I߅JB9 IyCQh 1pUt^T4.vݿ> stream xY[w6~ׯ`ިJC6mR[$E[<% REVM'$0w|3b]ĢhD#)uɈɢ*n?×;?GJFL)n##-(QFFi6քl0U0/fwT}ubEFn3 &%2Q)>L n 8Sa7r5ϝ ,>U\7!dO-|GlxN!nzwkB3c_j#YjKx][ te11dqkwcXfm}<\Kܤ%3Wj ԧQ&A R<$8Bg*d>-bjej\TSIH$ÉQ 1TDp_4X5;d5Hӻ]V%n{;I5*Hqfw iiZö*DQ#JQEX)(i\X:aQm7 IݴH%I w_(I葄7Cfކ4`ERmvMMeev<3ʢce-}+WnwHYz{G) X!@^mP pMGd""=Nj: w%!wtzWHb8.A4d߇\xG(2y*۬w|p%y{0a lVw"nr+L1-VQvpnH!+5.^Vv5ܽj*( l!;-׹q@le>poJ106xbR,%v>֕_V`+Xȹ",dc~Y ̚0?S+b3 [Fs ,QJ`$m BhD7> ZOBd%V5'efS¥D#w/9'lC)ҵMuA:= ҋ@WwkK %r7$AFj39ȗζq0I/ v!,^H'8wkA!>r[&/'M_)55Q98 ~4b8FeM9xFSx>ֻH <g*}?I< .7 F#vo&ohFR};#y6$(7${tI]kH9ăOqxvY=~VG iyD֛Gmej~ L|z$٭ ZCGkZejp;5 _xs_KatIW , R#DN30jm' ?Nv"Χz>N/gfPZҔj?{v:vU:d5( *)/zת}[h@]}CULdѩ'~ }ɞ~?A\yHpѪf8T% m l6Cp`VS̚aOi`&X(qGlа!`44~$Cuf0f,I&},uJ(д%DNa)?JQ h ?@<9e98օ 3DmMT.В!#o$sqF,2p-1lJk@@B!@/Cys_\df`| 8d;#}qzO zQt[>Հw5"0# A$hK H3f h?a-= dx> stream xKoF{$k9ElWb IMIl%R샒XAٙ@RD>  ̔D:XǨb,aM23(1)JH18BG(yBU^r,!XDXߜIW ܅CyЬ] ]M' 2d:he^?B!`EWEflWncʽA5U]k!)v vtOÈ@Cr'ýd|" Mǡ)$ pͳڵs3MQdD L^|ʸS>|x@g:x F{O+m\w6uPȪv`ILN)Uqξysy>8}Ndv4NxhWҘn5׮b.,b{L*m|mj窅3J?ᕻLS ϬS"s\EriYCIUp_bȤ^-{u0Baۙɻ=`a`W1],w7" <0r1<@}";pr"h-.jflP34&c=Ӡ=@%0ib݆03#6X""Q4=6ݠ `A8=fl,U! gcdD=f1*3?LXS ߐXvy endstream endobj 2861 0 obj << /Length 1028 /Filter /FlateDecode >> stream xWMo8W(Qr˦v.dmADX w(J+.KF$37EG$|tPQ2 VaÑ#̈́(ž  INWKb&ئ eRXwDe^QlƳtmAH  ><Q}S}A6nWt1{ܺ3ϺMGLf.=DX2lF mY֫"TcMI3'I%!=9 ήo0pQY7c))^ƕyn94΍IնgVEh1z&Qm7 订cJ9`Nfov|!ʃ^}^POM0:7zSM:YԪtE}r31fD8>7ws.;/fGqǶK*CXu_TݾS*F`mPG-itz 9fp*9[dD| 6;?Η"xm*:U\Gʧ?wU1 di)Z) eZ<$WnnX{As:A[c 凪y"m-mGl*VU$hEnOs˖L0UQS篠dlWqh[4ܴciSU=E>.^A:Ԑasel#FU sI*RvM=v"8*Ҏl7[nbP.pa*lG`z}m]C}:(ϋu@=g}ݫ]K:u!.ȠVPZ^`a6N].bUHfǠaL1nX= @ŏ".Kwk{@P |Ufl>Eywn+ZƱY7enOXBoʏzZAeSpCXNnMئD`֋)?K~b+,(o^ˡ]qW9 endstream endobj 2865 0 obj << /Length 1324 /Filter /FlateDecode >> stream xXMs6W(uD!uTN,4Ig9IL}( +i&C/",vv. M@@DQ% QPA2x 370/ɹ!($P4P #y0_o Q!F!!T N#moF!Sb <+r:>,J" dn~qre@0pD9"#kmz9\4>Q=9E EURDմK%6hRmZ5HL^2ߕc3H_Xpcl2z.+:+V"͏5:|j~rj#?KD5LrR=:{H\[)|[w4@|;M ۇT/m㷽unK,ʭr'I!twӛHR-Q.j>rx3sOCHaHҲz4ߠvelQ.ʬei}m'~}PWW_ 뇥%dvv=}1^]ET#?[z!̜FA̼nz#oaw槰͚?IjX̺-&q ԉ [q&hcX!1lΙ}gY BO5qĤKŲ-x(Nt8Be5AYY"-6@H삵'R4 0HYlɁ>`,H2͐jך1$FE#oTHG\ZiB-pSHtV>̺8qnBH t+$3^%^2y2(R F>xE̟}Ұ#vdݳ]ܧ,䕦Mk2ߕ )ᦀP@`ʼ-% "PRim) i1s3_ׇOLIt%@/!|j0wt!=ȁόw>/ 18>Gg+`T@UïGW vV31l4> stream xڽY[s۶~J.Ӈ4SصN/igI4@ [i{΋I^6`?h@KUU~7ţogO."0Jb`[J"JP"u̗O9=O%bK+{_JYyZٻMMmRIb?iOl%2AdI%2U[ܥ&+V~TM˝T]bdf?xZlEoGնX4Y ܥUh(jIz(fu DC<}ywmCwIE8-QO.tT$!PDie|{>{~sy=z~u#WncGi*"$%xa#K|lWc*)jTb?Fy){gpfo)GQbQP&a>.J@=BvļhJ{-5Imb/SqSu.;81D \ץuy^ ߦE}I iѤXrF8ЧwΧkSRQI((έ3 BwφMi)U X,Z4Vqľۖgs \@ AE~o4X "b|0Ry t:Au7UR1K*r@gP)¥2USAjlb9n*sKu_\=C???ͅI]oUPfIvo ɪɧfQ^7CsoY1u7s`k(EJ<{unsO[>&Vw}N1cF^ 8 T94Β4gs}]V5◧bC8(yS6>UG,êɚ0# +4m;2.t?\ Ì&YtS=WT<;ٽi$7.x. &v%v~=sf[d[=\H;6"V=ɮPHx냕6lŒnmm5bv.q7bH.1FS[`P݀⨃B7Smv_xIB>5f% }m aC#C3CÎhХ1mVDߧXZU,$J-$vt!םeKHt-7Y bE["_:§ NG "S&8Y `y/Of1xK)?fG?j>?LiYr]{9-6s3E7Rh=tRD)*R<G ƿ0s"줕$1ΡdؤQP<1u8@>n$ ;N8b!Eу'?O.n0JEf@x YܩH2:LͱV9CeNhB@:w{#IÁOqxo Pu"ݴd!z7(4p k`;qXa0텾B7 &xg)8j}$7@ם`J8tD:H3 < bms h Q~Z{eG6! 僼~ tX*z|*>)&aI+}6.ui Fb8/ܑąO4mW9f~K+vBCAx@`TD$`r}i<sG endstream endobj 2873 0 obj << /Length 1382 /Filter /FlateDecode >> stream xWr6}WjE AuI긖ܙL"$1E/_ DvLR8Y:yu;!GT S*gq^}>;:>C 9l3@ˑGcz1ݏiєseϓT>C0 qH x"lr}>=QMNob=>. G ǣD4/uul88Dhy}3i|mlGҽ ^9M% X"svbU>.EugyVKUvД4AؗK)ࢩ;,\x*^8-Q/'ӳ닫ŻʽSp(YΛ4U5|w̅42K(UQ5%ȾnN_'fPX@3>,nS%ҺMj?§q+t*թ%$cL ~^QY'Q[䫎!<I #@;0Q9cS'JA 2)-PX@IRB1<V4MY6?]}yQj)cRSص,;K>M[uKUa/35gFƫG}#|da>DDKϝK:8dσ@S@n# 8ȈǡuihG !͸F?~!K ;I8[(1 Q GgJצ4? qc0ۜY>0"D9i5;fI Dc1(eCH!KGw~h 8ALC+QQjZ1⶝B+zM.kನUQM[G0sAQq|N 2A XeK)a8>[vf7#pl-]!Q3M"NmUm *ǵ̊r8e:[rUdkkqNN?lSuʰ([-7>.؈"Vi]HQW "P8E>)<̴@bG|J'ʫaeG,I0i:[/0&RYt_xĬ/}P}nT\uD.6́h֭CC=mw~櫨\ĚjC!Wm]~YѤEvەX- ~ﳬmdhwA z` u endstream endobj 2791 0 obj << /Type /ObjStm /N 100 /First 986 /Length 1444 /Filter /FlateDecode >> stream xZMo6/ВCV Hsh$@ohjv{$frλrr𷐋*Q.ph1c6H. >i;9}p!D5D.D%"vB4 uA"*\"^T6@hM[)9sZ }{g^Ib1;t F8Z7l^~hϒ!ǎȃ=Ɔ\+}x,90,1o7~ݹn۾s{;4|sڲUmow7߿}/n/}{qC F}}'O}x!Gx%)e(aR) G &B$h#[bhyB4]/Z- 1 N--S-өaUevt\ʴpɕ}<ɶ;?~F+&| 泆BaRzސB| 6+z`.iBYvꢽѾŅŔ0AiYMi}6vs IdXN_0נt1bI7ͣB7V/SLps;oY)q>7Ś)FvQU4Wm4SUtR UOT*5KtaےߖHLsiVK,kqbcOܘc9sc~A}֐ |{14Q_M0uV #3/!tѽ` ,KKpA03A/y=ݥY V}|ZdkӢdAI[nZf䖷K 'xNRg :*Mےf12<9sϓS!+MIֶ/͞nԚEE֋Y ʨ4@ I㐂.)ޗx[҉)=(>6J <a$eOxGf_Vjh'=֋yңP;l}34G_V.4YO uJg=)vNsɣѿX{* endstream endobj 2878 0 obj << /Length 1893 /Filter /FlateDecode >> stream xXKs6W5A]$̴I:CS_$ %B-;ɡ'vsv;1G4 '(9?z>[<9`8R'dwKdÏONi4ΌǑCY{8c8tLȯu֕}.Vĭ1/rS9*aeVy'?^)L.ɫl?ÂۺHoyHC]0 9g8oj-=kהI>ȲV*.ȷiDh,{>a/ l=xgv9 :k-#bfG>]jZZQ!JJ? nK=ml@ւA'(q"*rfcߦDRg 4B' Mđ LBDiy#v( /J:C@ ;3jՎbP|2XFZVݏ$9)uɰ4F N)>J5<qf˜jQ $ $LHLG7)HS'*O(D7P_Y1-E̤Bߴjp*،؁-g3!`?ub}`bt;[cTHQsFL%ޏTht!{h3a[6]6;jH=YQG1SXbBBE\聄 e(~NFe1!e2"@>>Fħ}ؔXɠ%5y8ʐ2CQ1--Çh4`a( =!45@;dRh]XFa숺]ee ] 32[3tF^}q|' =_q4 4 R3x|<,\d画OzH1fz$s/ ,.yoFl'Q9L`HgogpRhaju/LEv blJU{ -tpb@WÈOe< P44lKQLwhcѕ*{UK«˵W0huzX˿뢄/zT1N.*IAF\չ̻0[>ry/ O~H.e g)k*\U]Ym`{œo8Na>x oYP#4=֦U}y)Or,)5kxUY^Qdi+&dL( e\D:`6>:hI3xnkͫeu$~. "ˎ_ߺٟgG`JC5ޮ32ZwWcV2nVLbLA捴m4{~>& 2LzH%|}mV>ݪ3TݒqgF >.]tR ׌؎{ckOy0˦Ⱦ/e{{ȣuokSۉ>z1oDt%{x[ vy)p鬸.R%ht`®ۉk_}޿i]u")aۻupȀvi?$G@-7ⴆQ3p}a㶍ΎF'mY*c7FxKИgJs endstream endobj 2883 0 obj << /Length 4055 /Filter /FlateDecode >> stream x\Y~ׯ-cT%N%WYQ$THKǚ| `!fȕJ9/ nu!>z5G6^ԍ6\VGaxJYڬR*)e`=hSjkL԰iF[amX!+f  6C87).tDS߱0hۗͣhܥA *!:3A[ gM3JL@ ~e*,\04`S;G#nhGf߱Λ3~ (W7)`FУ #eo)(y;> )jiL!Oъ_C(Mf]3_\B um*FƿUy:5PHM(﹡oo{ 0ۇU$kL2Q?w60/(ſuǶgd: q>bÛ.vNb2G1.6F{#m7qز&d) oOeVv|s96wD4$-ɑ_A[loXI.U; Dc2\,X̦(x `½Pu]mWʇf:?W>U].x[!ߵ~D4.6\f?mɸ=:BW9E 6=hgLpOx3|3Rnl )~6s_ݟjÄäy3P^m4xO0gMew2&Ob%91Nlx\~leu@,4`l`յ|<ʓX%a]'J^0?AE٬}FrMQ^5pk``v8RQ#2;{L2?^nVGu(؉Zgˌ1]*|T Sqe"Ut|,.p7in>oN3N}`;!\PΣm'&eYH ;RMID>ypQ:;}6d3D&G)J:Ӂ |W4zX" B3Ga\Մ#d{ɴY[*uYԹؕuD5Ր .nEU6E9|G/KrA4,< w|Խ XAp88qtH&:(\EI6v{&e0GMm_ԈpQ_Uj6D2J f1n|+.%'J"ﶚ- n:bA#t,]jh%#518>P;.Cv—ۏ8bξŶ>#n6C u֯))x9¿>ۤuR7xJ5b{%=:Xh}ysTAj ):-dh [ T%GD!$oQDDBZqL\+<Nt[o jPe=G/dmfF[ܪK@?Byyr%+#9" (h>w$^Z>9w5]+,HK_lj} s̃d>B ]/Py+OԤs剾7WBy|?P' %"eCcn2.yG n2ZUD=BZubL "As\)Z Z[Ɛ dݙxNl GN,%4C1@`:@0eO m}6,[Z5{LeA`kՃJ72YşTB ʱ/۪L!,Ӣ9{6&WOOIiXʠuLi`~䬓^X<31ћ;L,).a &fpu@ÎPI w«I&/RI7yN?1fT6)=>sC,:a4ɼ 7at["ϲkܫ}n?>IY_y+JM4oD,Kiyxw/$HRVʘ(1V/u!G]up/?T> e `W+:* /ZmZ3T 0~exܡSK:!sT K(LWioߚ5M7X r^ 13 endstream endobj 2887 0 obj << /Length 2368 /Filter /FlateDecode >> stream xZmsD_ojF9joI@(઴ ˯nH8cǁ/4jݣ6b˓NhD#*uɈI&V''O]r1JRh4D͗O񻻼Og"qw.ʬJ]ެZ몾?qץ[ʚ-[{j\uQOg.N]tZh|U;DOjΘ JVlBMu}WںtE]ٻzeߜm]m2$<}]djF&4TD3~pR ij$Q}̄hƉ2iqɊ_-tDE$d?SE|jJ( 5!VDsL2D7P9(#f%_2&D+ $BO0JϠ( K.LRx\!YY"A51ILX bHDzuI et縿Lk ]5`.0.`|>ࣲ"ȏ ,l0$)E pK!JxgL&Cjv4MLo(c[LMMPA.NlfjG=vJٕ6~<YIZf͇S#cxUdUC% `b{tQV؟Abkj J= cB4̪5ڹ?oCH{(r& D 1TH %x֮|a $蚤_3,yE(2Y1 ԫWz,<ԫęe%8ۯ$)߁aa<S1eƆch$:Ey,!\\M[mI{@3YCqYvC]A`scR⣈sl+@_4CMȎr+: ]Kr5EǡjcLcĘvT~;$ LQ {Pn~0Pױ ? # r;hw*.*+驎+EʸװQE9Pl\tu=͗nz7 M ]Yd[͇}WtwQf};fljdDwgA@P5鳰1/ؓm)zwwmRhr7/Cf/r)3lX|k^ԛ·zuM>|=rgN&.`⇫ׯ,n毯)Ƴ˄yq=㜰yEgꢸ7Ei/9"e)ͷ_ _G2Kf;Sa,UdE&Ov,l 6qi+Mi,䤴']O;J6q}BS+ zRWחǙR͵o hvvL'X /\}3\J&W|?9C.@?CfmobqOjnxZYQum O86뷹'IT <6j-"{t5K ̔5)lͲx+8:_ źWcQܙXd.f]W*tm)Ax:>|gFltz9^\HIV?÷Cb=@|uq,X@i?!@_֟뫏5G85pwq{!9;*%)(f;Rf-ujHe^'88q>ã vd]`P0/'[C z'‹GO?%I?qҥ$I4K:}8|[ YAzA/?},l(PB0~;٧{p2)Mc&~IpOG ڿ3ÎyWMW˵ R:rqNoQ({ ǹI endstream endobj 2913 0 obj << /Length1 2187 /Length2 17930 /Length3 0 /Length 19221 /Filter /FlateDecode >> stream xڌPKր N6]Bpwww ݝ;3gfr{ɉTM팁v L<Qy-f&+ 95?p@G'K;[h:?Č?l2.fV33'?v<1#WKS<@G.jghin?*j377'ݿ6@GK#[#5@?.,ylnh d ߥ1,,ڙ99 ֖&@[[S##:@UZh[Yo:7_wˑLLll=,mf@3/E#k'{#W#Kk#nV}TL-흝,/7,nk*jgcuv+?1KGǾ{0pڹz,mM*ŞQ(-o%?k@g;'X0@/!_5x>X?y9Ύ.@ &c-@-:L `_zfjgkG_G̨-"Y%W("bgг39>GyVw]TjR\ O23|0n6H_rF6\) {tEMLcmͭN@S%Kguddgfb?2q}8}Dߐ&vM 9:y}?.029>9uFῖ&0!n ((X (>x%Jç>|G֟K}h: FGV3>4}ֿ۹8CQ?#?/BˀOSۏ4"ۇ?R#Hcl7 ?8QG%NE@W?Pw#A'k#'g?.Fg G?vBg7|p~?DՇ?ý?|?}x:9U1}@;ny΄UZa<7I9}Tjze.OHI5_7FzQvũnV^~6B%(?{ĩ*%0@O&tK< I)_ҽa|uJ=R7d<8kʙyn-gH&4K{%qsRũ Wm|K(Y{ɫ8r)3,fx[.2z .t7 Gk )%QWyYB5HA+)j)s.I;~,_G( I9$3 E <qB/<{z+pbg ~xw.lgcƣעXZ[iNig7քfYE*eR70l4LNg^:WN΀*RQzs i~{\.]*;DiK /}:y66ؠ8k$h/zr>A۳K;27[AQ fLJxsQP" 4yčff?Ԛ ^BQDs9Hmj~/G+-Zo7:n`vM`) Kpgr:7jL)XigLE #PDő%3!C%A3rLRa[۸mێ9nyGϨA'&M{Uh? 0H&7Wz+=5]閨͆P,16$&8 5;zEy8?KGSUCb)n,5SsakdlqJig2O:ᤃ#O^jvqtoiaiڛ~I%It wFN&EG6е]Y&Ɲv3E{oA ^#}L7b*'NK:;peqvo,":4(0t+WOT&$he[#M⁡&@ёwE2wݽ6qK ^qL]0.B)˳;e_ѯQp!ĺlbSUTN."+yyHlMoZ+w||Ǘxԋ˷\m[R9토~Ԩpm;ͳ 9#5`Eھ)p ۬9>@qJ j^Q&R56%ߖ4+#y(˯x>漓]qȕ B?"j+{~=?^r3=ч>căV !:[qðȯ{x;Ծl:xRPޛUtq!+l.r %  , k LAk 7g{ҽM2@,dXoh9bB|U"KJDk!Ϊ1+$.-=FWG 상El~N'Zdhg1%-Rw`)U@Sª0MN1yVMz+ `\}Bsd^eJ']ܻ譣]' <˱ރxƘp5g4ŰZ-ƺݯoTNzOsi(sq2U*$=[LP6bv{`Y? Wsi=^\ _O=84hmoWďo}"\ӭ3Zie?#~YGoFP9^!3_.ŤCqe)uOz_VPjl! m5df) ZeHtnɑۨgv7;hjlܷYe(d::=Af꼸loQٸPVO¡CS66 ?atwXQgXnZrKۍ[i?qtC' t5y[HTl{s202ģu5zfA ck,$)qЊ]\AEAuk[O~=Uy0ey/p"m{..opKA$a-ΈFI/u׸ћoTNsե֟[3ϓ )!#V9o⟪80ɳMI |bS `aq!F˪WSA % IG[,]bS/eQ`aޫI p(DevQrj5ȹ$Q Mn d l' 4BsNpS ;QH}[|P5r{I\`1 ˃9_K|u?:e>b˘!duo |*CSe\}BaH>%`RA0d\}QmX͵ӿ"&F!u`a27dKu?S| /BX}&P) 3-5 }eT/]lshmY\KzYѣAQ>?SXI%_H`Ӵ4*X"_wؽnc7vRbCퟵ{虰ѡZwqM6׮r ,{HRcTmO|b!LW135!p Iམw+l$XLBrD>6 N: s,uIr&4ȊTժ Nig h-B0GJ| iGnR/LEx~Jwh 75\̢[Ta"^ӬJaTRhҟNba 8]l97'%cmi^!"I'-3>9E{ʶL kVڂ)Met7Pp ctuOhs`.ڊ@xoo[1Kv s8TASE0q|JR[ikObk{=?4.n؞T}Iܜ d=`6r}r azpOa@FKPSD/b  Y5fl*w,3Z0n*x0.[^';[V]͌C%-Tсxw(j.~ŔXe=yqE ~-2bګ bx#&='T|Z8C8 YGDRǭRXC Ae21JIc1*MԷ+ԶA_eMWIT#ds(9B$_qfU#.7eS zF<8mtן=\SLO;,>!hN\mjѐ۲ٓ.~_q'X~lI6*Y -/IIvd8N%>c NH`4u,1Ih rh^=ΓD;A]zJVytu`aM&>,s9cE g*Cj8ѤUUwx]KkL.3>n uaTdgV+ rdoT Ar:GRWQta,Uebp5޺RуaݳA![@k*H*CTspc2 y˗aJW3(LyL%ᡬe"qJ-x}&R8%b:4aGNKں#0i\Oc}]9a/_3m벭{Q1! ?%5Y7vī}#hHP[GOa^.]v?=@Ys0#)Xt۲E"ZEnM ?¦ GB(9@sPǨMtNɎNVp ʗz2wPUAi|7#a?mqשHC(_弲Hzincה^}B/9pD+gf'.i䰚m[b$o[JU+Vx"g\wdsRŻ*!(h$ӧZb^`㻕nXy=9',cP`kJvrg'6aV.#v-bv34GRZt6>)* o?ɧ4%X V; *S`>0U8hER_gxY۹< KvxۻER!VDGidMHFL 挌Y F C\AGt1ӡɈA6 n A_4: 2,ny`'m6 u߅Ѧg0& y><ѦʛSBg0 ۃ1,q{YYե#`-t6HYe[ (;|v`v2(ĥef[_ 8~ʊltin:FDfݲO~BsKxXGaGvw^dD*{x܌,ʋ'&V´]P6ZG#+%$1pt CKk-<"9"W%ƣ!΢;Тt03b':ٹB<.\v#Kasػ(-88a"qS{D(G0OqBi{֑iiIgo_3mI5NZg*j@M>gd/O*Or~!@ Oz5K9|Ex=禺OIWe.L07%0liu!N3 L84VP]‡(%_Փh|3~2ylWFN\l d@I>+xj^dq@nn ָD8Z5A j TL8;3%2 X$aEᦡiBBSv0Gi+bf#ۖ ^t;v0&˭Ѥ]+$sb92k!Q#{F+& -r\*2;-oQ@c7!5ޖk!(6S%FټDX0q,+R9ޟK)\dt\(Q7*]&wCgSF,H[UӷV<Qy2Z:CD/F4c-MIdOشw #=pMRR6~KIL%]͏9ܧ[PQd ITӔBK]>w`W'BQQ 9a%GM[1:ntd$O Ay?ۆ0̆Iy29[~ޑ Xj |i*Q| Z~ww7dDҢG,3%9t0BE;]B]_%Cx3lhȓzFY:Ex^U7j+t}GsƠ#Fd m.R \$a0O8nz2k}PUk-r}~(t#_UzHY!J[v쯾Μƹȕ&},.!Sd*iz@vndbi}pH#s7irxX\( mYD"ɘW1)q+y,2D+Q*A;dw6@/.}Xy);yep-x'myYpkN^v qr7Hg ENW؁::~b׭f0A`.6?T8Uw,9is _'=KS 7>.p2iP|U:&FB ñ+S Q"&6,W|ZB- VzqدI;CeKsB܀{ }Y峫XE?15ĂKx2C 3MAqfJ*ȸ by>Lg /MH&ىJ!WҸIQKGJq :=zmPbJv.T$Lg]WJΉ\0:Qy3F+iYNAgʏ#)/7[n{c 彬*ҥ_^.C"2Ind*qPAy[JYQψn:b{Fg08UK%ӭ>cD^%#H류弾δiOVCsεb8FɭZ"\)Hm.N.d`C@#>×Tlj)9,dS>'{-|q^s:{YL!8;'[&_Ц߸qNxjW$X@ޝ6W[]J91ʸ>/) WQV#`pG\ِ˭$LJuM$25}KgR8S}H#E{8/Ř䩆-tNNfūt`I>ʕN5{HH+l! v70D[~dpN@aoK*ʒZI!-6Y2cN"E#י$þ5s%Ҟ{ roWnTHۯ3_=K~8 OAMSMߎR7OՕP EU*zG.E/RTē"MS]Dp*+Ȗ,?F&z.UW#PT(sL{ƒnb'=Ux'\I f)̆(]48!۩t').R6m>,,3aPy؝gI05 4уDq_0i"}3ʯ>!6]eAο,:47ksq9)ʴljRt5Uޕ4 M2&Qb7we@G栗16VvyFU^Q $XHlKA Z؈w MNtz&R~YVN/eYe>abeA%DB\ ᚶ*]| JY*cC jopψ!gh6ywi:J M;s< xD0tFʩ>*/x^azZ<|yEz:2%z5{\#4E.߿_vʚ5C(DBx/H|^mJ<҇?9li4`Ad+ڿX@veO=.l"M/Hƣ0_j+`L6r Q(qr\ki;`+-nӨGeJX&4R,C5/%mrtΉ:Hs,$'Iip]\ΝsHc٥8g Or(*q,T;ijJϼ86׼~~C]OCgYoϾ/YvEWuRIi&nEb 7K􅠦nDL}UԬ%aAywtr_9OӦ/cWɨJt˝bLJ_Ӥ)bљn ;BԿ:c`U-R~D֐U[ޢ&@b]'Lz0%Kˇ*Km^z<Ά0.`Y)MG7tU+ʹ/ZUS}9 z})h`sG_+!;/qOf8"o;SP@mRq.Rf _CE].'o5C1Ƙo~@Q\ 3JR":!l 1C3^\Cf8d Uֈ`=O$J&˾Y B]>QuLa’_= n9YT݊uE2t frkT8D4fߨ`ɖ//^5fl!d;K)^1NQʳ2.칍q)찈Po ڦXb}RJ=; 2pׁAkW޻~բ*t/JDU| ?hq"K/ >x..8ˈzf̐AoϔH5?6p[cc(Yj#󟻱Ou(1ΰ4eZ߷{ӥ#טнHK М0!0XyYl8{[k6ۛ6YB[(fx9ЋMªO@E=C&u s^_x`kZCյvqe&V\]Tq51 ^P;ą)oEfA-,!aiJjN,vϜ8ʊ o+л$! vl vja0xq uGl l[W F FIy|WLKuN) N^aVؿ']΋\ E;X)sF2/G&F-' .8!0/6y(ܐGk>o,MZ}oCa+?T+[x: hXVk#qPnXI\񾱨CoȐSK8RqQ=bo-:lIxv T >,w*(e &I.C2amQ.8SP3RXZմimVx m6'U*i\CF`=Ar(ŗC(-Ág6DX`iжo b`7l/"Ԡ?O"+ HxL& |eTVSS9JogR,#GW[{8C4#g^`e]-%JCF.%s偔v==v49uwq-ϛLgRJE0#,cT r Xo.ӄ|h#ɈK+2ު&8Dڪ]3SâH qŹ KvXoS%ΚMJJYcWJ=8y-%;l30Ĭ)tVcןt;t)d'q* }œP! ̐}%ɋj9F' 3|NUšWO5GERL3 a z|n|)Z<ںǟ\VC6[ ( 0=ͧɳOCmwFaV> [_w{լF Ig(I.j}y 6DW*\}!VCP&gm^5h3ÅlB2)wAX%0(xȳsґ'ʉYx:>pu+9[5:ovz;'Txb-*]=mKD={Xa^y#QzYΎ6nla;fiP -ZbhWTf:E {t /",%73:&!;UKs3& F<2~tҥ >iA^~dhn?ߊWʫpUn7)mٹI[QC~oSO}e;3$jI^X>\YGA<#w}ygJ+քmueIl!-) 4Waz/?;_OR!Y=N?<+ж5^A'H-u4siēIu0U Y۠!C/=7:B_ iA԰9ƧgLHvT²[c %Wo23B8@]ل8EJL !B@6GpJP)[tJ`g]DTfA6g8A44NjcouEY )QF9|3xRwI4H(!)5f!#_~=Rۡe(`T&"RZx%Aukgbۊ8ʪ 8m-/Um@Ѕ"*4Eo"G*}&TNJll*A[Í[2 >ALr?cD$s&ss{[o?ʚ0rF%cQ[a 3eSɧ3?Ltfo˫|]#+#p?~tu[]kSo6+۟l_WaPGoEP;0ѶoldV7?*:Al)½S2"!-T͏_ Grʲ*?}>8\uAW(Sh&į2X`'@?y"1ӺڛytkW9D(Q27}Қ&U#0-}3CMC"<]6*9yOVJWo{O@T 1jcDDs"-ބzS쾺GS#PBU7)Td-Kf҇1Go,4 q/.ĨWn{AC]s5+%;K+ϭ1iL X*}%9C>ĵQp_4cJj[AlÆCjng=rVXbĄDާ0s~]~j! Ojk[^M3MUuGK1i[uݐ%*< 9u|Ӗ15]5 8I8:{kp/L?y n?\,oϗ3Vc3[cqH3o"J(ܪ8+_ξq)/^ Um#FG%Ҙ 5 '*> 4 )?)LF okvΖ/&+2x&+S?yM12Ixކeզ Q H|I#J }O6@O\m 6]VJ3W-c:o4tvH8": :^o}K+A?/սK PkSՍǥ_=鬕M8 Vbm D+ckR U%DMWߏZ\e&gqg>:3D?9At4"P|̸f \m"k#tϠ,݂3 <5z~:Ej:+X}'mXI~#o_å fr HרByxbgクznhT@t#qF\>S,)U ~qv6u\]+귃iQTmnfmޭ@ k(.u>˂R)6*~v&sh* {֔|ؾk\I]830GkɼƁc`]5Q-@ U(N7͠\5DK>wHV`KdFp.7yj?QGNsl@c#7)tL\z1v72$xۧYZǒYNJOR4yiAc.;2ӛ-0Oo^qkn\\U]BLDPM|iMMې#9 7犤~B:[-9 ~N{XsYVBTރWHq@Px {_2_IεD5tE+ ߏ\ \JG> QTVlL$.DLlku(6_h^ieš+IB~u^N^ۺ1:X[Џ"=2(^$yZNηA64 nBU~y@aR ~Z0I(~. !nŎ5@cDe'g6Pd3#ɻdv>&l8p(> stream xڌPZ !8Bowww'w';'Ν꽢ާɈU脌m A6֎tL9aM&f## =##3%?v2u5?"DA@w(=P d `b0s3qp32hc :6 2[7{sS3s@iD`W:@ don@V'-*6F G)AkhBr7姢;A {g1/yf;TlL] ddm P(؂;oqLL- [+hddce v36[ 􎮎_@K|3hցq!%9ٛ::;[ő22YXYOdÿ/?/N jvN )ǼLA6FFFv.r52cU7[пL9xyLiM@< 㟎ELLcs#G!Ow3o~mc0oflcm'_W̠,*Aou ۸rޗ61k˘@{{(1<)0[8yLlQv6_A0q0 `ޫq)A?轊ދ{ `0;3/b{XK_J22@߻e4tS/_6N` `0|mw,߹Z aiQ=}'f_l?mߋپ>X[LHo(޵:Ct|Qi;/rpG'q:C9C08كq ]l^]Lw=\qٮߵr{%wGς9ٿ'}{lxv<}rۛ%HXtDUa'4܇#Fy+BqҖ<׎4cD~NUpS[,ΉE1廄k@ϱ=jv(H9\ybG:8jKswhٓoq4^Q,Zяk=Z8hc‡؋%E1E&z vD˼e[8G~"evcɄ,Upr9g^^#*2~X8)2[~: 9L^d_1=C#ltE>x59)a }_u 8dFcp1 ͂Si4ױ nw~=GA$E;=%2mttWn^kQpfēLaC4 9p: 9,%^{at&ȸZ8sZlK( ٩>e;恐5\0mѿNgy2X;t<ۘ{s!ȓ}l5w>n}ʮqWE90t".}~j/8һJ~=8քNw4#G\$^~ZI*!p5jhTP\t4s!0ߘ:b'2kJOo&9caH@7i%mz5)?Rr`-kA\"iԈ}.jFYiKPlI27 ~#?0]RlSV֠wmE8Zq*S87o)- BWT.%,+I)rDi͎fktC 4 W-ET*[MPGo[v)YȺKJ''VE!D3nGs1@FVIʘϐb9Amݕ4PJR Vf e +mb8F'|{N򲽟B.t43)|$U Aj jG(a:ADCk-Rغgy;1E fٳ6Q7'9%x=`+<4:VҸO8#} V~\0Hљ^K#^*g`"p3BNMd~T2UF'X? xD%j1$|7ML:sBݨUQ%][VuμZJd叕~Rs ;*tL{?IÿK *FTErw(n8r5H[-"ȒEP,6h:1'YE>vԽuNXOTfHg-89<]5(3tbֽiQl;Td_-0 0!@AiacY=W*8EJnuɐ?DLE]z Cjltʨҧ߽O~]7UqU3OW|ȄV"~/n]g]|[!̜Fh)gF-Q砐lh'L4bRZݺQ:,N5DݐyVw]J9Ǡ -*wjd<JQe2Md|i&|A}7v!ƣ> eql$X@hmys9-gj.)2svUکb9+iYWvB49Ux= K mdTSdM `rn>sZvg+RyA~E"ԮeOeT7Z`sV{a~`q+ O ~UT`毭Wdtj?rMjT59B"ԠBi8.8X'w귾Z;ߦ+D ^߷|Ft+.Kd0,ar$˫xnh{iǾ%{:=D1ߦ̷[nF6]ᧆ0Ct׃z3wi𭅯%vB:`3fT*Ҳkn_'4L5:=%)[:FZ˛ߛkpݹw[.3D?Pu, z{iYO.Qk޶+AI'r^Akc~/ k%mp<-Aċ+kڍrb&RHV%jP _P9䃰K2ePù?~/&* 8XU&G`CfeAEs˅N*I_58 T G^$yHXHȍk{YY^r@,C0uyu'0ô6q+#ǝ[-uB@3A&-q} 1wOΡ\Z{]^Ĉ|fp` tna|PeM`)3tO%an3~)ӧNk CSTሯC!+z2%#L!@X󕧙Ժx$b|\F )6a 8nU_#68ӂ1 3PL eWx ×l-ׂY"ҐwL8 svbUeR-]~!:- ~`VHD9- ;a6`C޾Ǎ~=~p[fvhPަUf73:QUƢ\]s$D[N[ɹif z#w?\0p{Nu.J>Y .\VmHۧZ5%H9e_7!(AH&~J2ĮwGpuc"Fmj? 75)5NLɇd7]O] i.)t\ޜӘ`[yGq>{Lt꫼/?ћ K '}~2kAm˓a+LD{UFrY>}/\R,Y=^m"SjnZ9wjl β^:@PΧ+iޱo=qH^ [y*ޫ(}%j4{hKbYq2)RܞL{h<snrV=s؊' &1:bP&ˡ{dA.-T$q+pH-BM԰핃 %'S(Ԭ}Ջg1V%Ьh5o^Yrwx)5Q!:Mwj{")xQ>L&'4߁JoMt[6w g;_ 2n}&ƺ:Q|[%~ܦ$d9Εy~5;@*_$7QHNQq65娛.}\7+RyQtdWCGBX fȾ:W Aڂ G7l͛Ν1N6/ؿ$HȝlFpدƪ еoFC|ZZ(7-w͏蜐^,F U3њ>4ސn{t+vN[ Wf)R\u;Ҕ5,2ۖp8짾E`KU5Af(T?3]l c؍\r7YC _ u$(~~-b.L4o;D(yn UHc aJakzrۙnD棆KREEWXXO4_؛Jh$8τYAI3تtWA >Z +#JBl vtu/s[n]c}?eެVZde?m !r3v-H|y|VGy6ۧb;"0&_/1 q@GUP^`7r+W@XAZ3~Vgc>VT;N)1y%דNoV* ھ" b+j{Ƣ~8Q愂PQ+@cτ6*kT0ǑaaJx{RWW֫`LE. rSxn@"$s|\ۖy(Kp0{͆#jƍ(G3mF=@C 6`]uWLCopToah,_>AV6U.3HOE/m/cMvHWS-jI@@uckNJ?Cyf䩇h(}\O9خA_f f$H$Xr19c2Bbo(y]:;C 35A$(ZscGv F~cO*@y2ꖦ^U#30ǟ'9(>Y,$͹>@,~2 Vٞ=yAAe0HKiQUeohq)lgtupz&ܽ^V1Ec-?G^d Cݲ|;oT)9;,L_EfX$~<Ӡ Q;-&ٶ:gn  <]˯DB[S7 UnP:dp]#GB%^/] )У,8 [=O&>584 {s}sc4ꈙdž|!BQ-뭱%s%z{a8%4&{nYmJ"~ دNEh=-c]?=Yf YD.KfxAp؉OI41ҎlI1{<kʚ9*qt6Z8B 45I:FfMV9 EuڬШ,W[cי)ə _Вov!S}.= DunNn=ݪIL85 ap|vQn3`PXqNvl|Ȝ#8⮃3N^Dp3n}Y័oZ Ԙtv9]?:BwN` BlBڐ2>!ZQ?? spv §ᥡQGBo*o;jqZc{@}1N5biu?Npwmp쒂KA5|W ;!VOʰ*V4n>ɗҤk;ɋ"Cz6p,ta,wLDVKŜk #/j袛淜8Կ!i7Bv;Х.+JD:/FSuyτ +Sΰ ']b"c:bmt1ުQA.+.p-( n0b BvgDs2B6O cVrkmArZ1B$U>0=往8.8ζJ'>7)N<ߩ͊՗4Q/oQ2?VɖHs`dԆRviQ7'I/ Ȟ&~|+'n0B ;?F0yW; l_.KS$8ߑfc.|!NM  OGѯ!Gf0b&V("}Gxm97~П;pPp qAܿ}7, K%2f nb+MWs1vxIrwŰ: <+b4:v2|˿Zu4<}9Y٘cMHp}h;sCS݄ ),mty{Fǟ_6y3I\EC| 7`2 p^9PĤNY)]ͅ>]5H@P }O껑\'0;xfHXYݕU)wРƩ*0 l3qܳͧ8)τ=ESF9s.C7N^TV9HIn|oYY)w٘!-'\W)5 8X:+FA|e̲DmiJ}ТYE8HKW<T*S<_>t>?¤Xf4Ĩ\$!:L&MժAC5SK1Q-'*ɒ/]ty,t m̧E[sCv {MlO x֜EK4Ntw/6sыq^Ե'fپf5g%&Koq%|PX5XC632]ku ZDTE˲K6{^ 'Y񢈒 ] d( EةR*6vT+掤y/ Lsζ sY4S?Qޒb|2)0ϜשqihV68^L Ԓ|wa%t{ԗe[Vl,xpa\#]x`/r2LOۄR+]vl"aIC5|{=:6 | Zp_~-PB0\PS {>i4H+ԫcGRǃ~/p4 \jOhp:-%l9-Er<a(I3wѿvmPґ?TQx>(ah1~1vȜFx3Vz.MṶc =]y`.|جPD}}n3[CI6TYU]}dbT iv1Oz"6\ \WQ;Ig1&|]VSwz"q=-_~ z3@֤'pFV}x(NSz%f! )Xg>S&~As^]wu) si#:1,)\TB2gl{_=" z ;J39ilMF#VCY MJZw4 G8v '鑽V܎b/e왵Օ<^jej$%iX oH|c̣V/Hs昮K9qx& ;~V&QgӺDeM(apK.H`۩15N5CArr*C dnIlPl"á.J/L[4AM*ɭZ24|K5<ey?‚@aӣ5&3 g^jBA!02vFw7!WL[\4e$cp?&WS1j⡆@@034V':6n)G_ϏݒתX5@AU]Z G 90_똇! %>ylooH҇9єӇTB"tXۄ>QŀQ, n%/V]݇UZ{Z5=ɔۃ[f5}9ྫ*FDwR s4dSDNTb7ȇrwD(8;8JDUJ_2}9fi+J S@lrN2l*"y||/Z{9%V||&1X)$ѡ/28Bl B.Od5rV֘F8%Ӡ6vO߂*Q0{1NIItfQumYE* ЈC01IKӻ84+ Ճh+7ct"^a4&kTk5(R9Z(CvȇyO3+=DQUP%OÉȳ1yV.B{~A@)kϷHGRqY˙$ͤ_-HL _M1y{ Wb_Wjb5.Fyq3"G)%i=Yd+haDrr{ws$?φ}jP4pI3fpNBo<#~| Ϥ8d5:K#KNޱdPB}ꄷUqj&乍#ͱrF#Śt!e&+R!Ou0|yٓݙTEp= X8+ehha:{w~y\\r$‰Č ύZB3aбOVk@kKi7Jf`" 6vdz)|8 45ΎsiT|kv8q9٘ۄzfɎG6bn:]qBVi7. 9lq[5qEU)hd(:='l&֋΅vo~ n<DZhE$R㯟ɔ=SʙSi<)".Pf p4n'F b9'bI0P}!};3oqn!>KZ/"u 8 \xk\#af?S@x2Df, yx\U那۬ AUKʥeyZw$p`ɞGM jt;4R:)jZu0Swkgn>j'v8,vwWڬ' پL5roo]N7Lu,VJzHRcn.j6X>ѧQ}rQJ ~A!O% /n.d5>,W|i_#΋$| ;G@'Q{fXu@sBVASHeܵ ҹpchp@_"TКRnsd"K55wYTw b|`O+XUgzU>Qk}\ ܫ2E#oĊ{c7Pil1/{ Dz='i>߂f۾(i@vO%AU| :]<8Y]$Cu+t<][Љ8 NfZuF/| ySB&+g@Yn_XK^d6r8JGDcm6yClJVhӡ#8B!]2onP13c7k&reJy%Q;#KbiJdW2iv!?8+[\,ؔW|Ko,T(ެ, 4m\WAl>S2dp{7[+~*,GOqb(w`ˢxexҤ%9p-6IS7;4GiGW!%*ABDm`G^tS3bE_x φX;V8_8Q Y$\.%ۑrD7hL'L*ZēH{Ek$t(O{M+սqdCwVD#] >bGY灇Q^쀅Jш 0fޢ:8bô[1QXjcy`~y>UfW"B|̚^6uW $9K; ^㜵]Nh_IFEe)~T>qM7F^'<Bpx3UӘOYH&]UdY:ϺnUZÂܤŨ/a}2%.f0JR͆ha2 .ɯ:S;=]GYBAb =(:7WYaR$^%#W>.p/BK>5j(o'*:TAnBjBk?ʺpք@T}$-}9 dzKx$;ZCMo*mj=Fy=i-͗$,; 6;ydA!cS^ĸkqodtoҔtS#ܷlM"ZUYx?6 `2|wRAJ!X7Oi}S2e]8GgYJuOG(kڰz᳹3R1䃁&442KNW[%52hý0Z.F8v/z:J#M##K_ USAE :k9[(7)~kՃw0Vq3p n|6X;[_b;@>hA wV{0M۶8 U%s6h[7S <4oȘĄ߶<hqj֬>C1NF٠P*:VP> 7c!l(6vMDl_{O)) BV`֥+]ktT1g4:z?#ז!Qg1a endstream endobj 2917 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 2919 0 obj << /Length1 1956 /Length2 12960 /Length3 0 /Length 14168 /Filter /FlateDecode >> stream xڍP\ Np֍8-C%H`!Xp{O=sj7,b`i+ + $.@ ;  /3eMȻ8ll< / inmPb;@.(4^֖V/7c0;[@J&V`f&vu3kruu=<6/Bac[L?_ 8[{@/ d~y2xS*˿foX<>lv. yy8oLSǿ\ ߱~Q?2ϐ07Ëz?bq^?K/J]$i7;aLCy((9 RZ\M^FB bi^ZH[{XY5ϛ5`ael_am2qy8׿N7 1s0=|\gg/A\/BxRs_Y!/.v(O7% >P 6P .P|JK>?%?T^2hA/4 Z &KLK@osk3Cz|h߲Cx l/RKP_J_f_jqK-/^dGcOs\/l%Zc{_ZE/"/{Pm|#`ٙ?Iag(4Dr헚1LPZQ(^c6TwY_<^KQyB!oIa|=sMJ"N_, Yܲ_×KR-n4|HrGק,E|R>[jͦC;\t[AQT ( 5GVȺ#˻RbI Jr"hz-q?1=4/g6DBҏ /i#up&3PxpM 4)R#{V!o2p.s+#=xKwL/W{-Xd.]G]db[ʩ2/WQ9=]f5?W FD zk2:Et(1KK’2}~[UCKcQD* ky`wm.?qJZ͸bv' [/D?US7"Jv,KUϊHjB뫪|ʡ#2~ZMw[T J#Wa$FɂH03E:GG<]j~@)<Ǎ!i3(ye8MŠjV9,K2lqwn]3H #̌ɩVc9{oVOiu OX Ae\ASN׭d]{٘[ ?]'8h.Ko6)h%3E/(a~=*n1 jjBtLܼ\S|U7nDߋ`QڪT9UStnl{#\i:ڙfp$>QCmSL@MMY,Nn& 7 щ w'!9 "#?+) ?uרv+q\648|x.D$оU dn$o1d@W8&Yb% f:4NyyEH-3pdVr[J:cIG>wsy ygf%JƻP*'&2k(55mE&B {NCk#8՗5c {z}5v&:wژ ʑ61sĘ% B0;C{Xw6,EOf=BW* Ki=[ALAox egslTģfw 1OMaU̖܊m?PU*u+\[>~a"J@y=?9SK9O>V^dMqg9AeuEɰjS%{CbL޸m$0x֊Tp0uPQے"*++7ZSNcat &Rdp" fb7jƙNlz`46HTP{)ʙ1mŧWOWK0= &.*hƝe\O>`:^YW{~Nm_rp^5tOT9OYXpL@G^_f*qY NgDe*2[*E1_ራzQ–f wRE=g|~*Ycڄ[X-kuS!aɲ >LD*{X$dOKlp}0e]Xkc nGk; rnD0ը|ϵv4R( xnF|)}vV$^ם E@nŜΡ'#UBˢ{s5Clg*_># ԏS`We oUH=:Ҥq$ A93Oک&rmI7fW\yT*.J"J0 ߅b jbuJ3Th9M->YU.mf t]+ސc,^K0E|}&җ[Gq'l߸Co@~دd-sz2@.vyQ-YC˥5aze5jp.vbXw* ~8Y +I[Bv,ȏ}!cCT.c[zwadr _ECku UXF_&j \9r.v XKLQ*6+O> & ,͛08w!-^u ^r-*#0C؅0϶*,x׃Fk[R=x\Ԍ QtUJjW&Exũ3C? rv.PlIc5 .6=iF۠"3xYl{֥o˶cCV)(H tcy䞗R-wRQ@iUj me^ZrF>M1fGt:fg!V{aJkMp6x_d4+ݪL5o[}IVAaK+H_D'(̆-׭N̿GBɇ2y7#x!Z@@?Vf<Lvд8Eׯ"d*!pEonk3foT8n|'6IC0[ՉPk1<#U!y)o}:BZ},1<вYqC-3va<mf(SU4?'Cׅ:Mcc-VYQu'Zm ;4 ģ1g_A쪾kM>#2coe&O(x[4f%Jj] pD 2XZJXٹ/= b+ve).=TPtv #U&7tp. ?뺊;zΩ4MBxJ⾝L$Cn<*0t2` I7puZFP~%~_$ ? gdϸUXr/#iO6f>Bss-f9BqL)J;zg+G'+NhXL4}oN5\?u\ڵ_GQu2U@~Y>`wLL"v_?mR `Ao199}"lun^\WLhb(iR+Z j,|N()4kf3E\l+n-w!BU_>McnD,՟ӑC+pGgqOO;t4E bd4[$ زdPhǒEZZ8oKJP+7bflJaGSru\Aj{57JcyO*r}{N%mR$TlFs0~? ^[4j* >nĽyikd[;vb.g[@" tK{g;oh-Gj!)≓Va<F{աݥϹeLon:ɾff<"P\J2wu$ _dGRJT:.ٚחnIM $ gh)~7j?puIDd+BwmZ3 T$+!gDɶP̮0yG`~M =5PնOZC LR>΢ Շ՚i.y#*޿CI[[7&`JZ}0tQ5O݉S0B* Y[Փ҈[^( ˺,qJT0jm!-[G elEҰojג 6>;!ZmJSD~4HSh8{wM,qHhV מftra!ѭS:RAӊhq3ز !N*x>PbU{fp# 2zity珫AQج3Klf=Y`/%PpϽA$rZ E& VG-@75sTb Au!hMB݀W{ae5wrnI7Nt> gd#GY2 g=_-/a߯i C % 40Ss'9gGf9b*` P|p4籎/g]JC6L$ze0!vŁ&dG=Ħj|Oz*Na/ π xAxDDtLÏC;Z0_u~륌iqMv[x̝u*RDdyW tO @u2; Au%!1L  VoZt/6SFOqaJWBB[ B\ʟyܒ|sY5ytf7>Oy4R̲eW,؉ \brHEwO4_.U o Wc:KݭXidBzj$*|,\bj$J5:bZy71^N-=5/$3x=kh 2D7+4tqꝢ4S mTȸNmV:Pשj[(76B冥HEG 79mR4> lt2B]9{'b1}+Qx!7Iy%|B؎y-~'Wۤ-㓒8bAiEzђjc[2U@d [`vqːk7'%t9")g6YsОRoGW֫{޹$X _]uʻ&^ohs@U,_(|Ff׷#TdޅRI<@ %`fMΐfOuQsnzWӈ&!; _Rܓhu˳BgZtk6JejP҅^ GgVokITb?OZ<_]{֗Iyֈm&Ȥ{ 3Z@OkÓ \,# Oj;N7؟T,l<}A6ߌK?̗Fc#)MɹpddiXOqlf5'h߷wy2OkIL@;g] mqb DeVAMHv0eN Cj +qO-Uɼr/'EJ^f9yO g {Wv=k)Ҥ[l3 gCm>$99"315fppˏP% 8g#=44 S =-> gR[أl,o5GTjRiS{Brj|(3|e.y\^;{hLG#\㭢ё3N9U_KI:fBbw_AYMnGh*qXXAAP"qe%=bk&"#u-I9+rtփxr%Hj)CVhm\9e .tPd7ޏ4^lDŽ'ᒱ%F֫9˝ !cEh5vW- rr'}-٫zR}pw1՞!{Q$;b7ÌN^H9} g1%\j7F)jגgoTNcjBU.SWmKc>aW!{K VkC71)34O{`zTZATp>MmUmM~M C[B[_^U@Uֈ⤟Rw(*c SF}Z󑘽zpR6:gX<:B 78fK72QN\L?w=-Q)݃L6LʹޅÀh0C`&[:eW[щ$V*+!91Q_ b7X' [3'7V==I,FdڲE#;+VnTɹe{FE+ IY}Av3c +ETrf8|t4+Yk1c{x7:t6hB>̄.[#NGaڐ|d E*iF3ZHXTN) JkKW"TZf]1?*ؾAin4V8bpwM`)rh(eK:"q4XG^qø"CRszDRK 8-Z`%D&päUvf9N2,k;^Y+K0R:$䲻01ʪ1ME/wޓ,\{5\DiC?X 1$w~PHͼ^r,'zs m-ȵUU[}lQ Sg&CO\f5R{U*Egm= ؈DY[6E6D>,,Rg{Xq},E9yzgg$L8? @o>HZw!$y+W!;Ӿ 6~g݌GcW,KghGZ L^5qvd 1B䩦3pDQ QDSx5]XS}=1T':xFr^sG:S[7ԎGs>P݈͹\=^dVEq+ * R{^>Eh]h7Ɩmv=%3+IcӚR`bqRѶڋt4Q ]'q}8(2dSG`"Zel턓1%/L!1GT* KQ5Ο/;h>FDiGC+ڠ {z)== Odf3+^`5:SȼdޝaցmϸjJ(2a%ݱcgn6i'wq~5%l~=fݪi&]Ew zr.gs:#y=cOcB~ŨĬrN9{J.[[Δkgc:yӚ Iq jV_5S6Zm uI=WvgГ"N 7S%c<ڋ}5 P} 8^.#AbdvhdhM[%/#pDWIZߣ7ЙjheT~aoL?"dجF5ltCln(z=t@3bH1P#p.o3һ=E[b, R$mVsa:EzΛt/2U+ y>[ҁ; 5h@f >K)}N ]Dea׮$޽ݐ .e%fBܻM;&fcuћӃvMA:oddP?k#{Įq@ 7ݲ @e5ۣ=ԋOiR.[a3QcwZwC>{G$)"կݣYՀAv(Ulqc;e|X?Q54+:jF9ˇ4%DGΒ#vD jz@!.SzT0^I;§[jl}v:0U #<2ȰoZ QJOLc9~-} a[_/-(2c&!}~ӯ:|mzU->*UH;3:EӶI/fZ*]Y+^TlsctR6#\M>&_gF%rЮP'S(Eʰ]8w|}@^D-{,XB]Ec9u}lHk,sѽ/B↩ڄ"!vLzނ 4b2Sg{f;nXJ|ϞЬ *f6*1f\JPI-nB"4?VۉGwY.̮fqci=8N!L 鸪>J[.VQ}ub)nn ZP6}?p&l/YuUx/_RY8 MV/ V@|/rb%I#h'h{MrY#~mEghylojeY.C t07+.P㪙?pεInW.dJXO[`‹P2%ElXb8WX,ø<\j٦ߞǢAoO'Ww6)6<;V\I^>*N& !aN-5"Π}oi`,3b k*![ =q]\'}|>&-s <+{"/Uĵ gQ PX1E_h׿e >ΔÉʉӰ|Uw!}86=U~( endstream endobj 2921 0 obj << /Length1 2256 /Length2 10545 /Length3 0 /Length 11785 /Filter /FlateDecode >> stream xڍTfSK`NVAZ$$E9baVCS,q"U9r<:?r F= *򛆌+(5=*:A ^H@$(x@(:d= VU.3'( Qbc {KVHXXs#bil-N0_.Xla0gnnOOO.sG7.'WqV'f ]=V_%ƅб a`b =Cm%3ʟ qv/G斖NPo` qU`^09ꗢӣ9QR  sr86AdPƯd!`Ǿ{suP'ON2ܝuw_:"d6`(#( ^ܿx;_}֏e!n`; XA,a G1Bf8aVNPbn#uym-JJK;y|9y<@ (# s_fvc_C׆Kqt&9h?Locs;#yw?8˟ !i<;q Tߪ?wWlqwo3\)ߍCV\׮9@` '7ȯ =. 8 ;ע ]]ͽ1=nApsA`&NTmjn ~T{0i߄G7b; QwW0 ߟ +?E,~'F6y17OcǕ۸;XAܜ̽fB<0fkv~|t]/Ͽ?=9п?DwOp-~o_ N-/dn Fn11կxJ /7wG?~'<7_jn #~n?އ__l>'cyR4̮1^“sg,~+kwltֺܐOWR#}[r,+4mͨR5~H֚iX",=jBԑw Gl~X.QLp^i㇈:'?*g8uc,ț'CqRz]^L>QչXeS}^ {xfNJ{qcô[ㄐ]F_l`\1мFh kdjtxLa˔(ьgȦ*.zsa6 #gd*ekf%oXܕJҧQmQ/;?HYU4jyZzqDj ~M@igeuqRɁjY8aUrJ,)83ou+)|} W,v~,3P:\6PM]pksOr19ёY6~NX_$Wyf ~e),Nqu~_]NsRZ[(fOGm^2i_jt}RV8SGsS_Io -OՎ/̇jT# /BIW^Oo$. yM>y#E$m>UU^K zqubNh8ШBwjaUF@Pk-zBZ0n)k11 mzWWtQ 1_768n4Q&Y?bu;"ozmթ)o VE9 ] !X:{Y<*^pavƺo/& > "Rxå_aM|x+ .$}Ϫʴ,nbr@vEuCqWQʈ5A4j´;BO$W> f:Ld ߜVZPfzŭ1?T<*36>I3H6*3,Bet;cJ:Z<:%y8Xpp WyV%ECVR`U%sqbX+YHm 3Aaݨb{7t6 b9$nvo⫆y!쵓S5W3]]"$UxGE!,`(^q\XVW)Z&o{O!l% R92hâ8CyQuTBo`0txRٻF3]qÎݒV"mȗ,'!Rw'B *ӵĽG̩U9/=>W4{&hZFxr7@G Jhä*:`VWQ':kܑopY|z1NL^Ɯ=]I2/ S$"G‚@Զ=_Y{x'Gj_0z̈lϽtf;ww|QT'rROK&DTg F-8֨͗bHS3bMFK;B̨G'%cag_=&\yXh9=z%_džLO=/N~ J>V3"fw~G~ٺ?W\8SȘxpH]bb9Ur!Z+)unazmSAdAwMj$o|7wm) 2W _x7,1<|k@ ' Qx 2RCCƣç^o,혠Pr W,ZJYp0ĒPAۻ=mŦi3)4ZIG?>A<^f|5<Ӛ^ꊸI5كx,}it7[eYHT Ke8:7!>,3 k"pj7mlKFtLQY f!(fAld"ҏA s }5OM r\C5h5Wg\.+l7T{fl.܍OaU0pW -[u;pbYޖY>y؃v\pKD>~3zn:ZJ/D\CJ|6b $>F& sm!+) #2%AXq^`I `h ~m EҠ?qᙕL*(\G-*L[ p ^?"}+_eİ٤$v 6 W̱Cj;*fNQ\3W?*cCEPh\cz,66\IXCc R)x.(k8+"LuZfi$=FJ)S-*} fePKiçݛ|<dwXCQ膂N b/f"4XY ˬr5>M::.fF ~t3)[=53Եg_WϾ!#^lL(8_yx4$s)iw' M6XGZup,jwS8Sb=2|/^cmY.NRpyP$D.ebבwmT4KP]WCzՄfܱ/ F&ۻ]ݙ>9 Q]" V_pSψX;h!igsunG 3ܝf6BԍJDԷI&UJw5߬Ez+scJ٩R}[9vAeJ2 yXӉ2YO)LwH.9b"-ux*\ga?WLEjkz#btfiyG`}4ZwHN2 .bӎqЍ+G/?cUj~m7%!ﲙ.y=)I갺er5!QZ 'е@(ozp/[86v@v9?{%!^\zn.8][g%N/7|Ȣ w#6fr~_xMZmn&ѥ N|SPލJ7)2 l+ }|_#.KS3ĵ8DG T 󉊓Fdj8Q~TFGٌXL5tw9 E?= 9}edRK5i3~p+8!szu(6)_éY*1%+3Oϥ" T71\!Zt>7pCPwj,MP- JgmYDE#?˭gTF3 ]P=F +r 'ˤe Gǎc!SP#ӟ5'R8k ̠J=lZvF^+:f^ry/ m5UI;+E˥r1ݎ\~9 tc_Opdo2f)[>NjE5.[xSdX[X}?֤׷. :3=E_S#!fs#lцL>ŽrydY& a 4#/xFT *b?/c˿ ,o[v7}ʨO[ 9_U n3ݪs]6E~cuì) !=^Vp־J9¶ا6OȆ)w=G}DŔ L1?3%*rQRW9.?yT 1Иf|Rt"'E[>~db޺7OnɫU[礮I}Y!6W31 *>WS`qudBʀ-YpcVaSaueA[_%l_F#!m>X+sS&FKQ6 l-_;=3|<$x(dF0քc~{[m4>4'ytvJIWV/o-fqlsM''7 k'W8%뼉;X7M4ΥuA_37@ll -A3LnoI=n2RƶE)Xj5N0ƘgpW\"?.2>b=0vܨJwx?qVfo'{'/Q˻TܷCOlE]۫4Pj5/'_^C/4W@TSe9RBEV>oT` '?<9:mQ~Nɋ, ݋H]KSd&f=|EOʶT2ȋs)^ H_r+^9&cohp;3Y.9LF=LZAhqN\JBQ7.-Yg'F>?k'%40m8UnÀɓ32<>b%(GIphMP|P6%"݈IC /~L~?!܍UaaE=%FPU~kܭJ>$Ngpm<'y*˓#}׻u C@ӼrvbrQb&Rw >BQh1#É!E*ci,~.$ 2j)Ixt]%1D–"{"%|R8* Lw$Q_ J &6 `>k  zm9,!̽`GR6 ]} !>`n n3HHhHfFؿϨzs(=wʂ`kŠ w$!+az@=|_S2^o<"wQ5*蕡O7zv&hB}Z-R0 NKHdeL&fu3$x#ȯЫhrjcf"yDݕqm3Y#S#xbړ=6='HnD]?UXu*Xo^RԄy="O4t߱LO,+]qX&52HOyS:tƑ>$v,/_= s#ol-$ |]+$Y[v('!'OjB{ (x-/+VÝ9iۊZ{H_o/9kXLcUۇ [.DM4eKӣS9"\HXN.[W/y8672#jC."(ddQ{3}U~ % m2[n{wqLcxt͡j l._NUI$]l) |\ G g-_!g ]jTWwL9ulf ׌[A,z!Ue_@Mf!}s/&ruMTޝMGђK:xώUIƸ_#ΎFgVڳ\S-,:V \EO0jאe w+qkƗX?e)H♮I? ZHy1?U~j>4Nq]:fI~ q@N UtEwDlxNVYЊj ujJDx mKN>DsܰCwYK rMb|gYڈ}7ޣO8Xjs>0Í ./mլ˺E~!`N*v 0`ΫTB z9!&MK5 ]"Oބ=?j?!F*x]H@iai?A팹Wəb[R;yR,IaycMl:OygэkXJ 0b%,Jy7J}= o ?X뉾0|Z2RrE 3lTapVgO%ng,dVFK%a\i@9*B tǎ UgM7Bo1$i3&O#L"{ې($b_s(#dkØLJ j荧eX+Z`{l~g>e[.qD.gR1ߞh؃wc$e)̟Az*a6!UF|] }F}/q!G-\](NYPK HVQyMM<iW{Ų kh@Ǜ+:M1Β<`[ZԍgIC$qF@o+*SrbtĒI{=Z!e[;˞hƔs7|^+")lX_w_" 'Nv} {2Lrp9W~ecCV9Cʃ53)EN@vbdk6FVB.D"Je[V`jJ+l\l]kİE.+ W:R=MRF&,=u 7bn;nL̫}۸ζgzdIǕe]블8kΆo‘bH8Fτ 6?>44 )ҧom]cd[LJW}*uAفpC1m>3,,ieL>˾aI|0Fw ]JgUiE؏'5R<f aDhPWy+^ikį?nR߿F?tŴVFg0PM ( T[نٝ>`oxd;(/_9I@ˍ>$feҜ)e r;hDX JtS,̲[KԌF_㊅O<^P&9|H]߽!#Whsuةblr+$2O|g  c˖! +3z8EFr>d:VW_0 `hGrvkRhFݑ g #< u_WA*s15l5TmkB/Vԇz1G-RNzy6hI-lyey8|W̋F"WD$+?h`)w!cB4bOהDzjl%eeD\]` ,vVaǫ}l-3Mcr)ØjP6?!)Xԟ&:iMy_Tpd96cmPd#0emʠ@LU Fq5eK5PͶ4?bV4yZA3#Hr;r}IƼ)NGϮqo*ZEuqːCXgtv|ba6X8P`90j\nšHrxꩆa,n|ձCO7*5;b}Y +i/Ŝ9d>Vr 3S'dybL۵'LN J MDo^w|̼R9<NOW|˄pҎtn!ER…DR4[dҜ^ `|fKJLjY/sϡ )4"ԉhL: sƤVd!*Qµ&v>9ݟy/م9ӥ eg3QPYeEu9耋֜Us|Eg%PTE. ц;smlH5'qZZ};!.1G_ dXZp*cڈCj?؛G9JM1LhY^[p'v!qP~"S8c(/ग़]JSϛTB< W)#2CЏQoLq^󯦈[XaM(Fߋ hlZ ᢔ{x[P%Mgnǘ8;CG:w`6;>8ÝVsúz2뗕7ps5x7zD=aEҪwd$viu2"X|놷3iyXlyQVzӣ>j_w;E|ZPH ݩOrqC>`ښ{B%"%0 -cɛi;]U%?&&JJU羟dȪ}SF,pM] 3HM? @N!j5_%FiRщr$pFW+-ذޗCfWj :hAtR=7>LJ?]f,Jp>68L & _[SRWj| ܩAcZgYI4[^+J5QK>/DQtl]|Jn`{^:;)REfz=GZNnvz).#YrR3öӬ{qa'CcgFk? $C)PZ.w@{ o$2HǷ<e/`&o%|"{U;zw%T[sz2?AP [xDKwu3 _8L/K"ɍCN26BVc0c0<6Hu[y)%.rcZLFY'ڤP϶ҩd||~;;FKX9+&B8֣_oB$& /[ o҂Q>7\Z8O+gd*TYcd Q`sz oע$!˷\ZkҞe <ғcGERw/?0PA};+gP"߭>Pk?[ endstream endobj 2923 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 2925 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 2927 0 obj << /Length1 2011 /Length2 14434 /Length3 0 /Length 15673 /Filter /FlateDecode >> stream xڍP[-L`!hpep 0Cpw w #{ս5U3{{RB9EZ~##- (--```c``#%U2sm#U;Xs+@nw|H8YL +'?6!}g3#4@G*hcfofb<( )@6?~+5@Zd%@ _)(Mm9]\\lMx(i.fd`HJfm]Aw!dm/Pڂ +tG"3?6Vnf&c3K@VDՑomG;_YR=O~y{`hof@`fGyeak#A++AFZX۸X{ ͬ(ɖ^ $.wȻ  @Wra~`^ 8;d;w2(r-/sIk?ߺ qMַ2t;k'@}w*诩9Yo$[w3-/+HˮǬYYl\Y >`{cwx6? z!lmhc1ޏ<jrt6{^c{?@/ ؀z^ Az vF?=?}u ,ADoik=? 9A,;_ g/.2|k/?._]?ꭜU;?]߻N._Po/~: 73UQp|/_G_/.O_ldo?]?Ͽd8gch^z_ÏB3 uzH;V'<$Y& 1Zخ'hpc%7!0{0qK4 ,Yl& kdҧHI^׳BV"&*YS!ˡr`Pi<{*&`+R+,E&H.ޥi}`hp+O$YkWZe9svQ( t.&ܠ`^3Lgbh50#LĶBSߔ&p#!CSwPCۖ-Ğ%>Ut99^*Cn׬ NeSW'VK7=|ܒ18N]QNQfr%0*_BP涰8Ʉ)CؗJ@Tq8|*egaG 6BlZO' riYE&.⑙s%?#RcjCƼ~ ^Sw375CV9ZŒhw lC$'b.dQvtc뾕&u.=j|0۠ݓx ׽4UћHn.Qqf{8}mHѾ?8b9+bT-=Eis@7f}F}qכ4_#lh&dnĥ3cuUlvHMs>~qUX&0I"\=Gۄ֏$ǙdnE F~ul<QIھa!4DMƖ8gr!AZ{,{Գ:k27tY$c:oZ0K5­8ƗrȰCvMN< $Cٜ'#L Ԧ>0Vl23J64ZGCbzN;Gs!nWD4S-̓nw2vqc(ͧ9@X$3֕MB*vH{hJeT^puQ}~荤y jψW yZJŪ?t ߙT>դ{UoeԘ`풤(Ѣs芨sZmߍ=uhfbq6y}*ݾ.7B>Z,pZiv}!Fa\GႭ% *@|)o,fXFA U,Zi'# w"cGe E@em}P+?u5'oB 6p%fKsW{E{1aˋ2H,׈C|vfrRሠ>37$u'I$gClpx=_<K⭧UbU2"ۥj/. ͽ=~-b^'s''38nTyR._z}j n/鼺= b,1a1&I䝅UpճOpI9_.Vߤ a{6{[ۀ:/՟gq1=ʹՑхd iI bDv!j< BnxDo+Ow\( d{@F3+ʖc5] hƫ oό0*ࣖVJ:u30LrVTL+N6I q5F0Xȓu.y"n;T]/3xܬ"~Υq1,"*6-'⡱mUlI7h!lC8JR,jByЄ7~9֨M9O|_Brve)| 'pqrz(yRv? YZeV%3(RۼR.6@ɒz>@W$Q\_uT* 0N2kǰI$\ k\A3+T`.e# |+>ËoP ,5xY^, tAL{ ʨNEF+'("K3t0>5JB<D'{1fQGj7mQxpM^#Ctc1]Xy7a[I0Ks 1 ygQSeXkwe>̭af~IÁ&F,'VE`K}+nFu))D2!~GKXFqkA/e\W`}ü?Yvd'(0?Oآ||չm'+5rNd"^0d 8o# 'vXn%t{ȶ@XAi^+5ܸgT;+*ZK>apE|dt>lS.sSǤt E+J~o%EK`XwQنI>RsRΟ4!F%`6Pֿ؉`&p&[g?cE'?fe$yɟP[ep Wm"DYBu.+ֿ[@nGn&]HX]ӑ!F |G8~-L~m=$G?96Rҵa\sI2D]vNu[yW!D-3H!ONhqYGSk*@VtA\840+gǃt6V{]WS7'$j1ıε [@YZ ]u°_R>?$W!:v?|.X/q"9fUa\W43FdqPh82Ӆw~&M]i23iǝ >[™J Evǩ$F^5iڹ poNoiQ&f|2='3xIXH눦YAqqT܉ eA;H-A'rkՂK-'}b0,ЎpS/mgg&J||A(]U>lfCjŋ뉎dоfSy--*]v#9jX16'.ϺrITI 朐){EO`U4QG9*T_EꈂCF̖w5gR` No]cQIu\{= 4~Ќ^?*T/5B#"V2I O6ZDv閦w~;M!vOEqSlL7)ѯ wsnui]ҡLi93}q^BIR߇q+"Sh 3cy>R`5ǽ/>t-UǬ9%;dsRΓmt̅5dZ2݇] ;Yp9116/lKOG:hQk>Ls*^'_ sǧIQ?0ӷtj_o*l3YEP{,Z-x t\i[N5&TVI@jƷh=PQ5Fڗef<uh\~!y禊z'TñmAV䙇YNazS2CDLdgk)D3ՕD9{m#0ˑe3{Tg^x6xTKXxE@eFf|t[Z„kTu]:a3^L*撉;W:ǙJt+1uA 1Jj(TI#:GoQ(uA”e I:SX!\/r6/pgY~[}e0$5p} 0>Ljc0 Bʓa|!F~M lpVz1y ռ;#LӒbKF{\z 3.FdEuK PHzҖK4b7ʦʼnGw^ RGj?>TCY˄;xu((ws{F<[߉>O/A bt\۠l.jne=+AR7̣>HRkªMEBsMLSB5-d,*0poĥ#S_nzմYt_lX%tic3MIjNXyѫ[yY( bSDZYDaΘEذVl`:V$߽uj'EnC8U`#cxC= Wh}e+r#_,OV-gue` %4q~Ջ=ˈbz^SǏ[gr2Bo4<]Z27f3pm$ W~?f 'wQGwιRPO#HX,Fr_(pCcw|h,Dð&u"MF~Lj$(W|5g=qF2j]in-X-|RhmHpXk*[f1˷j.hROʙ8N8YJTmcgGB#n)ݛiy&ITMy6gSuIPf'xEj*LJF.K-ݥzSjp"ѳ]ɽ/* /Č9Jo"BY\ I<:T&fcf]}0J8;bxN | n++{._fPSMɓѯ%>/Dƶ(4c+jFi$&Uii&|H P%SQКU'5dF&3X'dŧ0,J'b$OjZ#H~~I/7զt<Iƿ}Y\s֦:Δ'b@I8ЧcckW_WӖF׹!蓼r?=@<87DzӳXu&-n8A3ZM\3 ?0k>j V< rboWYy|u3g.X4ic NrO/ż3C<7xFm@RAra0{{!>RNl;uhVcQDQ#^7J3ï]AΈr&2 =bo%iUJa 1ޮg#N;?N“z~,^DL#ypn?HLHVl(%cBaғ1蛛ˎ{(O_C*9Nd:Pgl=ӌVQ,-ˢY+uS%l֛"2gZMx0`>%e%"χQx\?%_YIOyubG-aߝ6EL\P38sUz0#:zqW (#&Vc /R0N x.*٤ܜhЮ;>V/x^jD䪐9f')@~ΰ| uw"1NlA&pG3( 16VlM()Ma!䕵&1NP{N^c1պF5w0ۄmzU .͞1e C|_ek:KN4i(C:z~J[VY~\vgږ_-?y'[}dhٛEɬ(:%(A˽ڝҭo`A/~J&}=Jy~If72c ghYTz*YM0S#Wv+Cٶ(?FLߩd!XY3K;*~m>RW/5׳gnc1&֨%3q̥WNm !@e- |{œj p[lFR!Ú&mz/9kGa]֯Juh Ŏ}K (ۑ> +D3BQ_"OV5z ,Z)BlPpIݔqM#ԃaCш2se#XYAc,U4#/:v-ŚGcѣyg{aeK+-CӞdLb#LC*=XYˢCoOfG|#ph]4UsQ:2O]!& vM 폣G@H L8y׼?,ְ. CƲw# ift›]Fp6n Mr'M L)#xϵUjyMA혐l.aױM= /{.hU+%=-P$_!c s26rd-PL_`f7^|¦yh8MbC3ZJ,`crWBl$kkl52tk܎f(:أ5Q ʧ2-Vv/-KԒg4`57@~@X"XoHt B|ŖзZ6ۜ1zz&SI$ 1\D.ܧY(<so!L1DP>KA(еC6~'Aׂdm6Hkh& zZC#UZZsJ?:,N@aVfv.c)W+i4;Z$:j,%8{ŗra zVK51ucmeSՔHMDp⟫xF[Z=z^㐅{ q:ʶ?{rKY-DPD |u^hI@+v֘mCSx"Nx7v􋐯]X uROMxhM Ƴg-$d@0YlUY1g/WZ,/:pDApk[}U 1񋔖a9e)MͰM,ff F9nGB 1nhyBJƓK}ƄMy8-]qc'LoԖxJʆ޾ہGm6%0UB'DK),}ce٭HY_9xߺsǗRTSMhG!ZrX͕ަZc8`np76ɶЄJ,qVv#?/6o7ҫ,8pk fa~%v~POsI#-BUR) 0L]Q1x$` \|C>WDx<9-95h3;uWjI6v4.*K16_\5BF+nei4zO r;\Kc43!ho u`jw~̗0}:C3mP5q2Co]?9l2~D[Г=Elmdֆ՜N/m0NM*RDt ݹ06n8gV>p%C]D+cU- a-"1gMKBceޑʼpa9Ox&'C" W+Z7bS 7:H*lF }}t7 Qfpx2`sAȢ:<ݡSe:ؓC)}GxAF2u+䕣F^jS@ԇmB9xڱAhyY%pqv2d.G& *&eΞ/ISY.p'`F<>dX zk xwSkR (I  Kttv` BϚZ+u+EBsbxaBw_B]/&QԘC&t |}xhBvgj`MVi -!$[p;]Xr ª~%41=j1UJ~w+L.Ͳ堂)ݢ@h߄ɤ~OLK\NUe&vW@ Lzk}a-yE5qs\7->#m_q\  K' AZDHvGbzDyH'|Cv vk;ʖ(WFb*$(N/lǯ>EI^n-W=uqI-uޗg-AwOᘰ4RVɄj,= \~{ߴʿ#EO2Hтkp0ȍY[li␗ҶW%k\z[߁,CD>۳|)Yv:]8K"B,v9\# w\G^Mt9]+3+ <x/h5E$B]L IyJC{ g2 Bq\hw!U;͂Q+`~%kOLNa1Ed&ørԬޱwg<]m 31;zzM3)zpΐѵ|V+;Mu XP9DG^l[e[xTf~pMz蝲; *W-gGZb~tp硱}dy݊GGu9Bi=@c`2~&F I+㼰D=cIlk5B(@^\)&:tҪZ#ҐqYXw,Pge&NfV++2b*c'nfmv=Vg6G|q'{k{12G፸o1f{9t9],G@ې|PX3zfllY L D*4jGd(SC:_oz0{}J ]-6q5Hvxgj2F ?37'!K=Z'@tqjIb gxfJDV1eR:,qltRZ͂ʙ[$i94Uo3VUʜ wgH3$,;7#֊N\Ԗ̌j=O~e%bToc&U\f1iխHzor8oEM/D}3~E8mF;gnK'_Ž~yeo'3URQ7,غ^$.o0Ƣ `IYSeFPL5$mhⵍt{Wv=M68ket,Ðh>yQ5TIG/=Bq&VtF`[<#Tsv.~>3"i[|"rGƫwu잒~3wAC6;u[ZɘIHW]8},33̟zYҒtp 1yokj8壆U=mk쿤u/Ft~#S g"IlX5 s Kͤ5%Oh+׉(9gb5qi<7EDE:ܳ`'cyPKLD4G.3jq."`*bfh XqǞofrnE;A6;ވ2F&+MӘv',PUԶ$+7GAtx!6k%e"MV <!n}" {-y"Fu3v=(MUh rvy&{gg7[č.{ /BZ ub4ԫN&Zگ' 64%D'/X͘7'e _bT_[t#f1hw}9H"l* mqBlT{ '/>4أN舼iȆ?=;jdNw Jj@Yz0 7[oLi"m( de|XWf oFAr^ .R/Hha\rT}"X6lH*!M؟u8\(b|ijRL=lف^H#9W6un&*璙dcWP-k^`~^!8#8)e%c`#mԺ 鞺#OkmkB#ܢ0+0wE#O2%ޙ }Le:TPx(l1l tD~ BE&%#s :< 9e_))s5<\`T›|WqeS>svpyg!_ULbVJ% y}$]tv E2%LyWyH\7K( t͜tnϳ^9j"޹lhO( :^dDis]5e( ȺtU8.o4Qx3Q#: W唄H`5oTG,\LEgPJf_c!2jx IBN!m)$,Qyշ_ancY:G2zA|%k (dI~#\vOa<7xӑ_tfE 5!+0*!tdT @F:#C:R&y)0~#j33ę gkԶیzjm2l~{7L.w:~U@a! endstream endobj 2929 0 obj << /Length1 1363 /Length2 6052 /Length3 0 /Length 6982 /Filter /FlateDecode >> stream xڍww4\m׾NDAtG'QftރS G!Z(A%5!J(wh$y}[Y{}vkqx8La)*` @<^h z u;Xpy Dv@W7vH0 h/ C!H];P6 jEyz{ Qwh* U .O1>h$M6V S[$@Rb2BD~0s6q]ax}= pO?%r0!&wt#(E -d0 o)XZ[YUT0X`Q$ ;3W!ᫍF`?._K"3^8oۀ$@P oE%ixP! 'n1@7gU0(۴=!PF;H-#=4p6x/ۏTGC1_$*! @X9n8I6MS@DĹKkbRKG# xB~Hbq6 ¡0[aUaM_*3-_<9$XRg^5QUqѕ?h6E/\,A.vOT7#]mi+9֛t*\t_Zה㭯8.w% {H --FA֬\Jyd6ǁv^QRA||:7ì 'kmLw6uæ`~>rݵ.?t5:UXj 2?J%I[FJWa큿TYP+{_HˆD\,c0!n r߰!oat]] +ъI+4 9]l,B_t|[Pi EtJE ̮yo |Bm fW[;^")1@g:r{RIeQFa^r(B)՞mJ ?o+iܲk7m갳xMʉk竴vwV9M{TI{$mۊK]0s<ؔeJg+MI 01,¥*ds3e۟I\ 1:֐Y We:JD7Iס¡' :{]gEuByJ(ݼ?MxAWm.NpODƵ ɒTgi_b=ORCꐴͦ(2љ?ya6x,@=iZvQY=ɛ2vgW vņSA"CB,x6%ԑ+U>s2;oO{P]5bg̩F-n5 )ѪN(Q%_{(Y/9pWl?OK~ Hvҍ=L曭2ϻTHi#26:f׾7I Y/kY470fŰeqfo} ;ySu 9rY/Y [zJ`3˩ X XhyBŝcUC[PaSGo Ve|R5i l@!FS;/mij8yr}n(]|p0"Ν*|Z3uY; XI'QuC^}Y^'ǕPHR4`Ĺk>wTHk¾%"[~Hl a;–$Roo1hk@[x<M}U`W;);U"ԸZ>=W6Rp0v]f${d½<=lS3<+ x<>zP`FY{,dBx+d\@˔`vvd>&sj*B9pN+U7'M9m7vg\)d)! :L܌ L؝O 7sYHxe8gTAbjV t*pX"m}#wN7Uh_i~ӽQg;}]ŘG! MJ ,ɴvD,Mi̤'Vϲ+?ڐ\譊F_C&@=pB!EmD]D ֥vL/m=чRowMޅߚG$CJHmmoy;u>'at['ؾOj|~4幪AePmxMlߝ.${󴫑G/M{ȍL/.QC!{د*_4QEܹvV 暹pICvl+tP@Q1œ*2]tmǜHT IَҮFEvi08鎮}v$r-%[T-L1pf'zv`$5y q6#s&95y7 aj(92ׁI F&ovvQolam3pHf5res7ӂg6P/LڢC+/ǀ[ l'+1S ~Ì>β\Ao9~ð:a)tf,DK]2iAS]g Lq897W2TAO'sC,;m4,^ 8ZٳKBs\2s%m^fT׬uSK+CݼmtI|^2)s5}. }ggds}p3r<)ܘ9k\<̓/2IY%޾1lޟ'!6$3-,S`t6[v}C~'IDb-8~`}…tw(ǂ7(w\\M6z]>dڭ upavxiץ/e(^1ZY,MxؽP6-BߋӒR4ѕP[xP2G񉳘8,$MOZ9fCϟn7[5}JSK{M4a!x3+L9i1 nv45omQ@˼ɩ &ݔxo?ue`m -E@śv^A#;k1r)̊>%[3rB OfG>B䛔 1W:WfVn }Á,(\Z3Hn +^t\O!quJ,bcdE+}~)m('Z69z(n)y% VSޟhHVm,7a*$RJ\I41;J9:z0 Jȧh<0z7/Cp{@޾]F1 I1ˤr]"_$SEEB|.~H[b45WXs5% -/(umx.Md}󒜩2_ ~N2# Nͨ底aZ"aMG#; iUdFެPA)Uʗ@2ecGC|7:)J u閺<"٥"^ I&+!vwWKE}e>D!=RmpӆP Ԍڈǘ2@=% %;{=׹OV }0C%6顭-թ}-JKL&z.Q&{%=7ucdC f+J4l (wwR4s+]+S0T ӏQUQCࢰ:'-\rق||vpvAܸd@VYZ.p{ۦ7$6 G̙63縋%'SfP~)vWxIv+U0\1=Ig㬝E\&j ?g/D5ua9Rz&*V`rsFVe%Sr?rcG# m {|3^~Ҏ)hjvv?Tŭ+"9)lӖnd9d")O)uvu[%Vlzlaw_ٞK,&bm^yOThVRtȋf IUi2)?4Մ7Quf$`CƱ&]hs㈓#^bp{V5'fC=qTa Bz)ƥrJIRc'r)b%Xv}0 4CGC8 " Ի {mɚIRbBud?l*rEN  to2aSa|&Ji;n?kl+ *}8NMlRPfҫevui_ZP5X,OANV%G/HDY+p D6Wv/l;T<6_[ a$.+{sbs A;c)#?/8Ҳ<_N=k2Q' zkݴdGo^~VrI=s.￷ DLhqJ̦jskI?Du<)TjoEJ8O}Er5OD^^ZF/߾)JKߗ&BO "&U~:'eoOntxЯgh7j9ӫ2}+NWFn(? d?̞M,Xk $7k M\cO1i}ؗey*J$_lbT{^v R\U#KTrt20he^l1~o &ۓpd ?K87E><&zԻ;5&JĴ|zEity[/,sբSZƥwM+=PǕr,YtTs BFt^2{7\,\Ptއf5BhB^Ep X='b+oݭ׼kkBR20gKc1(:môY?H< 6FDROr1юvϧ蕏/^w7h_PW zsY洏hZuAHS?ZQ1;0znhb ):.@2pqLVwZ+}~م*J&I8Ȑ2bX(kȗ J]+C}} }#*eHMh6B8ֈO3 K/qVxb?bU\`"|_͡-H\ers9$ByZlg vׇQPxOW3~wK #'>{k;vW+!/kO]_S"7V^oy0ky-؄Ih_^&}܏Ƞȯ#ңX戯;%gOi~%*$:9ٯ{CT|Yk9ǘ-8!S]_y*Ijwe޵QQTRw_~570:d,uE\XK[_;<׾HrQo lC\K-ua;8A@. I)X`xרbjW-$(8s:6_ZI ,3Y*}sㄈ0Oݹu_#n&=ʃ^F9 ,J'o1a,au`UMzCI@RFF(l#Ab.)G6.mNG;I0ah-)Ieׄ`,-X,+ܽ~3vɅ0dw%vYDC)[4,tɐfbʽNg> stream xڌTU % l:6 "!" tIKtIwH9wo{czf>sswAC"nhqtp $_sٹX9ih4A`;?bdm+AI)"2C nv.  ;;].)Sw@tEttrYY!i7gp1Mʦ`k=$@{'5$jjb% @wwS{ߕ"4A5-.@D`2:B<,.Hr@ ̀z`7?޿r657ww2u9X,Av@+ 0umhj7u7ٙA bn WB @ `2̀V 1o 9|'@2{?>BeSTRfunv ';AF?|,X*蟇܀oGKH/5_=к! Yk{i 7BA6\e@@ 5i[{@@5GW r4GY-s[ȫ2oJisG+ 0uq1B2|8 hkl` RF6g`|F6j& ֲ"Jٕ&lψ l3U~F*BN;=?D />C~H13pxn (Ri 괞]AyFo3]H-zbij%\HNR "5{F\Lm,W1FA.nva2p6ts2~o3-NH5 r}6 G0侁BX? Y6H;A8RdUL9%gr?A3 ݟIpD<g7G0?7>{;'$wT<(@{Ǖ @G2W;SW?Ch>܇l`k]mct!{89D?  ޞ@HF? 䌼B"y]NkrH> w_u@'y~\緭7,["itRX|]_|` ^q0؅!M)@T"9Qq뉭q}^R$Mmg_ [& 4>-]R߮UD/dՊ1*5˚&D"2bxbL]^}{"WgB;*[|w;\AHMG@ {=<α-qĚcJUܪ.[ nrvM ɂd` Mz?WPuXJ`FNѫW$VQK)<&{xPaS;"|vv=~na#*OTWf< CBxU̾ZsIdfHwFS )e;Yc*"WJX;.ޚ2c=ҮjyϓNy2[4 #pe~UV&a}{R!1nMmndW4Yhn$3CM w 8 M{Ry)y^=py9n@1ˆ@m7Ph2aO$54o>QyBuNlP|ؠ0(iĤRnD=ZF5[ ɘ IPhb=eP*`yI̶Y#kt5R8LĠCzEUO{9eQ*l d%N(t7XшPt8O_TΥx"XE8.Q ?YRaJ\ EÇ*H{{czFn8O20vM< |-^yՓg@mz*\AdX/}V* W3cb:JĎl1"b5w ޷ԇ4=_'q=~q:v*^[p͕?A@GK@,X A+~KqA[²*[X']&C]݌Ϧ*6=V|T_A;@|ӾGAg: ~Ɍ}>$}EOnJ"ew]4g 8۶p)Rl,;Jo(Tsod(RsLħ491 PuTF1~9=Ek$ kSy7cQ۵)8QLc?- J< Uچ9lò>}SXL]meh%nN["NGoG=ܒ"98GklF~6,6%@Bc7X4՞.C>"B\N߿1a!B_ϼ7"[Q3u&5+ c,ŮSf7s Y.F Pm]ʪ bn/! 9 1YYS5߮ΎΪ3kl"vqt:yí):~?L`Yhjd{]w|'⋊|loBwX'.(QJCUڣe@sVkv^ Hq2gŠH[j# ~L}ݩݚY x$Mg!'ݐ̲${ sX?z6/9*JPX48<# 5e^4 22!&>'|OBluYdeʑD\l㥦d뵓@z2qTG&KnnLGwB'ރu4Ȏ-U+=aS]fu8d<ǎvSVV^ XYT)ENghYaiWsŬ.Ըw=R 1b~q[hj߅:~N%#ŨGB XJ+K۟/8R^؋?~;?s[eLk)rgؔ0ioxiCJLC6Y 52(K&`CܴB˫uC;N9E |r٘LJr Jْd:Ke׉Sotu{cPfilF)ڏUGޑ~ >Pl^~W:I ]z,2dk4gj kptsZDr| ܹ˟ap:]a$(w]5gG*<'Z"+v!g@u>E6aDM"֋&PEs AW8 7x,߹^6fĖY<6fϸ|p gŦj''K{9#Y[kWoJ֍X6MK{fff1"'D·X=%o7=xF;y'?`(wZuP{KzѢP'8z3ߛ.`Amv#C W~@;[gK|Ė5$p-Jj4 d}X:;˃5{tdfzgPW^Ԗ_o'i[R}Ы^xGŽm?$wbQ{h" 0+2ItuеU>#Hܙb3Po)b狴Z'έ~Zn{V'q"M;q;V'Wo8 s˥|ʘ=K7wV:~L:{wx͏ 2w;DFSD(BiH?_ zܦx{SԹ̄<ߑsk ژa.4_>eh"4nBheX?7 ˺qldV-{ *2QQ?'x)x(6'sBM2{p9C BPeTu"\&  Y3JJ4$E5.Jkx`w W9IqgglVo4ݛbZ3(iowD N 0ʳ}7ENoI@w䎈.#Z>x5 EԌ7"5N*UtTyKY-*(vfSvō*wQ*$hK3-lL:h/shrTfّeoQޕ Lʴv\lZ8ZJyAK6q;o!n2[IҢ!}́>>+!T,TkdU3G -A1$r6ǟN꧇'0/t#$Gkn4泘ةǨ|%EwiHѫenk/L>zYٷ# IxA=SOE$ߺp.ɁkG%)psml沄Ӊk~j$ͱn3X8k=ZB0 ~o'0 ~zsr__+qSr. {ϙ1wϣđ?? ilJZi?^5=k .=xхp0\=J\AiŴT,9۸DSԻm<0W]DW,e4L:^{B1t6x5^m1"}#Zm3MSK&Ku%|T&[']\C[Jf0GCf5wڠq:)2y¦#_^1nذVg\qޣ|ECv< TK܋ĝoj~.XG-utX}' H>pwtTE%Ǭ΃{dc>,:;v.㬪(޾;ƃ"JX:^ȅ`"|;=l^)l:`\R'L+hP•sxX8b=Z&0vzb(nF1'WD.}o֜aZ_Y2wՇ_}ۏP>iH/9-QSw=X-Rj1SqI7g8Ҵs)߬d)>F@L4f`jr>H5n ~vR ~,W!߼3 ͡`zlj~Z^P>L{*bQ_8xܘ}rTvCjvf ;TRyp;޸Vyj7l}JvW1zrƶsqʃmy/2fʯb)=$YV}7-|Y1^ሆld]bPKIuO;AcέZnd1)|ˁt Jl $J /K"ȶpb/A{HCI!!zjy ӕ`16}f8݃/ywɭk$8FM-+eFFxAFZM?>*˽s;|QQ:4Ji,6qZ>~ 5@u{m] q8E<^6?>aT.Uߣ';~ϧPLZo5<\Z_bPEF# @mm%ug tn8d 9w/n1 6OB^O'Ke{6_>0|!< D޺#[=yQC:}ej% {X|Fz0+%ba0xٗ!!o+񔎷G3R  Ǡܜ 9iE}% "Zνß-;l$ˆJگȈ(?3l3dғ.[\~6Jo.8=·4#LCG |2% AiZuX0CVTdc٢WZ'7)J۴D$=3Vvirr {ְF~[SvQ+HKM u#Y 38`&&[F1 & {KQ} <\@'qVU_U kնq <#-\A:r*y9 \#1{ř=粓WTa ܴ%c9`p%'bβ!ơJcңc J,Ǡ>|\9~O؟>\LD CsAݮ2Рoꌅ*Qf=*\(&&.@e_[oKἎ$fGCEzb1k& |a64"r[5]^nU9yE9*尬[(HI'ّFY̡s'r/:*~IxJ3 aZ2@ zx?\_ P}?o(<׬6G(+w3y)ҷҧ V%b& tNͪe}V-7osR%ӸL`H!cL I1J?WӬ' -ɌAmwb#d]bޏ=-,^2."fAGF}Y YZ3|,pz:+G GDq[Pď,0pI4;cqtf2fxyY"&BI >E}n)-nG`X\@Kx!OOvT]8Kc`IYt,:RͲMʂFlm#'9zZD3W5I[{w6*aSuoZ,c׆CTzk"UG:>f_&)Zrnmg%Z٬,קX@m-m]5 CmU#gw2le ץY[-`SOwIt}EXO;oTP;cmGsZ77Y#굿Y`n\l;pv.ߔbWpb!dVYȄ!3}Bn!Q ^=CO~If;W V%2EQ9{=S:D Qjt9 PZ ]F l8k%ƢϿآU6P~֘uJ/ F>-}'Ƴy&+l'2;Fm-e$;"H;-R wՁ텥r=] 5; p:g/Cb+k3}p8h5IN@otn K4Geօo&4"EP_o b>9_-˛b r"N=m+9š8ȇOս)I ^m:1&vEJUF,FT9Xiqg ̾b^F7`aO3)5VE>A5[/e.~gp'ai9.hRpWjOUؙ*;Mkx}u/=cl5cdt"o(! Omh;P8tqb2Q9`YοV"g!''_b'yg9U4S\s]yj A^"K{^hvI0p߳Ј *{2])j SE2-bDfx Ңh*>~M0)v4"PȘ)ʬB˚xTD6qK b7iF|][ ˊvqb<'D{έQwJ5'AI,{5rp|v~Mv6slKy&0';꣥+IqX]mds%Gil2|(Cklyא,>9zQ$JO`$ @5Y4|a25_g S4WF6weP*u>jߤ Z-wu[4d?,ː殭iA8y}O&%DCZiͥ`qC.! 4/!؃@yXxVfϮ5|*]^k*1]:$HC_[Zn_m.c<^JAaI[K-r =/W/ۊst I'NTV X"ՉQ֯x_sq*ۄZ|L0fr8(*(&+5OS^QӖcs}o򦸷qO(zC2iVsPEyC$W&rЁ&W'=I"-#jaO&zD]ܞ&# 65HV|24zv2JI-V4B00,09rۣܯtOm5=B":P~jI?q'.|8YU%J75,A^wur%}:d%X!s7pscStd&|y`yݮp1_ڊ 1e@n}? z:f-iiʺ2㽀:C04zO4 Lu>3K+MNPd͠4<OIMQ='8aǒF}$L;`z96F$A{CKΗa~y7kݺbcWLZ(BBӔ?lʜ-|VI:!Qarhɓ{y8).{:H+ w=As%xT Zk|] Nj껵U̲ab1|2*/4sy>\j%|ࡶ' )l@zOurA٢I0$bM a,*G9c~7'e7lH{C?5k5 JZ=T^Ń C1S*$R'NgFSȳs%jN_ONV) 4kʚu0bFĚ\,Id}Byk8?늓#eMdz=ZdId`#nmyK+bIyFV"_~ka%\eͩ[?QQ&>I`СlNrXʦh`%c VQ*RWwqj"N_̿dOV~9Yg;d-'hۃLU*05XP!Z1I0eۯjq#]e!uJ`2s7/Md;pWYK]vȯ(V[suǣNNSEP y$n*-A;/ c㻨2yŦOeN' ocR;;Nthq3Dr:q*XQՐooI'DqVF4gj -mxFU3a#QW3{t3־rsDk{遱 +? U3Y`q 7Ͳѧȸs;9#fp1˲7y<)b{] / 4U=,h*זNڬ<U$ 0uQ%aNU &03X 7Wګ*mr;%k1vytW@cZ;@w}o])ә LNY~P) |r񀞨$;[]&X eщZNj9>NR%zzP9ti+9`dA?FI#5yo|g)/?c0 VO/Cll 6ʩMVhjKϒvp's˔c(P 3,ş8bv*i`W$E;Yȱ@vOmr}4M9;kʛ>3c&V>8DLU'4HO~6` ZlW1,#pA|Lo/O1c`>y*(l1r?)-ĎKΒgEohs5ŀN~bJ@_'%hL\J})onTƀUdX"ˎ ~WXHJ́_Nb #jᶸ3 *9YTi;jƯ<]f\A~X{I/!IKoAhc1\^Kd\47&W|)ge5[)W0HNTZ[UTf,v3a(jW= w(RcC'sy`o%2yy X49B\q ' 1agqi03ORj Oq_[TG!*Y𦗴pn%LMn(BfL8w:mZ ?Bp$@IPQ y#bBo 5˖$ 2.~1rɥ&ͬY'$Y*^UUݱȤ66g2bZ-RgW@Kjv\ԵoSRzu_i h6iw4 k]g^*#Tg"&' nB7u^,0+k}f;=WxMpJ~V (}ac,ʣ&@_Ʀ0I*=!裘̞jr۷N(Xec8zpौc7 `#Q&Y j#Ջ'FjhQk[[AWn݌oǦ> ̏^bZZ:Tjή\ݏ"^0GB|ldٻ9j%EnCE^ݾaaSU8~G"j"18i"2?ՌmXgBl^QZю' FʭU_]a8.:O Xq4ǿ=g+:RGoE80Dz5ިK5yfΩ֥gR %l^"6{c~`%NAZ|,>mQ B~RFV̓"|t<ղ/ub8_|+Se&e&rǮ*mq^תQjӣbŀHD8=r_`Q|̆.LntvWҺBP>E"P:ֲh_(* ??ZQ`q!_h')aGP0Lry*\5-A?U]!}zz!|2Ob+.Sb[ C!*il铚KX.նdiUu^@|45[*@K=.LzncS3_ Ww7  ~S1ձ}}J68 VvAwC[W-5J3|X~v8tZoH >X9-+Lxϐj:[MW|w.5d8Ȓ[qEha̓euD%Dnf݉ fPkgr,9ʎ8p/w?srLP^[Dё፫2 MOXl-_Sc šk+-ff%5@<[NIEmb܏}ľ`;5޽fLw>TW- aY^ڨOQG[>s4[O`Eq-yib'&|_m\A&Ma|ilW Zޑk) iͨ5q_-]LfWI{1*p:y9~4ragā{kdVrqĢd8> GU}mG/e [ _Q`v*7w𢀯L)[JM"m@ |u%6?Fn܂x(kd~2R7*ՅA}-:Lڡ=k<GHZ4nA(؞ϟ'h), 7Px :TGf?JU%yQrM{Y|@u\:GZyQ&'{ӎ+ #]j0'uS*`V Ԑ{&O Io<ÚY:O`z"tOw4caw7_& 4c?=&~UM%n`5sF bvBo,Ș͂\UoX1H/{B;}gs޵r[: UGP&}^J `?"QJ# ]#o %1rgi*IM&dخPI3y5LSUr+j0HA&}-|qʾ "E&~uCv@l2]4t`/k>O]Q@' H@,qy 螳'O p$$+WPtiFFJ 9sJAZ{>/ALcUtVP|6.7r2[E78NmKxA%[wvgi76ØD[2)<,e1DAyO=ʌT}VVJA.3l"Ԧ3[q}"m\S0YCPz~E?Mυ䈳ĔV3&J's ὰOqb߹ʱOzIOƓnGUfƓ"L%n D@u6Ty&@Vm|-g\J NF>a5nT(bk&lM3_+>, ps 51YQ8WǐR!A4H@<{l`HI@*LPU9=uϖ#Xς40SHy5CqU}5`7Lo:nM*M;w#]0Chp@9ԐHBQmahmܲ=|-Ӧp-VJ]=SH)d pnuV&eB'*׀-k>c*;^p}-Vx~Bf6.Ztڄ,=ܻ},KsJ 19Pi^R_Nu^r K0W^UBXkPؗ}=GMi8_T kbUi)Nj%`% G"2Yf= O*â!kOih< ˬV*!%5,FӣL`S2}]{qQq^)10lR_7_aJc౼\~{@Ӝ_oScKM;U!V]fWxV&;t1o˘DR3߷JG;w-xa=i\$-8.m5mt^0}_GoƜX:iTz3nЛC,? t{T$"RֻqgޙhYa}Gljw/0f6-_||YhU8vpR K̿!иTtr*jg\?d}B'jmK82fO:niMZI{/Sx L"/npl@r=ږ \\g8Ĥ:_p~3`8>=wN&ƄPo'"j7LtPKUXK iUfEz<Ƞ B:fjbiFYX}f >v$7eP$Kt=;4b[~KQkH!0 9 qLQѾDBp.!*k&W4>~_j[ɢ|κYlH.(f@䒱2Kw֣](.l #dDjQPcG%ts解LŪ[µu\AaLq(d6|4oq= !`$>p$d4:Sԟ:mq`KzEds929@9Hپqa^& 79GݘZ<+RI32\ lf񸡒aX ̚+VqY; VB憀atV(Id~R!kS%k-df(*apFDc*C%v?ۻnSDw0 _C)FL>}6=?9_zI">5_ZuK݁ejvܝW::{tp$tjZǗE^ghTWho<,\Cre0MLqYh9(E7pY3yԍC6w7vs3UTXpٽֹD`rïO+oO_K׆m1mK4<`yQv96J"Ne&ҝ޺{@yBw<߯YmjA*RHՁ 39Dw|%:Wq I4Q*$/@劫m@G7 ljrwX _{1/9yC_Spo):cfĵN fۤD7Jaq2[:-l/(uš,8ud, YmӳPȒ~8w@aFi5sJ~s&4?!zoMlca hӧ`jk+fX!k T\aN~Υ2uYf}|*Yq2'Sֱ zFC<ʇGM_M^e;$js|0Љm&|Sv5NOۋ*rFwkܪW5sHZJk(1C,Cݖ@?e4Y9 Z:)ݦ&">lXRG/gFHXkm:j7o *#g ݽ(oWj?bfrŬv*g4ΞEk&o;@zbnC(36_@C}$މN3Dp%0++E}lSUb@X֫̀5ЯRZ2_wvHq# ̨-D;Lj:;=~ 8JXarnݙi.Lrk'+!fm$Х~@ 51n.htn谣YTxAZݘ㵰V҈ĉA]}>x^WnӃqlJxJϳu:]Ap2rAGy7)f1m͖lcv(L@&5v|V*`F @Vq?5̇6p07GR~b4ByƆX?5%pX)};Tyя_ PZ(|\'qGKKK( et҅P3GQR6|??$Bz ']R0|CFo/1اdz? qV`Se(<,s^i)Pg*/0\f"{WEKbvI\p+j=+e_?\.:ˍԏ'poCF_l]/%wdJt IHQ5}]ѾHc"uyX0g›"Œ8 O2R'2TŌz!P5|(@E4梮 $QO Z+Q@bQsP* `b1g;?Ke=2Jh-e a!gys@qR}B(nvH{ *f7Ĭmqí`rec~gEhHirlI׏;K )H @D} ^y"Ti ]nRܑVhh{Hn~FJDLpjXLD1G|<3q@!TX\Ÿ3`ؓ鲛!WXw,sbL|rk/G@RJ0>s'r _% ^hL5xs:wH'cŞN&[IyU, qJIg 9J#Rwxs-F5O-tmx$`Pׂ "'oֻ_$9?[%K˗cK-?OO0$NyډƓ%lZڃ;2U?S@=L]V-/xJj#4V테,"B)T*.nb>B:dAoZ);ge(MاpJ\{+vac#;Y svֵ\"2س{*07YRc`,+u x߅K›5!,x"UxK;̃{ܪw,7ގ'c'.M+MPSF Ҫ)0ā"s>O80GkINd=ʿ'Ï,.Q`gJmˌ t$sp_l@a2-&֚rd^Rt! Hў֭;[uZOP9 -*Ĺւ*_qYK#2VJ\+3֜x(qY:Mu^W 3;$+-BaYb&>px<Ŭpq,̲DpWtmV>-l)N Lم1A6!D# *PVZÍ1mP7UIG@% \a/ҮT%;w? [ޢ_.fcpzbnfYw"RUWh"ݱQ\8S_!qg+ 9Wtՙi^32"oWuQ+n^!`✒7]T X:.MEB@:{Β<݌nʘuSyaórL A/d_1E/MhJr7 MこLr7yJͰ'xQRmA<j'4*3na`E# &u= w 'ש8w7F{/QY SOneµI8g{w-ښdݣ4[nVx V zd yn$]X.en5;v5~/=e/mĿ->Þv{F:} q ݸX13)TU^ F_@C٣3Zl~ɽGG'~bл N?5ozC(6-.+.Eʱ]m`~t*jR۲@BW۽^N*|Sr̀hFGb I&,=6f|=Hw),6Z˸o8-PsX"KsP(5Ux0O}!o0rħp@Kg~-ayՆczxj71s&)%E 4(jHw_d(=/QpYd*1&XBy`Ңtsj) %iݙHV3&#'eQ,Sf:_SEB EWFI##%@1rkQ BBS?qp!$C?Dh!{&CD'}yVե)AIZtܵhIzɠE;0FQ*Ko,0;@+4?Fm7o%'ӝVпij_>"#c?8xECJpMC}hZzAk"v- ߇ J'|@45YUЦG1~$īq9Z\A_IHw;EXPf^"z]yHɪn*UD[jGki;fl)xP&%Ss7/$Փ0c,wY0(m%raIU4g˲']0V%˒l|kȣbxJ?R~]9//4\^ _.t#鬝QJ67 j,F֤S \wv&Zq47n BPj@pG"ɳV3*I _Gs.fB4&m!Ϥ{ ZBD LPKDiI ze@i8>C <.G|`~ 4 scVڛj .lmoIjbp"&z CR]v;w,|ZKq1m:wv K>KɝeQ_Jy8K0 g^ 5m^jwuՁS~fr`~zsu`Bh Ŋ򇒊.UD4 w; * a] 5A3Jn6؎mУC2VxN S=]ⓓPFP5sd&PuN(F,lҽ Gؤ@ӵCZ2t]5UE׌#dIISKWeQo2p6qH"@L1oP%< -!nc@uY2/GmrJ;Zj 4EeVDr: 2vL͜ZҶ]L$M,FRoe3"Gi@,ed7a?c ހ'U(e?[ *uͱfyg ۹鿍fGX7 *l&sd6N'Δ.l"°!DĭHj3=XUD %Fӣa@%?|p%e)];ASilG3US"Կ'kV) GFY Z!G9]1H2GV2:};oe 5$ɢJ6\{ېt¿(v #)j8il]#qⰰt(-YZo*]U&>m\;;e3oc\˿pJ@Vr᱗KQ{BR-D,ͩF+$4WQvX jqPUBѱhɧ~1;(lZx&$+P86{ ]ڗ]@`go(>@Mi+{@1$s1K1NYuGJ_G2?)ox=l 2-eFmr.&_sXɬ=A^35YTlj YJdUƭ .T,3Y1?R"4'gKHqs~4F~uގh01R:bBlT S ׸FޒO.B|YER% `6p|!L1HT[ۂ;}~]StXaģBΤՒ$+Ο> nPNhm?ڙ}lt!UJKY)uoyjz0u6sopX.6%a-t^{o~ ƴ֭^@v$q> stream xڍwTl7] #FFww7RFl0FwwJH )% t !! ywW+~}΀ :ܲ6HkzB# h'-r#b.A7:M;XX @qD  @D܈Ho}s6(;,**; C@98P8 /6 {4EӓƃDIs~Vd;nmďl{ߥe+Qmن d\[1;Ԁ"$:Eg#tko]sƙN s 8xNNWK$߉/5]K8Y4sa1~}rwpWn#]ތe`UTϚjc 5/6jlrJs)C @Ge/o­n\)km'zʉ o/5so)Jŕ$ĝh)ZЖ~'^0>!4$KC乮2M-Q'T']<7#UY9O8-kM')_!<˟l4VAb>>zHyĿP iD| Ό٧#\y{\Z8mn|,L v 7%͒nuiеRG-rû5-]4̞%5j6"F|fqFvB%_](1䷰Gl,xoz81I'۴CŕT 3_pcٞ8e|\86Jsi9΍s !wN 2+] f62K@tI:;Ӌh͹ YsA-` *Rwf7iOJ|5Y sU!va9gtc82[AЗ-p ʋ uTmBm7z[v}zkFՔ"D`kONTֽë[-.ƴ no}Hl v8{Kߞzڨ{AFYIslNy7?U$BX*v2‰43 I-&EȺYH4)X .ja޽.#<)?bGjz@^Wn4 ĪT٣.0""c+o-i›eOr>GW(%7 5fr}|$2\ Ɔ?&Z0h$Ә҄Nx?zkHA{o$fS!40h{@kܫ:eo]<K g 8{mHvK+:|@r&k`WE;Z,1)jE&jjj) O7T0i\c+1?ELn_,8P&st=Tff)bp|܋@#7>5x=![} Yx_(S PPA=w( ^9cG.YaA&+K |qYyLkG3DY}Nƪ«OAEO6Vz\4^:hgɡ[w =z=Uf ^݋жE>/R B1ΕL|u^IHTUjӬEz͝5RXּۗ$[FY? H86E{o Twc#[~ſez^78%؎[#ɺ$o<6;R!~pgz˟K-R5^=;JR 钀b=Q$6|?wV*fa~pzqRubŹR7R43Ψ-SoZE-1EYڽs{2L",;K Eϟ 6*,MM%^iQoFOlEV4JuUzhSx}rGOЗ Uki U~dd~0(pSy=''9 :|( RTX%w-7>8Б $! W]jvT&ei◨T{{mĊR6V{!2lm?h{\ԊN7%\1d?paLV8YMKbP|Ӈ[6b2t Ogz*'*#'~f~،eOm-YE8zf~&AS 2?*HYEi>"^IiXu[6.|6% 0Úl}QU3_ms8v"V?]#]76?H⹃$+HuWvV`Qׄ_nlVԞR|;^.Ƅ܆WwŚ,FYGC!!ZOF6Gd9Y=p{a)ކYLzfYvՒ+3'ƾBEg6FH+cͣuϯsRgιm'o{ ,a;0Smbɷ(uaڱY '-vE;:jjl[Hf\r:y<2޻?bqn]uMqyHoFGx[ p'b?A-u)|Tz\,>v1ЮfP-g)ZJ3CI֔LZӇLՅ2/6#X8AcP4d64,ʈCETx^lhGP**#!3C)/Eޜ StB YJПS0*?킵sɇ4־ušu0:KsLT;ʧ;5VRqڠtƩ(xŻ  fuwǃa=o\c!a@iZ>=tJDۏK9E7)A$UʃSs%sMNs(-m?.02Ů)8*Q,(<`ΖYѵRSy &3*&>d!@-t UcN:X>:*>QNdɈ(X .1n5%}^GEJRˑˡQtāaFAV\'(~ ׯ),\Z6'HlM(p^c.S.Fӑ!X]lxЊN 3)7_=ګSGV:2-z`2VłGA[iG5@<T^?H6}` = 9':[="a;isᗡ&7v, 6Rm%H`ac{ZM[)YSA?̲c9K]-j'C(VQX)V'Y? $ z`~xa`\٭׳`c?-]s:gioJ_j>XD9;s_v/yYؖFkBlb;FLOŤ^Z0Z" Zo2nx >AYKc$ y&n$;E7}H..\.ݡkU.fG{?akuPt6>- ˎ,J }d6HQ_V*s.m]$}x:}24km$ԭ|{֍cbwFCV+'l'WIX=wڣ+uIĈA1 yڬ |D.`PQ!iTy+FTk7M5«]+# ~Rv)i!ȍI}޳t(ddL- 8@T2/)֕/+YXOn@C߼R a_DIbT}Bglf̱xqv{jUi!)%bD|?쪛CU+,83Gɔ<\.vhpbp$)6@<ټל-UaP[g6^ @kƻt/X҆zHHv.ZWHUSNcj\d)sQhCۜ *I&(w-fJ=,^kH8.EQ wҟ}3->/ekeI(JWG/e6SNDR/OcQ zVo"W(dD4TW~fbVz|&FDK&J'c#A̜Csۯv)^gG84UpBN'o6%ؼ>].K~>4`"oVW^ݿ }/F5!^|UAAPdIA8ǭރ@S9A-IJ_j0"{H$Cղ*S*e7waqΚO+,ʫoP#JGAF~펼U7un G1{R??T-̱*fr/ AD?x?DX GZ)^$}8Yy IJ[tR\(@k>brĿBv=>eAm Wڠj{_}Hڜc4}`}.B8lWmNV)!g@kChnTIv;Mc_v$.K{*̲=2:$$M'~_E,Irp8`U##uO-.1W,I~*7:ף?F ZxpatpWPo|paySK২~Mȓ w@zLuFEF^X질gQZaxe l%YUx!{9Yc=쯨)<;mJޭ l%5h H$|Ϭ>HR$r xỵ2C\KgOF0ZTF'ť6I:R]ЮLES/aU_=~.U?FgG=3ag!usT G/smB:[QB)ʄnhȼǝ˴ċ^f~)9[ä96F WK&+⑤*6i&yεqs'9{½ уwdRPxr9jӦ|l5$8,KI"wj'b,~"ܫJU'6#_ӕ`8˳Z (u͆VQKC%ϋFːe'Df+eLasyU; Sן9<?7wG!74<nlyKtPs68nITW1͌XA+\ tJE8 6},UMDע-G2 UﻻV_;G*ˏ)1֒ %8j\L8R*k|Kj]ȧ-Qw;h@'*h@Do{⑘fu(|2VE;_(V `̇ŒIaKժH|y[Ue4xNX;\N#^-[P~M }|_]|WxQBGL2Z{T$9PIAVպ"(f [qڜݦɦA endstream endobj 2935 0 obj << /Length1 2077 /Length2 14265 /Length3 0 /Length 15533 /Filter /FlateDecode >> stream xڍPڲ ݂ ;Aww!Hp'<{꽚~ݫ{ :)PWT~`feeGҰv#E:X;w$L\@97;7++ &Ef@%lmiZ3://7Q{ hjhfbPw0zV|,,&.ΖBtkW+4U.@waT +k&@ rywp eG c i W k&ff& /k%PR`vte24sqx7q731}7 @JT`^s1svtuavB¼7Yd.`o Ohu/la 2s7GMPV?"?2K+ t=ͬX [#puv[` !.Zo>xlֿ>=ϖߗˢ))wU9x|>p9Ylܬbb|eAȾwitK}b?jyv7EGo-_>"je]Mw@di&ZHY{U]ͬ-5b׃`bce?2}4\o}iwJI_0qv6Bxw a{_Cs `a9X88#u\ѿD . `/bH\My,E3"Xd?=DO(@?Yx%*{$?_nb37WwGJ]e[_z'A;+ k9o&̭o_ݿ;]?8r۾KN-T*㝳˿WQlh9S|wqy87O޽Stp{\?]pP~7(fno@OʒM}HC(+ΝnO(t5ٟ6DSGv%ioE~6†%?%#|.>m$'b9}u lwrAQ)|lX[W=G|cՌ@U`GD Gqቺp{77F*ȀwGw=q{Jݥ_cbG(Mw٧dy"}sr>{_IʐjK6:fM& Y GŚܦw rw=lN.>Ɩj?W FYw:`c0WςkgM؇92;v2|*,*)o WÓ4.E0*ݐ8Jf-_E'։j iX%NzBѪz21lFڃ  dwOP)ŶИ^OI66B6>nhI&0Aޥ7llK|FHF&Vt,VZe+d7':FKPf#d +lӂ{o!t}y Gry5<'61fBI#'ѦB?rNOD:,'l*O!@ty?jW#$ , )VƄ AoBŖO%%V)Oaث[Lr.SR)=dcؑ:DQ舜wE@ZNYBhrC; C(n37+n.QRb&PY{aS!4p]E;eZh j+ү^D2>f 8PlG}]sؑ-RNJJQ;p:6aẺ31*.x kԟȐ $d+}ګz'w1zٽטu‰cQ-wg`Gmq6%fn|-0jX+Q֒mhShy;M̆:uWÈ6y]ۻjxleWө_*2A< .u]t,1WNrLX20I+yL2~`Dl܀db\jC%iB[Wt䜿(ApCdp, fLa\YJB5F(AB+Ht'/m_qK=cKCq`老R%=žlKCG;! g£y#GoiUB)eB/$9֥bzSj^oAvyX뾠* fEЅX?8(] j׈|>Qqno#_i8g}~?|e=upwcq2"TJlgeXGmX.'ETsׂlCm.dՋҡ0 l?dKkddBj1 \ʜOb7[v…c:wӄG<{O. rTGƄP3ʣ5HqgtlVW+j50K|I͞gR"~wo>:3"a7ck 9hR;#Ttc|g/<;~PD&  4Rm-&.\|򊪤g=98"T ^#w~ra5_Ҋ(9xYNe/U[Z_>"{d*qdU_l8U *R- (I`.3n ڨ`SJ9LЏ_Τ RPJLq%2zH f/qjģfiqXUzERu4ʻXJDg0E{9}aH9 ^8ozjzWɴ8r巟qJ>g@Ө= uJ)k1fJ% ^džlGI;$%E)Oן_M j_&J0l i~td3 1=Neu)ځ֎ XABѓb̩\N%pF/MnAۈW=CEm9̩ɉB e?2#2v)ij,6~*mߵ:J?a-掇'OD}+d0ǯm>kļw4r3l7l6| [hBiT};:?Iɾil'egw R3xˇGV{)=:l9V%poN"S/7}XGⰟBޣ3jbԠww&~l0Z—EFcvU:*rTYx`3>&x *pڮ*={ʾbW.^2n0ENMXaq"FG; ;˝pbUglNOS#>`QaL&$1L+UK-wĮ! bV#MjC=E3}2>$g8\e)LU(x~2Լ^we׷f^kSg( 'T-sJzYzs"FA>1 ŲΥ2ߦ u:^H`ޭ|qE[_Y$]ۓklnŽ,uB%kn+xK/4@5}&Xf+2X+Uf5wO=xQ-؏J-n;ߑH4o۸ ZS\%Y$M-=,قsʵ_|UWۏ{4@Ʀ| O !" EU\jpRCuuJWo0U]|IŻ'& ʩx~;@tw ֓&p2ߞ/8Cll\f f 6+1Ÿg!00>KV1)&R8TO0 %!QIT3N5tiXQ ',IhXO ׳cqem˄z:; /_$HoUAHE{{!1\ě?2ei}D)STp}` ]7 ՝G^e0?@mGֈ m^yCDl8y_õ90 ;a4)r 1:2 D/b =a4o+'/E̹]VJ7Q#\8ȕ5z;Μs5^M5G OUt{Td7;Yo<&h SLƬJwůJ[/8]gOdMݵo:U߰""LeGj0gmlYE ~q, &ÂT{ oՏ c=Ee7VB e~+&s i‰LH{0՟ vg;b9`tPGz ՝GB{c%ua#boD俤(7䳫$Ŏˉ< Gk(,=~3l*prz=wRĥ_ą2TPul/=/;;u'E C߇9MdzKcMƭwK,.?YC#kwW(ƋeRG;Rtf>i柖$VQ2 Rd1u_mON…,V%_۸>Ғ.k;h:#gbc\Nڜ~mK +||@ÎyAP7][e9CG;_P b=T\ \H8V審].r`KW.Ps|Dd΋2sL&e:7p>(_KA+Dx==EM9Cg=>9c8vMcI-"J1!j/:v0TfGIz4{<x3~nD4CĊ}znG(otg(rv&)5?28#Eq_]>ju'6ȉRc6=O]Ԥy8%_h^ӟ2 #/5}?Ye F%~"xuvU! +)pUy_(D<˳߉_oX=6bp%+GfqѬvEh] xa}#;?(A[:LkJGCVXg ͖ty˲$%IPQ![RZXxbF)w_FW]DΜQS A+XJ5{\C\ɷ _'NnajKU|S -ϥɤМъuz*m~Ӯ@!6ݎ=5mL4o(N]c:RV4EG9a;_qJ> hˡP+&/\`*m8:D! 3\ů~]?xٷTlȫ5peb_;FQ4k@ IKו~*/n3z#)#zӂ{J?)퍩DN0gJMRJH, Nlmn`UjiZ?[Ǎ A\)?Usp,h9=VdP8lzq(]befa /_rYZ4Roˎ [%MDxN/bP0L}|6i0! CZpJiW֩ gWi)T7zs{?KU uXs ֍UDO;h\F*s:fEB6nf 0XX(jN%!lT sүPbi^Osق{t7sj̊L>$.ēWU~ӟ3Tc|CjeSsKtS|# rĄj]E3P(+kHeR[ y*ăf:%w5%!~/vXvҳr>< e_hZSC\u ar*}wWH\Dꧩd*ЈWxIyYC?3*Jm)3ȯtQ2'B$ɫ`fFKLytqu]Bկl-D'ĵ$2Fty+ٮ_PǠ}H_F L ҡ[ssN_{ 9nd+Nr78N!0%yf#Q ڂUƮ Bqۓ2 z N\hcA=ȸ;{YZ!1 C* AIJWQ1)P*t?&m_  Ym7+_?*RD:_V\d[B-Ʃey ap\#7P4SE-Ebj{,҅_/79F~ʌ29A[Jz6fk^0Yj]A0lD_nz cx\OjŹ^W>kɇ.F ịА֜pCBJCݹ9ꃃ'x J O-x8-D,G3xT}Sؙ쐈RhT%i¸(nUXBj:%K*@DZ\ưS߲*f Y.Up9Ͱ}[Oyၧ9Ddl kPkH|[~IIE p^{v٬tlڧJxc3l(IТj 2>y 1 ` G[ho2HLfƀ-B,#yÚzB2=wŷ#&a~>)7˓ m_rN~P OdjF:l*Oz*+h2Y1qKL,MdLYq;z (.6/$PSHT[sGi/!!^bmS̞rYМls,rXR]dyU5IPkvT?c□X2m$/eq7i[U71zf-/[%/z][aNBI0+qyt[2f D>M#H"̀+~>&h#8D _/N1%ۆdA YRX J 8tpޝA T@:ǵNon)h*$!>#1I+n>wȿЇ0|uh2ϦcX2+&{ $7,\Mr5]Lj.V+e8C 'SW\,(FT(__rBJVvfF7;w'#(L} A#![e*wMm^p4Ҡ,1c)۳)4 m6YuJh`7oaO}= j&/ D4쀅ǫ nм"wꎷjr%_2Ѳk&7UMUFXS.:+I|)kc0dC3QIlv_T9t3?щi⼀ۦ$o/0 ICXk~z=!;_lE>G#Hl8@K>e^}XdUvh6ttvx~*>')>5QcAnj8%9cWަĂkzOYI0aEXJ&#_fӈ #E˱j0d.:(<aG4ʅ,SGS7}S. I]>୔i-1Gu^4LEQ/Kȏ{V\'f,[%a6+DI3VV 4AO Q]Kƪ|e;>wc9 .ƌ6]OM~HwVu f/n,Y`HV9ɊH=z"@.#$^p")%!Z}^]-^yHMtR$"&BR7AmKKֽO62X̪hk Yebx |xȲ|M}SeL>%U4OK 2xB@,z9 9,H kcUog.>sd{’n2恆ȃ#Ȅ*ҴT6FLjupr&Ӧ*hvцZN|]ۋ| $_1jI)z/ԋ(]ٓv4хr仐V?n0poreqcO\],>Khǃ0>h hC*$?n0vaJfz5{$J?J{@Ekٯ$<ԗx1<(e sLhkE莍܌@hsHwfmN[~T34$4'WZLG[7YHIoj+x&85JAxngĻp"t,$1I2~Dpbn:#Ẓ0-,ȧ/]\1S,p_h8`$>H:SU^j}).lu28zt MД= ^9WTJ͇^IrA" F Y\͡ >͊:XVڑuRN"@BǓϘxY.ϠI~Qޖ}Af*|9Ma\,#k: *v3T7}yγ V,ۡ缲*ruܔUϋq?Gm@S5>L?LS`F$3ۏ}@LR>~7_y!X!6tB(B{AwQsNTS~,0Pn?\B-n[j[=W1=:,qXwcO0WsB؂Urer&7(yv,C8v͵}$Q !ȏ(dފBCR=)߻aa^BN "U~9v5mG/*,~QN%_iq8?s0* "l4gqYm$``y/ 5"`8a\@$ŸKlqLT¯Jíƅv=5k}M̋Ņ`ؾC{փIV%e{"lVx :SHaaE ]Nuz񡔈!߅MiO(+'*, WrGHo Z{bSZp}kri;HUG^Ck-aq.C] F!8Aԫ T?s,۷y.0˫ҭ̩+>ˆR%wT~pnW6>*ʹ+ufRw-YumeMl(.}Y7׌pf7KRGvGV,T1%son:VAb\QBcfӺ;ђc$*`$/a4awf::Nts2vRpi[rk)ھhڄ"`~9E :4&Q|Pqz|w|ƍ``]eI ՗*opu#DŜrh:D: ?-qmLFl?Tٚb#eMN4j<_eBq [`bd C׵K1IYm%R¾a3Gv۠>\^^-jUE7]$}e'e;T(1SIZ`* *eR$V Eվ;NJ-o37y=W|Hpׅfu$=jjW$7Օ!Rry_>9GJl #qt)*Ь6P[xCk=0f:_6cYh7'o`+[h X!] Ҿiں9}i"_q3'FTc-Cvg悻G)uwǟOR4 tj.\8%vJ1.DH%w}wƚ|c~qA}A5Ui&5@i:Y>o%3$- Nejtd`+W=JJ:ƍtNI\/yg˷'~vi~ZEQ'NE5e~(.OmILǛ,ȍVV4nen6pץA͝Q d3Ȇ _^Ly! x?v-)i(/łKUAf@Ȝ[&Vన1XCm_u#%]X6u>8 \Z+ܾ⺝&G6% s7yӷoq-aNx||Hje ́D8RS5 kG:f |_mI[Ώ# ѫb:6P Fx:.ģk4$M`-u-}00#z4(,AٸaK}A ;Y :<88[؅GejJ ߶ܜc-KK'% 56-dTmT40,CL)ep oSC?CYR>cW#; ZI % FFr=*ZҸ*6(/8b"bJ=#$I5 ;{ $ !'sJb~-= fԐfeZvk= Hf\ G"W@݅)Ay/WHJXG5:^Fb}tfI[HbSלVN*yFnnk,Ny$ƴR߆\V e=aĕe2ELox>[s뀐;,PNUo%,x`ĎX Ryv#ds&F,hwu h3|Kt\lؗq?EӌQU \(r|V>LJ2PȆۮ:-;}O)t7V̷:MrlN澹A (eC7-`!0jq$Z*+klh+j)q/!JcK_)~J3[HT˿T"T)C&}{ J_m28/|-Z`WV&qiPaow4eWUOlo?uD}tPBc88z!ܿd`*BpUJнFQOיpY/3{q" o[Y؈ B<9pjٺ7'7IyK'؎ZI+G_Y&dJ:MBúb/XLhMݠ-ܳpqz/Y ~ѱb,)uڙ?3jU endstream endobj 2937 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 2939 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 2941 0 obj << /Length1 1921 /Length2 9670 /Length3 0 /Length 10882 /Filter /FlateDecode >> stream xڍT}7tt89rlF4%HҭtI ݾ~?}\WvD%c)B!p.^nQ /Ic3A _,N,CDU ׷QΘ$h8'ul)Ykw?|?冮+6e O?9TB1DG:ff,Fw/wowvLEn BtjxL~>Kzu9aY=KK8kMϹ}'Ej=Ղ"I( P&6e.*Ғ(K"WQVoے5Bq4zAf%WOhrx)1N5LHCGT2:z]/ihY:bcp~ +d^>4 7`:a;4  &˺SN7}UOR!g͟ۇ?hIB;{T.+k]VlmJb" Ds;HX&/dB I\Tо_|+8Z"Y"M8#yDMk4$[c ZAu&*Ys~ݮTjAIsۄ󝳆chSp̫M7# 4'z:Xv|n.PIlD"JUr+1f6g͘#g׸fb϶B-w4o+=d,/D7i0F L4BRjdEf/cn܏/zhVHZkiv(%a·_Zd]?XyPˇiG<[+;l&*2I)2V8V۴kyRUN %|m$53sKi%}dun@N 7r0JZ穰/[j)xLy :EՉ<֡к%WO^J /KrFoUu3T]7eOyʥ͗;aSOK[q t:wdT-+|IJU]Y.}obC U*FaT/pT?%53iJg)Gj$^ Nggp2(Ӑ:ۗZOugƟ#Xm*JkXvhPFhEޞb[|{@Ԅ%VQ@Vֆll|ܩFvt©*!pGjw\$g )`mUmW/YB(f7Mcж09&o'Dĭ&X sD'`Ɔ%[6S?&B; w,beNe%!KYk^L^VXG' 9^d;?s .mO ӬC:rb]W~? ̭km}{k56eSmq+5É|xb /f: &Ҋ*C>R'D>qD})xI4}{N׏(A9]J~pnByț;!zav%_IN),RC[>*?\˸" `G{=ߺZq?!L?q݆_TQ <[>m>^@~\Um1-#cn/o 6Hܽ5t!=5YxE\|^j֘5$E參QCy]٠uK=k3|L<2wnmHqcn(u(# LM\~B|QtWʼlB =Ga<U=R]1;}]%\C{ 3)=F(O?f?Gk- ?oMˌD+Ҳf{Ϩ,T]rcq^q~ۣW?1El@O:X'L:A\+8vQ? r(XoHh._4oCGKFAO|tWsy-Iøgcƺkq c}uwl3g:N3M0ՖNj! X qx" {4EHjEUU#.+UEJOr^ݐ1OCXNM=2S]oEf:QQvkmͺPKn:ޓ /!%KgxXD,Ej7/ڊ@DtWݳ<٬ݭ*O>N>k*N^ہ SYv4מef+7Ɠu^*1*(*lyTN<ީ8ʮ6;9L'zGO؇;*с;>1­ /;{4U2WHvKb2S޽J>&wg cY_ @*bFqEܨW$}@8\n@;rg'DAq4(6WqI7IuXCkoF~,n0,"Ve:[,9JGh}],!ƒR !W/uBh-W!IRHJz^.Pgq38Qs/]]]-W94TɡK ]d?TNΊA]/'>j8}Mѩ8)j0#C'M-!_L|+=dYhd~?Ov{G8L Sύ-xᬥ0m})f5b@%5a}].r#[vڑ|rQK&^ T_r-+fhf5izٿYDt}r_HDEmF O;Tbܐ3OougC}vk$v&GC.ϣߛzRn&R)G_+ :^s+]EˌZs+m6H)NOk=5uz+'bV8b3;2ʢ_(6l)4ZLfSsbfT,,pbH%~7X{IQ-{_6 bPIm^۩fY3ʐ^t>tGOeYUF ],t0` M>W"S^0^^YڒQ@*\b|Ɖŵc"'I/3ь7"d`Ŕ$rkIGq`d([S$&cpS?Ɔxh%$#7CmP:[ue#ZTnqocuOdB5]nc>#(Fp,<(VE&i3:h(Ԋ\3,6 Lj:jA_>oxG2 pϖRyq+tqH F3EΌ[%' gX*;RWIzZcv.|rnf%_$C]n\K*:Y?-%% 7(0$wYFIf=> g1N'P=B̲8skFQ$oK -|in~Nr=>KW;OHQ J1M q!cll^X߂31YKDT.vYp/H cӚJ?ޯ+-tЃ'׬ÂDHu%4@!Rj8mXĖwao۫M@%ThI3i$~ǃ6{GΘSm7'{N4 Ix~q|3tHhN\6ã~TF2oH.4#Vu*@N0!&c =>e PN1G|;x(+mnEͣ:ᴘ NP@r\t22%NGS`i(ZWgaXފ鱚QW[叙f6y S* 0`7ǝ;݌ҺoMWl3Y\MZ-5Z7|w1Da:N$oݷ0Usl/Zj3Uf> Ÿ{j6IKw?O .{hCvW +(3@)W 52*ǵ-e_wlu>P聉 \.ITޔH!ϙI5Fm^)apn $4ȡ$lBU NQ,M6KF}Ne 1j}u>]ۮU 8Iľ+{2!54`Hl: ^x@1%={PGMUGx /Y \Հ,SE^&Q)*C]"N׏nPeS1cq2??/f*'mM ILһnx̎ E^Mk[h;E*-an>eU~Ӛ7)8ڍY{0Nn47NLD}UuÄ )?/69TF̻4 }Qpպ^fEԡ:-~~tkvᩭrqDܯeç8j]4qYgs1MT`.ٗ){u|Q`t|:kp5y-MWJViX\=66"G?&6A ~O#S]aWN#Ȏ +1gV,Hj*R:4i5?pXgwz#l9ZWx(OodpljHlZGZ Agr7J!nkVJvl©ɜeW8ٛ9PNPRdwU-J..{qfx3)S݋{/LK'=ԘKE\goXG0bS#ı>/u$,~W] 6[fԽk;w l yN]/ǁC.s ǔmT +y;xΈG8C!Ut'O+䅢︱ -";![,[RMBin?ie)-l3<9#{DLEP&cV<#Zţ~wq`1#tLY.V𽙱Zfm㗪)H473 Zǽz2ڑ~SGF߉*s(Z)6Ga\ ?9N*ZҮ S¨I>w /H4pz?r0kf}YXذH4uisy36q}0$E~CH#|[Y]7-IyY:J;!~9dvd>2k 4}$#$G2p W%89l5Z&2>Wkt\3ǹ;LӲ >_yuERyKakDIB"탂r43ƙ~ioɾG7rMֶU4幈 O{o jd.>ݡ=W#Es𿧇^`;VE/tqeZK}]EBLnZ~œYcYozc:82ѐ8\Dl[! {nEdO07rkf.':!%(,9}pmAfĸEw|_R}x+|ĭ0Wɛ9*9+ArtYv$XƠ i@*0ʣ=U]x "u4^g ӶqO!~~ؕBr)ZG))3YkaNe|c{)_a?o;8j!اm]ͥʒ:i9KbC*p 8sK> 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ڍvXm6-N a4(nۀlQ)QB$;EB$$DBO}?;wW}'"iSC"0B Ai$PPP$(( 4c\aNS G"2 `10맋D<]B"@!qi! iAA(i ꂀZH TFNl<y @!)) @E7 #` [v!!p_)xd0wiooo Byp`Pெn?@c'8ntxQ0 pC`46@#M; Y NWDp`0ts#|GSa|0|@0Fb^`+{`mᮿZ{ʪ2 G c3Y:j.`{x4UrB0G(&(%..*ya>'_}aB`lHw X ^0  ߆BB@(?ٱ0;|h%P',H?+`aauO۔>@~A PHHR (!! w}0mp@{Lٱ_K纏IJւb7+!5OWf v%'+]$Vv5. to&"Kf~!QVp e& Gh%(_6 .o +UE@_:Q(/@K'a|~3(B 1 @5V16 *gâ1,߸8P @0Bة "H(V?l wWOE%( (07~:B' M )$D&MDI"7aϭ-c0\/teOx(=Lӟ) `}2cݞڽ˟c"G%.S<1MEDZje+zRj,<"gMe)n=`&DY{k^=+5ҟ.[g etiwVEQSi &<֪Gp))$ѿtZwwZI5鳯<9PWc%P`jv׻J)Լ I:%h-o_u0ez"߫LFL qѧٰE\"S|C&?c/C"J aQy\MimUCD7}e-A|j_SFȺ{1Bc;al_vlα!؍B;hw]UJۓz[^|)mwz_2==x#UG{6޼4ZtK)u܈xɒ6N]xK6lRxQoä!7رC5G(>/͓qߗ<aN1=Üe%ʄ'jWZc>`Z 0K0(zɞ=]ISݤ,EE왎9iIf^Fe'q%|w{*=Khj++ y` c{OH̚==mP; 6pv/@Vі MM”ܟ+)[Fɩ*w)Я(E@Ts2őh!8lGI`2~b T3S;#cnoB\%|9hN])p NVt!}0I2F2@q7@?Kʉ,-3T.S`ExAꖳU)yj ?(idJ@]iF {?ft+vPGCj؍@O SךL՗{p)>RTz@Heq AX޼u5<X8(t5k%Db&Þ|8᝸V& NCb0u)A8G~=gƝw|imfr|_37{pX@^$|.)t'=2z!;3mԨH[  {/}2YՁbP$sS?kXkI3m.Bڂqt3o@r]# -#:] u]~^⡤$yx2G0LatRPC`ң_KQ46eq<yC:kڹzGsX|5}bLQq"~;Ɓ -3 ; _tTQ.{a+^ݸ(ǙMӔ-+)C 56_9o;RJxN!,?,awqOE4'֞⇱3c [?mUZsR嗄AݩJ)>a*L+ ȌX 6e ~f7NS2u{e(в$XQ}1]Е+KQiG, n\ olF"nBW^q5g9dHe\xfsJ=ZyYËhꯒ]WsҼ'l/TŇ;^96pΉ_h_uKӎ MZ繺aKUɪ$:{TAI=$ Zİa,Gd4Ņ0|{+*29ΊK):j 74l Wz%v;H_B_gku/d-ɒ2Ւ `QG䷜;=?x>vrNdZg*f)Hx ;9,~~de>p$MʼSYcf_; i^#.Xm-tdM|~hW,EP &o㤶k#?JT! i䥋O)6gits%2FQ5mN=i=UXvQh|V2;Ą|2)Qͥ9 HtqYw;I6^ &_#I){%x' <[zï2/w:1W5}ԃSݴh|IFD@UrkLbUAHn<)e'̂#+D&|^ 2h"C䬹JׅjGի88˹hW~HzqY/te̤y& |T[6y?-mjL0+ oBEɊ7mfVՙhƵd# ,}-EK忹>o* >ݱȭ\I [HMak҉@RŏBiZp࡞}zV37:Oxt0n<{qyd6 7O yY9G!L >lDoB,BFx)R`-@~wG[γq52y"r3;ԿSTx9*qIoKHHvߣݴ҄@{=Hulx$J,S7HDq&O׋.<+p(ƅ9羘.zd6,ATf!l7N+k۱fO[̐`;jK&¥Rm^(NktDrWݖX"_KCι]VzbQN#QmSC[wAs6 @UKbjD(`NJ'=!i?xCc) h/[Wd}'bmYDq_8|w ` }qdfRPKzַvfrl.*f*SjV2d}!Kͪ{ {] zqgH fK{*?dሳՇ[..A4lI'B1$rQNN jQyB`$NNv367X̮|_AH>RYU)!8Lx' )`,m&gjAraRw۠ܣE(P%$c=f.gųWΗ&)M |ldm4|.=:M5;ZGf„Z+  5(hܚ!TDҫLXBU^TXuQѧB81޽s5 Cl|W;/wB&{sL |:0g>a^;]!`s40mު F&fmC^OG5{óūCD$tljx Desu,rzv1i>Ē9H1C(8-Vg2&y|mOiF+*C>€ī#okityHL]QuJnٕ"~L?q^y'By ҿͻ#}C)Syr%j`;Χq7 oIRk8#˼d|&=B>Ym5o^RQ{eˮkٺszv?ܙlll~~HCHP~S%) u_Vd,JR1{A^j6G9btl4v|2yW C\XqL3+fiK [-)<{l|auP Ui)Bz 4B1a*k~9RBNc{4|/v4Sq !kE2׻IJ2֑Y~вJ2uJ^9ObM:h|E3r[u6UW,F! |D%[)>[#ٓ7v:n>MW#,'2`O̹1n[N!Ui)k ۉ5EiWΖnO[y7ȩ՚ խ Ep=ꮨE8~)G9}mQcjh> &I {-q+޹b7oI=Ş8G& &r/I]&5GT{ ?Xx\r-~Ǡϟ53${$mzt7HKFU9F"o^dfY%@߃g{">H \=+hPOJ浴̫-5]C7-:*٥s}z#S#H$WgLS뤫qR=/!!t>Ǔֱ2 SG=u=p]},L>/%_8R\ΣD$.GǹŰig1[TbÏDٺ);OTD\R?}1KX^n u7fUAOW:/"ČN f־Ņ9"j/j d%Ä-2~Luy'-N[.p||m +❺Mqf撧9=3j J"GFiڋi-'e\q0r+J&Cd@K/p{5J/ rbroW޼%DUV8oO1U)ժCG0Z&.CS8ٍLѲ5VY#nE^  t,i1C֟jqƮY|xuNu~?"6u@O޶|? 5k]vN|ps"QtO!V'BVxJQ,5J<0ЪT4|pQatK6i>~N-]Z S{j>,޹#qnrڽԦYt[74X2x4uUؼ\z)Up } u'M^ }ʦxF#f*P5'pk)_CXm-ooUK W˨4MY՚{ J~摧m`d->WM&ŒS[sQPz6lƛ}Hch G"7:-uT/Fg*M/.[ߒz7<ټ蛶mzZY ^ތf endstream endobj 2947 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 2949 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 2951 0 obj << /Length1 2697 /Length2 19507 /Length3 0 /Length 21058 /Filter /FlateDecode >> stream xڌP  $@p -Xp}{a֧{u*rU &1 G33+?@BISʎLE vWL rq;:Bt$nC%G `ge ?@(1@TN.`+k7H~Кxrك\@dhh8AnV͉ӓhb%LYA we=Ҙ`(4-<. D`69B\,@.Hv"@ c0np{vhnht;X,v "#`hzv@3_ԁi15R\]vkdf) G{{+o~`9,%wN,Z`gw6 9@^,hz;RCjurtXB-AȾ@o"d66 `; ,!BƏ oF ptcj1]?JqqG//'oU ost,K%t[ϘrC>?_.fw1Gym[w7(9B6J ʹ! `eO#`/*Xف@7 en =\!# ٝ(`h{ع@72+dعlmy5fG7 R?rsA?"X$ ^`X 6`8,r'EpQ \ ?EpQBA.jAhA.ZAA.z >?q@N]}!cat5.9!c vc aAL̀涮v@Wl윿. A\v'oEH3, r5XgMzgw~|\R( KǿV;;-_BO圐#v9" B B_қ?!MN=e CzԐ! f;6r-urBʀ !qB:d/w?퇴 da3[ :sA\A"6  L!AgT uI yZY5y:dCrjB_B_ //9?!|@.a? XzTB.|@ /9ʢ@MmX]'ޤ՞N:K:b ]UvȦO^̵)U_'-Ijm~O&3{mxS'bu$HL~ma[yU?(:_ŭT:k\4Ooq=9ܩ2Dd8/[|5] ) H`og}S| c7rX阡6ƺ Y\Vd)XuP4LkNЗ,==e>4G"F0X(y#*{[;Q8925FB]k_쏣@|W`UBYg3u41X&uX j$5!R_a᪴Wfgγqt^GOOoB9.3&23}rh$܂őR_-*EgڤO'"n{LJ-Z1>5 D67G+Dr鱬G$AIM|1΋C<\A`dklPM'42zU%+bPRgn"APcN5#M8q_ҊQۀqeQȚ`jIĹ#,j솽 >pU{ͮ͢ ɯɸ1Yu8A99z/}4q54f N~ܢeGY:6Fa~QǬ6}e/f{.Յi9/[:#,3 ehJj8jx;`L%~Z3KNb-^K6a[ gesMhd j,8:mƢ#dvz6-}Ts–&52۴ImS>aZicuT)z ca٬C9Y$)&:r2ꝞD[uR/pU\^}c? SJa\3?"eO&h3pL"mEo0֌))T=mJ }  p.VԖ2#ҡo :(ał1nMÛ@i[=ܫG`irDiEv_ ® լ'vxkl2Td7Y3Q x0߳-尠1ftUS3^AnVć}y?wӃ~.hI6iZ)/f9UyD2>% %Pg8O(}`z-4eExSdmEc6f̘*T}; IYV_ }ifQ)hނ,#[k'hn#H6؛iWSjNØ?!U66vj*[GӲM6܏P[.A,S0珈1?bU1 i#SmyDgRtŲL&W_UV=V+',P䈭HYaσZk”q8Ɇx0T 8.\Xa8 .??."n;K*t];3IL&[ Cai>ԧ {4YW>~Ps<=t+AM*E [m:mG8BN34 $9_\}\{_Jse*'r o::wN| 8BN˶#[*ֽdv1zbx pdF"hkgȯ(h]iHy;.k§*&~>MAbd[ ="3aIDً4 ^i>6p2EYu]ɛP|4ѩ!RO#PyB5vGɏo6S/ml)>I(N mII7eJU٨2UAıp"۴g"RC'(FAPp"t,@LПIQ nMJ1>lܔM:l6{m_5 :Adڡc Х?ITX1+sRW{ :Gз?F&ڂT;F.[ԡSSZ`)E>&1ϝ~Z[*3PUa9{f$N7=L<}[x"T-3)Va] \T?`tӚ.Aֆ!UXJǍ{AY(Rث|p+6K11v4]{S@ aN_0\BWIQмzߚ_OO>0c=q{W}:MvT$U»4L.^hDd<3waKsݷKvhr5|3U5{0 ̚_wW8C#7WA^J94%Pt;Z*.cI S63my1{ \gBZ6csVJ,oJ*/1-9(WҨulc$Y>BK@& Gs9D*s]=H)Hӽm 1 wIq{ThxqGK+*HG<"w"Givs?y)'͂4gES)Ԉ=&mpunhn 1h|F b$'QL,4)|I&.*_>ENDH= )ݴbj˯V9b8Q .y'`r?9w+]]u Q,x Tub6Au0n_7{m3Yn2PK@̺IŤ˾Op3Pz%2ܧm6tȣO2jrŰfH]>mpSN'K-ڻb⏼wynܠ-1 R=B0Rޘ'{ KkNl!M[j;xuM͠ 0HqG ye ̧EH!/l:+l؃O)1l0C ^]RB=nu KSqYXv4][Q] UvAHngfːTg= J98d]CCkWXB_51:7n[q0Y\f~'yÃs3|QԝW>xd1'쀩O,&mƽ䵊aLyW29.3#5 9h{;5T)(d0 V}R+%G)oߓu, 4〡 $r-A{8o+V>z R3 d\#+ֈfS¼ ! IÎү|{tс5#Usy5zZ7-ݦiT.pIQ{M! C(IH\zW|:KI5!Q#;=h08o,HTFYͥ%$,wi6[:C.6m `jf9}84CqE{*lSHG恹-c:.qqn]e^lLrDc.f^y&eS`2B;;m Š_tO@p½{. ;=Sy-Ryˣ׼#WSCD]]JC̺ Ӏf Yr3ZaD V$Wz;ID.hJ05 5c L6LNm"+??'sT(zb(EQ!2H{"GR6ϕ~/ ,C}oZgz[39u ,Fa8c74=Njp Dy~V_K-onSQbɎCB"A@sԃB0oNLOk>a`Ai-'⾃@/_s Ʒ?S,K`;fnY1y-8]kY|@L7ALm֘1N}4]} 0I%] uHZ ID_bd0+Z%X#8鄵(h2݊V5r. SO=~De/pKXt@.b%J"+7;d8;\fXokHi<{Рkm(Rt<꼕&,=Z "d+#B1ge B,qJT 23^N Bciy>!LE9;Jo'9R7V]k(/|UGؾ>s⺶\P0de ۴QWGQI#q"9)~_ig?qՍtXRB./~"An<u \4%>>&bqޙu7U'u:_8>bM) ~Qeffy j*pհ &Mؔגc^Bd41yB)aW}8(MoaEebX7j cgp`Ge5F+;Z_`鱡wWg+;;\/MA #jG+6iS)LelgMMUm5z䭘a_U)tP 87S@%+fԨβ2lĒrQW^9[bKU-phvw?:x\dh^`^9/WN"ȬkօU ^Q'(sM = d4<5;(mX4hftٛI9SYMyh 22[$r&DaK,o=YL&Qd{YenW&ަm- ,TK*̸Xg% ~v=_r'TyO _{ @f+6׋6+(ŦkldvKRH+x[3IGl c( OOQ)ď/qgă7+rd%[[YM88U%ڱw'vƎ71q.h3P7sO:/x"W2u,JGU'%'ml<"3j׉X03bOn נ44uqPۭ gWlE.B4Y;@ܺڞ -2MUV142,4 &rM)·sT˒w? qYX}aFYT{jygo: 瞋P|*sRnCϤ},N4KPHEh b=KRV70 ' a9Ytu֚\*-^VxGɣq0> U "]38~?S?z$",E=X&Eb#'h\і"-xwm#!:-Mܪ ݵ_꠺Uh"9^!Hz=&LuZU=ɥd0$$"i.o<#նYItK AemUo3%zuqҷBjAk_IZ17O\ɚFp]y9#biUQңT1 (TB=0$\~*S-/"X7V} * vESzΞAv&IJo&xg 6YarC*L!Bf7+.gG9͕2vw{e,FҢXb6L!g%`f>zж$7 r{ZB<7\3L[yUfQEdZZe_C,.ie eE|zY!/o)5[>y9oeŃ3 Ad3s,Q"mJ9Bjyd@ IWOP\uZy[ϔ.G4}-ی,aC n\ oG6c6R]/2R4X~a!呭1.TmQ-/~h`G@z]MXl^L̈́wO#11U^+gVPUrIFD֍OPz:/1<,|€ih$_`7ǑG+L/Bz'P"% fJd7$DV2$='YOn[rlGr?›M)e.njy[-@$9& ;'jph[.f+:;31ί{u'NMZ,lOq)d>Kr0~̨ r#w-$wcZ|mrAm~yWNcp:xeL{crjEXA#2h$nZ=DOo3L-5CWsƘx2_LLmħ,pS#IZZ(`Fa΂-R˒y=ANBmiVӮ'!Ch¬àJ҃VX-wo Rh"qhlc)3mO?4X33;X][%to_m0Nkx v+Bwp&YC1h ;R`F(s[AT$&;LU`asn^2?|b۹}snYLF7}8)35{ [cOl $'=k̽pJ/cK #Ԫd̅Ǫlf'DQW5q }6ÙH0uˢa5njP ͽ>=dc%\5}D_tse&)i;Z7=܃HI$O9%veZeŽ27VWz.`d;r?Po|^@?,^)g m&;"U{hK;䎜A;cYY) uc%bM+l#^5z lw=^Ró=EmOvh/ޛlтlՆ$?#<ѣrq*_l'@s-K6 E -:t6A,[#`!rE LK@-OzLFh:Rs,Ďe-*0p =|3B]o40ެT q졪Z 0<7gLjCgO-]?Wq%=t38+"v4J 1 q<؆8 WKTz{vCf>tQx͑ (Vɑ| AK*^l>,Zv1$TbV~h5aص$ɯlv:Җu*: հrOai@Ӹz(nՉG42P60(^ճX|4ҘZ|C8֏rf )3u;{M-KZ;a,t-;\Lﴈj[\C 9zWUv)֟i3yimwOsb;J񄣟-Zo vT$|q蓯9/{[|%?Ua+m{a@C gzZRn%8 { 5T\|~I$g{ oPDaHoޜ"(wd=+WrPNxfα&/m{H :DeN)Ѫ}1a4P _~<>9KJ%v<\F¤])̖lȳV_&:|p 91w?2vq S Z{=M+cFa͋QN1g xa3E51^r6Q+ksd>ȖJr.k Wʪ aUg>4!.avQrz340DF 5GD_VFѶFqRaWKG /s1\^;p8FUc~ߝ`g5uI|v4CzԒ2DM!*X?W0D*䢓T G6aH /鉇+Ҭ#ŇO ,:5"1N߄Z1 ;$2mKNͿS^I¿] yܒ`kD\Fpr]@c0z2X#o5!ASBU5Z?k*ۭ{>Һm/sX_?Irqn}xc4yi3t e^c$'oIh!R"W!I*;t5Ǖ,k#BP D֗&]$hM#Ss0P/5 !N7lWO(PMNTT~b}VWKĥ\ikxj| +hnpÑ0Lii*NIH5xpA||ȢE3ۤ);O㓑܂yD ńNN- .6b,|]vl:jk}N~ڔ7u1EŷK?ޮqVf2h䞋KZx= ׼ʔq=z_WscL*٭*D,L3qLS&[}fՖ17 *3BL `--5Oge֮e[" Kвl;'i߄p 8 DBiT-20 ؏nf@qhȕy ˉ}Цcol+Q~*P2Zx_>=@y%?< Rg&^nށS?4nt¯k9ü섈Qߌ|a} K󎅏o=3|D0R5[32摒X6KEYc2m#~OH` HoRXE6<Y%JP]fzT}I̬MTHя]vD"aaԧKމ|k!yֆ%=\n|CePM/;iDeәVCzI.>T R:K gn -WYܝ% jێ[f]a{ ~}m?v`Ae\!#WGQ<72ju1G޹DZ93h$e)whZͺ+W^{4TrU( O\Ҥ_) ~q%–u͔?v|P 'ĥWLMrD|+Zxԧx9nPmNE(}tpA \-PvQ?*TT#e2u=l]7><EFC`%Cѧi7 X 6΃/s&l 7|~>oPrWୠqPH%kDe}C/"&C~dpڤm#;SF Z971iNď{qx8^.Xo'ڄh4E-/=z8I(id)Y,`~lӎIF?kukX͹mN^4+|a'f:%ѣPV#ø*O #M1?ZYdĸۮVt?`k~ȵ@uPwc>TU 6$;IlXrH7z]ƒz42 10-n)#kYAv|EE|n^q"!4h&=>򥃈nA]H岳Erf!o\[a\L!ki/ PqUD$]_/"T(>W,^"<$M:DPz,{*-l-EpR3KS Ip>;QR|Ô< 3bmEc1+/H_t嵹` H\FHPDVɢw %:U1F&}ZlFW{6">nwxHMi Xe+pQM'F^5/$ޒK _1*hyh8{yBQ)^%[22z|uJxjԡpudA"ZȆm*gW(^ yHfq6ɋoGvڟ`GT.McqsM^3d 2;T-i FCsD{zk J_6;f&BWXk;:nJtl/xڪE8BAd SO&)F%Om3!&hluhOn.̵puժf+7xC5QƐuLThF,3רSآ*'hO^18}o[$^2S:, ׵L\=65'̀|Kl`:/sk]k2篞k)L\.HpzK oCrA*ԻMf|0؇m Boɺ,WE${ͪ|ͯ%DJ-7ۮ/b2ͻ#"h?c8K:>ICٜrh6!cK'-"uJ'8\Xy62>V J蠎(mih|+.S"td=Cmn*!W P9{Mn4'b~€_غ>] QaoYem>˷pJ-:s[>6cޕqfjH-s,EHr&D~v}MwA飀O7(&x;1zAeʵ;:j{hy?P 0kJ@_.H6tͨJYxqF—{EX* c qt(<.]"`ڪ2j1c H_WVjtsՍW/*qVseiUr6gL wvv!XGI@X\G̫?N8o!Ys&{@j~ćʊ.S޶1jy.pI>z= oV={4EM;:4&'# ?V@.񛣡|L3yMrN[>!V,2!Њn 4`6+Vp77l1[Ba}vB7r*W#_4"ЈPz3I*(CDz Tz[jZ\#l£yc's 8\(ydy+1 [&#=R{[3P5HzFҬ3"SY ȣd}_ͅTm4 =hCEf_r'ޟaGIdFT<@m1l|"hr@a}y>w݌iy(&a Owئmͷ(EqC؊f.,(- L=[HX@ wjk/Xs"ˇ+e9thL0zX!avdz@C:4̡nN栌D~၊ 1o(IV)!ʶğS@^tp0L¬(GX#x'!~. ȳ;+Icϙ%J}N;n$Wδq3z:IjI).%5XpIa4$K@ 94?*kIG2#8Չ)Tᨬϳvn^"ZnrO1$8oU{Vʥ$ 5ӱ$!,~oF,r9qo4sĖ4A]<nD#y/Ǔ~\1|C"1_6.y4Gԓ>b1&wALS>^l#Z|¯(0HLG.:aLd>Pέ0k5R;DZ QBSD?z{EEu<FF;#|(6=r zUfsiWBC+%" s4^֮bL ,O&Y6#xB`#ݜmbu'ֺ ψ*8G !)4Uu_*6W JĈZsch@|6!: Hb=zLIoy&T呼DW{s~;PՒן N]EߕE:U!ydr '_DpzC('%v.LOlR T-74:/n{S xi RAޅXKe7{._NEMA0_ǺSne >w |f?j([A ;qdI55.\ =7B܍OuLÒX= 9ֱn6y!(bSe$[:P?]h< iA4wdr]>-eX)q5;oM]>#E!{,qQ͏ڑ{JB<㬚Rg#& xu GͦyMW?{ hr1X4$-4CJOCtO 0PDr8T"zLZT>T8\3%dD5̙Kކr w g#SA94\1b}1<$l;;~l2*1ܸg@Z:LqVfkSy~x@{knJ f%%. VXD(jH[ ]j;5N9j`GԯElB`MON{eGTɾ lt S5نО yg  -dr%I'4,sMoCm<-o@%g":>n푻@Jĺi0!Q`1\bҁ60;죯faHS'?#]Z:aj,m*2qBkd fo{Nl*n7}TCaW*b.b{L":='Pn1$3^(lĒqZy]UшHG RRZ&_[VkY;Ly|(],LU &#_O'wW)%)0;LuP.'1 . c"V`2]chjW>[JDSK GQ]˩-elL)`aH񓹓¸ӄ4`Z≧6 (!q(v0c .LLF+ c u0gC}0|2<$`U,POCV_>6yS1Z rExejTq "IN(+0aČ,Y^ 7HnP{G zv)v"i}npLf[7B6}@-U+NmzdFJhHLv(^h8ի-x$eb4Qi,Iv߼mLFbȨݘËgDV!ǽ0&s?jP.T͎-ñpA#Tqu,7.lE7as5~u&}7pM&ܖ+NROmOXoI֧,ўXf{C_Ab^3jpFA('4\gbi2q>3ΔUe{5R)ػP5`3n endstream endobj 2953 0 obj << /Length1 1828 /Length2 5623 /Length3 0 /Length 6737 /Filter /FlateDecode >> stream xڍ4?N0Bx۽ޛerVvdGvFIȖ7QP m|>|s~sϹ>|'A!B`i@E" "B`0'c4cqH ZX mP<1P4 ("@ĥ!`0 KJP7#hbp w)) _递3Aрw&vAQ!=SGw݅8! ^WpG8u?Gt? QqFHo!wbрBh1cbwPCsk[OBHd( qv=h{D=um!^~BQ8 1EĀ_ԡMJ|8 ᐨ3~!N GqT?"p=A. qG!h;1. c4ҕPC4Q  i&s c}8Xq!axnDSN41HLQav4o++3NeepG b¢*P࿙hMxJv? .[8WV`10?2R'P<?~3'[:&7{quvHz5P.(Q$#0_m6g($!,  q`NG/;a~.8bT`Ā;6=~ 1xb @@`T?TJA~#IdI ؿ';1@cP!Ad  cP !A" cu i8" 1Hc17_7 ;'Z\A"O1H7XH @!Q ?@xw̱b 1H$w  1H/9b%/8wHFb-&Q=0q L&ȱa<+ s4] Efn|*#\>>tQL׼mwj{web<ϰr[d0hL_S `Yp7]Ul|zrֲ m7>,('$;{F8x&=ǿX=妯v֝&3ӗhߡi HƪM[y,լ%diאD/W VU%'_sa@wdglW>$/cWЂb?!R\'`YR-p䎜p]ʋ;&e%R"\U;n2T@FT$YCxAfn|PPgngKX 9kTõ#i@3V rwڨV)Ppi`usY=cҥ؞:kim'W6իTZ߷dr&.||Y+.m4;(ݔQqreSZOiKxF}ݦlYh%cE9vry`us.U%qAk'Q9TUEMpks'އ4ʀ& ؕ7-|B'wi8(/z*;"W:iq浓'*[O:v{'_Zm_UD t%e,.}Hj02FegC;Wy0R*\)Te6̜A_\'I,tSsBuK FL߮}bnq"ݦsR j.+Pzr+aDWG?,P3!g"p6;H|mKkL\fkc&ƼuV~$ xIn9d ތWgYؚFk) ϶N ~X1-HnyGaA RI)(JT_MC,O7=jśLԜQQ/VuRfڨ=m~;dqcTJT{k#-'n`Ԧӗ;ʣhz'=\ȃz umXܪ5\7%[WW|JI'H&̜Ek>]^x7 ٕW?q̕?)z3nE>OL&w]yK|zAިҝ:er,8X> wZPեb]C۬XvR{dȒg}4e%<_ HfX~;^޸LRaxs \;pE鐹gJl( @:lhŃ}V٫olڇPCEsڢ>]%aQS` `o1x➑:ܭXfS૮ݾ):*ƋkX}s^WLן*̵C5ݎ-[887ӄ䞮T%it\5N)yw9\濝 ֝`ʺ_eݤS`ܥkm㊔@tkеxa!klcM3#W[ۤJӪ#.Yqهv/-סf$$9Qv.eđ91[M'^VGy8dpWgC%S:\shJ/A]syŭaCJ cL삘/stS:r4קg׏_xGzE=YV:B[i˲(tSp˕r;:dSFM1}pB ϜsveY_u,{w/Ǝ|v 8ޱ&5^S5-քF^(y20Gŵ cW".N{bBf=i&muNh&~\bHT(WBc'fST$̈femmŗB)64 "Qo1'd5Ŧ}njy?8c@c6@N U@g,\hr9Y򻨅72 4eQ.HM2ɏ'RԀn䘸u3XNEd7S1z=*U.PBfh;3T\ǖbVH^T-:WU !PN^ j0[]XE{}$%W r7 &*L˵I3<͏.7s%_ C}zKGKQZg޹wȾr-"d0:0)r5HЉ0%;x{ \_MGS= #QyoD@"V*1Q~y_S6FϹ<•{) E!x1:h::Ljd_A=sV#4'>:'n;+zi%-LtO8?栨Z.L{BvQ 2GQg]YLRSaFI ,+\n,sskzid|v4ބ }'/08#sĭ4VH9ezzIAE5~?.0uȻ͜.W|m[)A7z^KpA}bq}i?FjY箙}#r;Uڲ)Ybh]ܕ34 'KfvuMi>*m8"eiH;'r甦woJ:ig<7]dLhWUn&J-afܧqNDtx#e#*KI'չw} ;e>_m{I$J5λf<ƒN#ȥ`HMܙYҩ,Œ'njߌbC{TsGo {҅A|+"~a$5uJɩUuwe<ד\#3jBbʲ U#왩L*:/ioQ-}28sswOJmQ;+ >H4Ƿ3pKv鶐۾/3+dr* {iĮR%cnOpsa>_ ῾LZSa>_d#ԙ*P'Q9Lj5١QW/rO9UN[T^[znš7 HQR$ƽ,.b?4>xJ l zPrP\S |[*M|C UַK^䢴0"0Nw:C!e5o .}>۫,P6urD,V`(/8[geUB6kBD/$_Ҡh֕x:`e2{y"m*Wa{;ԚT!҈c, Hߍ`V\0=/g\mOve|*\FD_#3~LsecFڰGTW2!`ɥ9#gM[q9a2nXGے'm /sx_MU@_:DsѥS\XXfj8 \ؚ!-mPd岳QH/yݥ뼬3͔)o2L%-0{SaP~ul1#[Lz[{_ͪ4./Ty`'υ- A1_2H}ǔ1ݓsQfS zjc_䇣(#QNk B|xmEӲ]شuYjpwDu5fTkGQԑK}6?Yi]ekHUW"~,h[g&7h]Aj' {5鄌Uoa.w鿸eN +iFI .Ɣ YdU+$OXL[\l!6p0 K*7IE<\3Z/4R+ٓΩ[%ß5E^48mXؓj,R>wfEH)<:=TwjS.dm (~bػDS%y[_XZ-ZmjקʉGn e@QխܤX>9b۽cQ$J`,M^Ksa"5CkG9#IMqA{YՊ1T\vY测>u0(_2Yw%UDў|4jUgwbBg}YlNͿe3}4b2hzs,͔"mb٫R4:]ŷ^3m|t \#m<1WyyQ 40ܹ觼yמt %u{Ta0곧p9!ƭn TEr b3gkyp1ϋ&um>vKՑ=;P1s^yWe)~t/$t;4e6/Qsׇ@9RpckZl+,ոW3oD\LsLSa>.SCYLa$ŚҭGSՁiVީ<[ mOnuڶ ^*T{\JԌb&z<qƹ΅yJxu*AIaxk0|}+ 9u9yXS3ZG-W֭ӖO%=2m2 k6o,)we#4V}r%_ M)N2+[QVw\-}l[()|wO ִ3޹G6z-F9M6'h9X.X, endstream endobj 2955 0 obj << /Length1 1341 /Length2 1434 /Length3 0 /Length 2301 /Filter /FlateDecode >> 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 2957 0 obj << /Length1 721 /Length2 6909 /Length3 0 /Length 7498 /Filter /FlateDecode >> stream xmwuTk5R5t 30 2tJ ]t4 HJIy}}׻ַ~>g?g=k8X5'TD@DPX`a/",##PCAAh,  " !!=Q0W4ۉo`A`0 G>9>}G( ]g P3Zih5 P>`8 s"<g$ '8!_x EsF!=*u5!S5iiGeN("U? sBPH/ߴH?0Ax@}pACQ}$B Ŀ, C s@0o X oϽC!0s$?G􍍁f|-euCL  ? >lZ῾#e"Dbqq hBA 3˿ߋAfNrn!E|㣎f|"s#G6^WS|_0I(Jy85nᲘ%jڨ6Ϝ(ݭ*Us,k'_y5?u̴M{G>tFrAZX5TIfuYx*h6h'gg~ʧd(MK~ 2@4KZ*,bfIvjA:7"I쮿eW3}ݔ0`o~ϔiRm.*2ua-ɗ!FYicD'jz>+dDBKx|'V6_x_w'ȽiB&Jw'M* {b#"߼p7)T)M¹hkXw6=Y,* ׷]ٌq or>+'~\"&3P"><_{3z `<,G/oM >+f4h,h3Ʈ V=6dEMo1dnhe>/ȍrf SN`f]ȃ)%IFڪڕEi,n]t!T>sffVx]ͭ](pxu8^\Efa }0iOO nMl: 9]%iL #ǥdOxԓ4Vu|K* eOtn>ʿ1ډ6fWqiڄ︯OBٛn0?tZUc7$GdXP*=kDɠyBe/r-r8wlt9*[ /{#NI53~rݡ0&xͮ >،}*6qDg%ҿG@j3KC 'eԩ 6짹3 '0wτ-}0|KH)'QAɸ nGCK=vrȐ޷?6j `#i9Iݝ“0u ^iV)g=qAp-`j*ǔAoS5ѝۆ>F:!jkTOTwq7OS7KD]a =Hh"xS#%o~+#+R:иa T<.l3_|V{{4.9jV Q^C)}RWG͖ P$a6]mM_42TUjj͆m~KNT]16RR q->hlsFcs~ ~OAɳ<z*}oLsGKa[@h;U1o9Uxqeb~gf/^$@:W=CZ J";K 8 EAgzE.M/1!ݑmН=<2+gեrPɛQh4c|& Ͼ'|aׇeޤ/ZEԌYk>!wn?Zʡ9l e/2@g;?z2$铵ЦO4~C.iJؔrIkRDP4*PWw+TO8!CՓ$S&O,o]ULUh2v͐N9Ռs&вĭMhc&WwڌRlu'~p晻 1g2p˒>(+4v$ pie`"!\3okWɥUT|NS?j K&?Rf ߠIeS[b[}{\w_SG'!Q31~XWΪwqjV cOtg[}i*`Aw9nd!.b :pr3oX!S1Qyez1H1;ۗ3>NN+ᭆld 6Ufi YB3VMZⷀga%ڵwL^O88 xP̷w-7;kKj},cv&ub:qD{qӦ95"  \YH${#)s`AXKn6Kݝ;c804rdYA74MAѡQ]$AJ'ݸ!􄕝M[KXeI͉tE"Tr}~is :u<1x=CmVyn25:A7|%55@x=dǍH>`ϱvBA}csoTur>KmY0s0G\ K-o9evVb*>䢻pKrZAf,LF ݄IՖ4;S)!Q޼񣮍@X=ah>c`"](umX^A"1Y2%L@ z߯wMK'ԎP&+b QLK /pb1Kk^1aaO145gZS瞍Q:Lc7slT6 Ҁ,1k3;KY6PvŷJY,L] D^\}K*̍bWQp [GCYgm9U2sd% FO;P/w wo"6{^Bgʨ$e%XP<֦mx4;5 ɱJռHg?:S0k.O=Œ7&I} +1{]o}yHwwK: wlyzMtg؏jx6[݆)Qƾ5-JzVansf8Gfϥaos/Q=e}ւc1T1˨ ߏ1`hWg@FLuyn %T]|,J9? -fZY0$atӫMG7<MNX2 +t0jАUU@5%)r`%6.tY29=E/wlaE ӤY&(Zuj>Y"l_я 1b}Tϓ)Ks,И nUoDnJTl~H 7z2UaӬm'a^kn~Yz?#4n.E/zMGR^Od,JJZΊ؉C-ا H5wk?\sutVrlm ;gפj 8߅}@9 (]jG2Ucًq|*1YݾfdE5läkFZ{1mDɝWjs3Ud4f5rv_JJi ď/<7ewt$|x >n{Ł#٥ 2?Z_iy\q^(P'6Х{+a8sY|:0Lx@ p}l^4)dh>`6A<3]oVŊ}%+ӟ=y[0 ." 3M-IY)^߫G{|+q"IbYLpp @Z-^: %4d L߉mcדm*}r<KwZ*_{f=uF\e&G'WfE ;R(nkK=$J0}]BuU~ ἅuֵiU;r .COvIM=*GE+ xOW-n"~_{z ?7 :Oԍ>~ZMMف9H~+yo* ƒ0n;)o.B춬u^# 8P˶8':wDO*3~6U'gs)>hN.{4|~Nc0FVhՎh&NB MٻȚl.cg+U1C,44#'`Lk)u*T/MFeIu:i8HQV$ 'ށOI@eBEwK2G?Z}N!V5W{ٟrf(Cm%ɧ Q v o%5akeO(kR![{Ma`s4s~L鲲>YQmyq3F6˒>v?eoJ]kfdU5  `7&b]rBYOm_Kv_Y}~7fŖ'‘Y S69v2~hu"^nRSm]7ٔ|޵ *Օ?ڱyg&mb|u_&> ӣfDt6rW\{t9Iܐt̺u_Uo nbVsnG թ9 C0]_ !<=ۼ a:q1aa7 T{Ү(kF3 2J,B*Kn> 3䑆Z-ZSGFJS endstream endobj 2875 0 obj << /Type /ObjStm /N 100 /First 1057 /Length 6724 /Filter /FlateDecode >> stream x\[s~ׯnfpR7vbGG[)?-qM I_7fሒ(aT"h}xt jPt aF%(o耆Bϝh9T'AR@D5oJ<ƸiF@+cPi8VW +vHvzMu=pJ9…jz秆v\S;5- NAi0 Zv 5ЗT ,5&+B&kځҊ6@UOU븗!&M+askiG/MBphYh4Wbtskhciu`CӼ5F ,M N6@ҴciUb&Z^cBEKhEҴ-󇦥 *1bM%쏠82 Um0µ ֨25B i1MG,K\h.sG-ЦI5zQ$lJyHOuh{|jIv 3`whaJb@k0*1LK'8`xMR&p6 6m0l$a&0pȂV{aqP[pZjHXjN7.?YSKnEvcDsZj?y>U!4g0L>mG]bsw] DŻҭڃ@ίZ%MhVzߍ]AuNֵ$F'Q\wwa(<\Cpp xgwIn̍"}|PI(CإpI} ۠wu.[`xR@1W:f^!Yzs2"nq5auhapiO kqd@n< AqV&gv)C d`V4_-8ҮGo[LxfQ>1+]d]M%9[ BTj~C\ A^k&r'wU.B(RI`@EQHaHi(b8\&dfEH;[3!?ƺ:E٥SL 9X4p_㙰Zcxl'eH|tIPxǒܫ$e`#BғA|dA%#x!O8_ѺU/wDe'h7r˙1s mHI^8wz7lvrz!̒"o}ZC,* \MB8Hn.-2+KI.~jȱ˥:.i~*efYBɔfz䟐,gm:۱wTSI5ʼWR\ w(v !JJq# Z5O/KȪJeB.~5j 3r,2P%]en :b]J^忻Oâ\\[Cn}X)$82r$(gRZؤ@ C"XOP.A7FkƱ+!P O5E$ED $V=F[0iй+:RϒJG֮瘝gd)n%{8#m )Ĺ'z:C%.! 0㠝"ԡp͸% G ɳRYbuhftOtD!e&|$sa I4;0,{֩C4N̈́8:,c%`#c`(4X躣-ij]t]J/Qp88Ap$OmKYn@M26qHn s'x1Dq"(VSPHq2Y`/GM-qs'YBl&2:8IXǔ8r:1乼9w1ɝ9ڠѐna#cr#D syk%AӲ_d,%hs6~ X$!NCJY,4ɥV 0'p.LP|֜:2OVy)hVqA2A]/ЯwD [Up-[賺%wl)mنUA@\rZ{tض4ʯ,a׈G)',T1 MƁ30Hu,L>UDj1LTҼDm s^ ^/K;[0R'&i5&ϕ~ 3&=!pb#s|&p9ţGR:6qq}m%)y5.%n0#n3V闰\̶-2eYe 7ʮcP:TI.3)Юd7C"L΅<Ұ,]vt4+RGVuyI%I$ \.4NdQJbR!,sG*87Ufi,eUZ6O!s ?Z˖ 4{/4}y13,5_N|jq5cUUvgPet- -Ӹ x)I,>W{HeQ]sBtV+^p{;<ի5byڎ-_t̐im%+' }{ r)u! 9ϡ?Fw _G f՚Ca9~OBޛXӆ\2r>(RnwvyHK)=!re/ᙉYV\3G7u~?A+%7w .Kv:V5Ǟo5'َZqɼ) .%rƾ=N"FNHi&_ڸ\w*]-D!*H;*' mޥ+;c 7e<9D'([zj~Hz6q:X4:WZ\ pJjO(_jLp_ ks8u9τBR%kVɔa,s=mbqb5#g%֟@yܛ@)KNJ)dȾAD~& yq"s?QDI9kIzV_իu[گzW}:F/P}oj^Uդt<UjFeu9g_ռZTѷѴZTpq^-|4gU^]{4coLX$w_L{G 6 0^2q\,}U]&l2vI[PwURjs^ޓ_1,ڸ!i@{ a߾ɢنëlƱSk8CQ%~ϪԾ~ez[{/Őt<E+e5a3eI}\irFUA^CZe\u!D/6|x2_㳳Us\/Ƨ_G˼Dkm>pnINpr:^\NruڱT(ZF*VX^]iVY*9^,&o~>< 'zcUDv9MmONGǧ5GʨVdͫM2jtsmEmOPk{{WkWT:YN.aP>|ǫ?P& Cm9b|4\步: />ReXƸ ,V[Y\tS%.Ƭ|3V*gB+Dз q1Fk~<8~׫h՘!mTTkxme_ux|x7(SUXo_X@!# ⨕|eji\/[/x)ta'' Q K(ᵕ^uh O*yD¬erV~gW1ISr;dUGrT /H,SHvl)$o[o( m rBd{V-\TJk{ط>8}_KG/7}fy[ U8K[ߟ?1$ %麟`tHBfgI"rTӳ,"g?w <"N`kp2&fs5y}U:9.S:Wrw5~ )Zb^DrAZGid8ned^z +C- ?'r>X &VǣMfG T{t1DsIa:}իjJ9Bx:^d0iXV/m_x;21smh.vgBt/Q@nIeKHqc\5['G06x_E.V5-IIeZ`@nN?O͝)|2n nVvޓ" /Fi. 7$ZK޿BJ&ۖW8n+xsƻIR b?"EޯtFǭ$pLNOξrм98?60>OF MsWwn#&r kt<=#`/_O?yO} %7ItzZ R{bp@~ j1>]/R 6{P75e~\oc Vn w]@BI֯z;p%ׯ\z-"  A-"tI{_-@}3_߁`(vcI=7 `i{fYf{ׁJA﫿z3{\lO\I}8{~=}ԃ{-ɳۃ_PO*=[=Z͂ t-7p> l2>`-m'Io0>(6܃%GnW]>ߺ\Eu| Kq *ֹ'\.J^>k(@Zf\r%#LGл/(2>cBChMOr4'ew+me26M%BlE@_wAfٺJ !yӡzhz򗟩"L@GL4TSqecdM%ceC2Ӱ4,217r 9E0 %cCIъwR`뺩=_V:k6LI+}AL?LMo` dl(C@5tS%cCrX''gvYug endstream endobj 2963 0 obj << /Type /ObjStm /N 100 /First 988 /Length 1786 /Filter /FlateDecode >> stream xڥQ% W?:lXB / & ,0G}ӽuS_٧sXU\z -\Cv -D.&vu4-kԂܵqNOm܂*=ڼj6XkC(WW]ueUjrW2w+Xj}J'tFImSJnU2VUՎ:N~ }}l d3a3M`7++ b3j\!{¾dŞ)>0J떡bWRЬ菌b6U7W\C& 90WfNy`((6X+#M Ilždůsq\us͕|%d#vیڻ}N;?^m*j [ mڶCo^OoEvW؎\,,?2HŽf+]Azd5-xb~;y;a)1W7 = Li־i闗>|/Q6Y:?|?ןs?ŏz[|k_^Sw ة#q#WR6y}P_ZQ^J}@Q'xԜG<ڑGu> stream x}A7 Es _I#/A., #â.rpִ_aj.ҁ1Ѹ5/0 `ߛ\C<} o.˂}͛DŽ2lR߯tWb b/`o~e'Xv^_Ú%|EV/}0YaZ~ ==L['كsyC~擇̓<xc<xq=}N)zS9>sz 9>o漒K(NwnΛ/{y+2Cl^>O޵/xc|fn}ϑ}>K#ϑ}>K#ϑ}>Gsd9(}s>G9J#ϑ}>Gsd9(}s>G9J#ϑ}>Gsd9(}s>G9J#ϑ}>Gsd9(}s>G9J#ϑ}>Gsd9(}s>G9J#ϑ}>W<>~> stream x}͊W G:`YB^ / !g9jud-O|z>OCv8~8:f~c.vX'ά,yYK_sL39 | G)N.%aފ|AW^{gw0tqn\ܶ/v_}~rјvŕhLnsd< v1vc(mbf6`j b wo9|~HcAkvH JgA  dAHayfA X,(OeXPN jcA}Gv ypu XP,Tj,TcA,' xh;k~m_>s{ޞc޿YWųz̒$gI5BV˲g*Ǭ[Ƭv޳, Y#rdow_Y ugIطeMϪ]um֝Z($d,K=kY- !+coJ6BVޜ[%{G=2pZ{uZ{uZ^3d/fK^{؋%K~:Yd짳%όpd?w׮ҵ+ve]Uv׮̵]J׮ڕvkW\2.wT2wV/2׮K8me,tf-=Re,diuxgi5CVϲijJ)[4de[{؛GeQG`o{8{5G^K#c^Kk^%׌8{)K`{qRdϒ %c?,~f짳%όpd?~{`?2}Gƾ;^}wgJ-KZpS/]k˧;{Epek\̵pעt-kZEp-2]ҵEZkQ\ w-J"kEZ"s-ܵ(]Zdk\̵pעt-kZEp-2]ҵEZkQ\ w-J"kEZ"s-ܵ(]Zdk\̵pעt-kZEp-2]ҵEZkQ\ w-J"kE2k}U\m=QfIYz7>븽O7tO7yR[_z~gNϿӅbeV.6B>myuOŞNe<^ВvlT/gbٙ Vl+8uH Zˢ@Њ(}c:h@6QǮv 5î]*k]T%` 8vπ]2ӱ %>π}fاc p>y癄 endstream endobj 2970 0 obj << /Type /ObjStm /N 100 /First 883 /Length 1512 /Filter /FlateDecode >> stream x}MG OQ7p#/A.,YF㇜X8`nҼ)RQCi\ۯ7r_Kye)z/eG?s+?xu7[cbBE1OnjSq*>1>l1>|">|ŌCWJtnj/3Ōn=, 3|sˇ-f9>|b|F!wQ^,e_]> Å123;6;۷ g% J8p/(wk?3|A gČ/( _P3|A g5 j8C%g/ _Pc5_o _P3|A g5c% g%tcY8u-TdY8 p&p&p&;LLL"3^'m8™op&p8o|M|~oo=߯~~'~zE6EIB)jF8(zFkV'dB]T=ܽD]'6E.J3 S+r u5axF(Ψ?XNHOӱd -mb~:vKvص[Ǯɮv5ub®&LRصcd] v2sa'v.ұs΅;vNvL(ܱ#1sǞ*SJT*UReT)*]JVL*RTJRTt*Y>JThݯQKTWh݈)KuQQ4D]K3Q}(nQ%SJ8,zqu=?˦()Q40E?!*~D5YI3$حݒ&v+cd u:ka]]'v-ֱk.];vIvإk..v%yb.;';O\إcd;v$;&vvؑQd7d endstream endobj 2971 0 obj << /Type /ObjStm /N 100 /First 952 /Length 3575 /Filter /FlateDecode >> stream xڅ[]%G }_яHIv}HQ$B o(C4؝E|s۷/I9NywsISrS_ԧRw≒NisFD>SԈVZN:TYmXZUJ2f&ʺ'qm"'\&q5Tt\MǵZ'5"q#6aT2Ԛ~"ԋ}iۗvKٗnޮa_c"֦XIf{^8)>I;K9W7V>*)I(c$0X%Èb R;6af`Y?3Z3Oڠ̟zkqo:K)R|TqKh)ZJ'K]F}TϖbTurT.nR HOc|P>)`|, }K 羥,vBrےq;m9mP\P\O([[@q]('-5. ŲB3VeaU~Vfܑ\>X-7*9?6g92}HEtmb@}m$& b+͂u୺"V]lxk_o͙8!+u!q n8 oג#+Siĵh9͢nq84vdemX)F\#J!9W%8v" ]H,ׁGf8q~WK9~+ Uy(2ցVVלuGpq\ApW7`bFu$%Y5!9W6#˴94͘0%XEWyNMCsD3O&xٛK^ĹH }geqtWL]f?$;xk.:xkޚy֔A^+@GqB9=(sXSX Q`ͥ\zGwNeǛ+2_oQH#,T$%ڝru>T#X($4jRv2A)0r7\6TeBiDD)e%Jm?(<2Ea[rhzlrj YuL- s+iQxXe# \,sQVE">;ە"n0 3JbKSdɪSDUnYjhVJ(a+\oͺfN o&U8|oZ1v**^w"j\(q7bGP+qjL#sDԸQVi%?V}YQ "y2(H/pjUA#Pm\Za)ƀdpvS>K/^UKB|mMbjs*jjs*Bpy1'Yo kNjMN q  .6ױ|,dBVCJP 1P+ZԮ@sQN=B@!HR_#0v7A0ZRQ)2B@P9 A⅟~ &^D LJ9>DP&CAY,us™a݂W02" I<O /@2" G_-ŹW {?| &^T$UBCJ ^񚄾Uo[0 PXmt<3w &A幄IP{.dE]ie/BVhоc8X-1Vxc[e˻z)*%1PCj3vr/ڻ?sƦ endstream endobj 3097 0 obj << /Producer (pdfTeX-1.40.22) /Author()/Title()/Subject()/Creator(LaTeX with hyperref)/Keywords() /CreationDate (D:20240530220231+02'00') /ModDate (D:20240530220231+02'00') /Trapped /False /PTEX.Fullbanner (This is pdfTeX, Version 3.141592653-2.6-1.40.22 (TeX Live 2021/TeX Live for SUSE Linux) kpathsea version 6.3.3) >> endobj 3043 0 obj << /Type /ObjStm /N 54 /First 533 /Length 1967 /Filter /FlateDecode >> stream xڕKod\FHz $^^Ll` "yVJQӗAiˮV?F+G* x"Zjgfzi؟ Qi23G\i ڜ0:m؏21]-{ cw{@sJxX\(z50JȅOp$߂za za ~ 똣ނ; T>22IJ$&@QpA.t$׋P$׋k1fG ^ έcj$[Lᅋ\/]/ 1 Br_q$-%ShA"ïn}n]܍Zl;{@whNYo58%wTwurKpxs?hf:voz7r6.{{;@sv=s.:vWQnx&ܹ@pxsUxr8o,73>ݬ[BwV\w^wY[)pn =Yosbe ,vQx^bB0}W` ]F{ ^++Z)[RU~U7~U}U!b-_{}ӟ7 _5xkuõ-^444<5x^kzln#5xؽk{?Ekk {+hõ\}\ototo]x^}kz~n[หwo?o̓o?uoÃ_ NG~+DAsͧ~}]}tzDs{葃LdUeazC3mʹ5~h25G| m2iˤ-eǺ-7xu2cˌ_lǑ 7tQbNj9`r9]=lL^3d:h~϶X&JM/>Ȭ؎ر%QKD- 2F;R$jIԒe{f鎺ܕju˞H=z",tϴ'ݺ; P=FB,ȼȹH,#K<2?+'% % e)kL1TTT5k-t,6gZ_Y$'$$d;bRIRIRI[UM M M 2k&ezhhhhh~ؖfWiN KC?}4__~y\]WE>O~x!"ROW endstream endobj 3098 0 obj << /Type /XRef /Index [0 3099] /Size 3099 /W [1 3 1] /Root 3096 0 R /Info 3097 0 R /ID [<2CCD65EA38A2B92AB004515706E73CB7> <2CCD65EA38A2B92AB004515706E73CB7>] /Length 7425 /Filter /FlateDecode >> stream x%{l\Y}7?8q'DZvIlv^N8Énͫ+A[$v]^Vuţ@+qyTP@VtҨezRv>~3s99ߙX,x,Y,\.=5; GMIKhP6Z ԡͣ h hF` 4 ؎v m7؁mvFmvw=D t{w^Ceqvhp-[8BKmvjtG:h/ЇV; Ck@ f 0M]6 DkAKBGSh;ݣZ+Z:FK*g v΢U[q 01t 8ց\DB{fCgKhByCh en5*aku#h hw7%chw-~U p8mNA@ӟC@Df-ANԈFn@b5&¾9 H 8u(_$R9E¾y* 94ڴc}s2 &Q$)E¾ 5%eE¾y,"aߜE%E¾`H7fH7P &E(a/*_h硄/"a/* d[P^To"a/*Khg/"a/* [P^T"a/*wNC {QaFVG¾F΋)>@a@ӗ+NBu 4}n@j0^`媱 {tTE [Uu2a/0n f{tT$-5LM [}P{HT@zH [Z\$ЭP^$-ق {a!(a/,E؋ {AH؋t? j뙼 E;  4v@Sa/h {Ah=@ Eۡa/hMC^( F6h @ EwA[^(*?&;"^(E n428Qt; a/h{An@ a/hU{a25@ ja/h S , { { 셫hq8@ d3a/h c  vPrS@ۀ^vVsGi@ag5[ ;Y!tPr @[^v}5@ag%]v]M@ag ݁.=` ˭BW0nCu)4> F[P]alG[!{j.KS#%wZjط"˲"=`T]&CM=D {{ m{Ѓm{@sf;7m{@safmagn{@8s=aΠ]v=`{ %w" @VIh7@;=B{= Bn@!9{=`ύC($c2(T@yroU1NBugђhJ$nn;&rdPu 3gNNֆv*̣FS3\јrǠ2U4fXė*7ИrꞛW BcʩkWhL^UPN CcXdC4&:I$';njo%zaL݉f@MMI4jИqr{@3Nnh@ۡ64: mi mvm`'K.h+ MF/jGQȽhw@u;ϰ28d.Kɜn pM=h,s ^MVu~8LfN5A`MV '4p'#)4Z= iCǁh2r  1 '{{ {ۀ^{{{fm:  : F@ž@[^{{ž="@3 ]Mgw  V+aq6T'{ӟC {{ žažT A3 ܞ.MH3xܻ*հa0z{[ wJW{eGTpNP\W!%)mZ^b.Cq{=BR*ѽy()=}Y!^%( T{@ {XexxB+ģwJ+ԋ*BK}h硄BK2+ޭ a/1z{P^!%W{P^!%<2S!^b&BKC[W{G4W{ Y a/ a/#a/觠^b {IF? Յ2<}nd!dt]dPua/td^яCe^b繁d.^ǏAeL^⥬& {^T^nKqOC*KhL^4VnՠkIr6P^{O {h,ŽCP^YCc"d)^yƳwJ+И<ّWlVZ5]=1N0xh}Dcu@S@ Z ԡ@4flCc㥡Mv448^؉3 BcwvBEh<'{(]^4;}hx<]g?f.fA+o8@Ak}h tGch<'{u~8ɞ}8sWu0pʅu(0ƳY P {CVA g+&ј)<\Dc"pA4Wu,p }ј2 p{z Ɗǽ]{w7žeށ.=U @سxP Y{l=Ō{:=❌;{lB=b䞂{D {D {jW {DA`=br؄=b"pO@Q=bVɄ=b"pCeZrL2acPG\5LM#&@Ւ .=bkWZrCWZreaX-ZreaX-aX-@#VK~hձ5aR&K&l&)$@#d/ Ͽh=@#릡M~vXbG-vS:~q&9G;}@k.] pGǀ~80!`8 Q` Ng p\fŦS\Y谪wT뜘2p \w &F\n+m`5XcÅ\s8$u npI![6/}N]G)f!E-Blb["!E-Blb["!E-Blb["!E-Blb["!E-Blb["!EiotwU]f,B,b X !@B,b X !@B,b X !@B,V-P;  4ہf`X ؽjwtH`/:@p818 'A`N#)`Ɓ`p9`40y۟*p ,7 V*p k!<6  X>𱀏|,c X>𱀏|,c ;V刪ޑWq-nQ|>>||>>||>>||>>||>>||>}>_>;9>>||>>||>>|| ۴K͗νz@k7Ў@ZkłŞ˫?בvuҝt@.}(ҽŵQZ(faRYz@(aiJv]Rw0 8,OcKIgәw53ܤkQŢC],,A2pk{4 `b4(.h9βNtX:!p8Z)EDK,F4- W8Ω6fE' K;:j,M^7ᰌw7O̺tit٦61;JӶ#tsl4-Nr:AKnjm^iml霴Gfo' )'D?5 <=_k G՛~M'D;47@n#0Wa, ɹ^+L}fI'@(&;6iSL\0Hf^٫G[4{?i:poKK9XMMH۰_оmHK<^;x7ЎZ'Gt򙣏RJ:oX|ׇuB[264Uk1dA{e@%{ƃѦ c lh'@R^ ->{Fj4{Xi }h CAP]~=|zU -fY4XԈ-4bhkɒߡ{]>!M;M=d{V®jh>.[}USYK?N@C ;V@[rub-y"Mu&OYrI8084^Ow%{]`[M-q,|w4UiUZe`4UZ7|ኴu ZMԋo5TE各%?{Qkɿ4UGFK~yA*!tJv%itcV]|9- S{,ʯQu1HCv%q@'^ےi }|5iGa`?~Ue,'-- izS;R%!K9i*yK/HTalZO߲jZ*pR--v=G;Te*YoMG#>7z!7qK%GbZjV=E7RWHc=虨R7^ S5h$- VaKZT:RRF7F@~K6r͐NЗ`Ro{A8*LX ND_F*LY꽿+M:%(3.*[b&pRNǒ>CieDEz4AHTT-Y> Gt6auIY(*\d;蜔 -?8YꕯJctt DecG"UnlzC!tub°C̡"Ps( ;TCzm^Wm5ayإ#Vj~OGV:ڙV'1df޴nMG':7u4du}NZțt4b+::e/h-:Ѹ5M:RXIU#iN*ū$d5|5|UVŗF/Oi> stream xڕSN@ +|L$b+*T6mh )G~o  "ś8 _@=}D JgkB`02gl7>'LC0Y&{Sr<6u@׏0b~:R`GMqiˎ |ʘףZ{T,#t~dq:87q sXQIB}"-z8-U+Sf]ZfRj^Ǹ>E̥Wj唖}1lxIVF^O,8@N-]Uo֫/+SAXuCl.xZf.bmy9jiԡEY/v]tR -Î@&{zư<HP23rD̤-}s endstream endobj 72 0 obj << /Length 600 /Filter /FlateDecode >> stream xݖn0~ K- tQNI- oߑ([JV@O#qf8dhQDrpX|ֳ/ـ6]͕DL!5GDY* o`{rb8XCQ%ʆŎ+28:vm{ł1hyCMn/"!)ޯ\uI4NE72 _(fl\tMEŜ<֠ Eֻm^eWخ z}]ԛ]m5L`܎1M(f( 19G[>DN-[f~t >&j4*_6UY; Ћ.H+J' > stream xڭn6=_@"Rvmk0}e&*K(%"Yr:<M]DwW_p#sDEe AY2^_v݃[D$A,IiFFaij$Zm1Y, <^0wmXºN5oirCGK 8uoE)wmXifIS4*vGPe]wE6;dgI,C ' Uo \Pun rlhM4c AK."fyc=+(K9ț#:DCN3ҒC.TN1:`c\PAsӡHxֵ_3"1* r H(2S*F`5]8 VZM"f'V/0g' (K*@}a N)#tj0#|lTF#|a)8#*ׯzr1 ӧ|Br9d ݦҒQ(>VCKvb{miNad2>/|Ecr/]s;F|pU 18N;sKNu斡d?YC,\jYkթ;,!][JtX?2(Pyl`l 2!xjW6RHZAtFE0{1!sKy:fAwP&(^O1aN/aA]gP3s:h!Bcf.J0#й^WpCھmJV9:s!'&ӀxhP=8 JOZ9gEP) CJ䗠j$`@34f)E1N3WòA <a)g~,6f> stream xڍVI6UF%,qr\q%8ݔՈ qģ}-{[  7oh@+$$#Y:7f+6ۗ %9YPAʃTP2ϰ}ꬋ*~ھsCL%s+:a4#! *5;U~L,ۖEikrЎ kPNOW.05 +$^a%1n,7yyBgF4вØKczOs$Qϊs>f9uX=U,(2 ݣE÷v?yNs.)_82-~9}{/cƈIRu-~lQ0kqkPD,I{xyXC2C0`On( cRgXKMcJ|| kqIrՑq OV:;sΠg%Nϸ;kUtIB K|$MUװ lEicE))'f{b4(1R)f!3:γ n-z|Wa_&.Jo6<Ƶ1V2`y& 331@RD9ÔTMv".Qz:FӚPuyGE"Ux ֿg~9 .{뜎[7ayT @AӟK0 7mU5<[onp3:ԙbF|2q]w3fvi>jJ簕߸hsfgA7;?/Yw|WD5rqsOws7yu9Gl{wQ;?J3CZN ' 0q~](_o endstream endobj 92 0 obj << /Length 2989 /Filter /FlateDecode >> stream xڽOo>AaI o׀WE\m}+w9ҳ{xϜ%\㠇~qW&!94|0v'pWzcbގun~e~0*;?J%y)11D m$*e﮾ޤAj'=m(V! ~~~?oMzu/oy՟STV ~"&<"!*"exׇ?>qIb?Sɩ% yV9$|-C~<9b~C JqĚR2_m[BڒQ^ . }{mmgwt8q@FtpO Z\PUb{QVը|A2Zb%fфvh;{OZm^%pΰAb=6LE[Ũı݈ Elik k1)AU>e.ج [ܳh%mU[3v'sC4!no o0FT턹[ܳx%oU[3S{NA7^ɷ7ԃ@Js)"p㹛Om-qښy8ۙ?Cr+C#}i} }6*?Jǣ>irE}<,;;H[W50ՓC4!nin nMp3IinEn<, m[Tē&č=Пk8N 7inm<,e [ŨTzN[^SsS6gB&̤܂-iښyTiBxR~4hե, :*$U-徘 ZT}ZsDg!Xyr-*o y[U*$/yAHw2ȻguֽQU=`;a˜7Ȟ -xk =[s݋s/٫z=iosF—7Gq[/Nx;5" ªO~KM -:k]*eXHlQb/RA6(Ct!ӟo$ W>gT {!ϽBHwRȻ QV]j Qں1fDq[yXҝ5|0 D4!U2(_))@v2#?a**{AL_}g†4YE ?"ԤQbRSş0 Cr?{wu^(F^QИG2 ^9H -y4BF=k|gBHXu)'h$ .=J| -y"?^}l6~<ЅUU;bc 埠%ak6Ҥ- yI0݉!>3|6)D&*RJ̘ bZ~$5(~L'Mȏ^;W#M_=u7iAТ!M[Is/"N J2?DNjm槧bKLgHns7sN҄Ճ:Ӥ ?aEĒ*vӁ{́[|.FYU=n6_ݠ/jhWG;_Hns_ ҝVweѐ&dzYtA%`S $.y&aHwBXuF UH!orYawBG]]RţBi.F< !Ia}w8#zI;4<z5NP!CHwrXuFcDrțm:&NoQZF^V! Ͻ@HwXu5V۔ M/r6N,Dzք!ޘ.v0 M>o,ܚiA>Snwݔ_@+Sǃ`iJXv:^|XABXرwn@Nn<1dAt'MX2cϏ|AW5FVP(n70n=yHQS֛#C#=ygcҼ<ˏ5FGD/Rwq'>3]*ZW[F{'~c7QÃ4ow{6J_(B_Jzm3&z NϺouO)Dnb endstream endobj 96 0 obj << /Length 3103 /Filter /FlateDecode >> stream xŝݏܶahC$eYq7@-4 `oA4w1fg#+Cw;ݽne*ݧw7OyfۍoNv]H߳uǏ7?w??~ʎя5Z a司G0zGǭx7/5ӽQwoNOH V+ﻷ?u?/L}zqHǷ-w2тD0?N~~}Lڞcĸl,ݧχ>_C8pSѺ[Yӫ w*WZ@亯'їڡ j b;C>w8?Zw~6Z{=i-ЋpBr'wIY`߫~A(;Bt3\W0^p ;Xx?NY, TM&U +W )Ȟ ,d zf~6g(10,|;HE3v\+`qZ'C6r]C\taL;NU9b3v\+`NޏV+Ě Bq+wvݐnT+RՅgW@,V^qB r+>+Z*֧=Փ@ D7u};ub.$7[S&~/4$O`^~Lۑ3{3D%7sxXP6WQށ4FEByf(U"JD LBt3\w&iIffdr'af?(շP&TAPNp:Z*\*$ IH$`tvkxCd&v G&$zuvP1J 4D%O`Z*;%C\ sv )>m`K~ct3\K q.+K8q%QYU?0(mN-Lm^= L&j n&" Ygk7%wsx}yޮ^50"9F8cɅ0X"ErKX"+lV`i}Db),c3\x,i"͌*%,nKp,(:A(pn% 1Y+P)/X" [ U("+Bg$p;$AYę<{/Po;R=”;]Ĵ]ijP Š,-a&Nz>qZ1ɘifLзC&7N4QCި^fT (rDఉHC|4 v' ݜ)la˦Q9ѨlJ%&Yh7 >qS|Bd>4'>͖ KҊl{P$VW8pr]D!8yv Cdr?gk„CO`@tz5tJkL'm0K!:Yڻ!vNfg]Jzzj!KC3\:zD!.yC`r?DTΛ+`Q9jgR9g0.iN` ZZ8$TCarҾDkF5:CJ ,XDYݬky)~cf (k@v}]єuzֺ)FƧT!ʙO'bCq@]!Z%4+hiwYP[])1>8=G$! {>Z'!NʸTE'.V Q=aT(݈(Cr݅KV2 bn6Py(O ^5D$݃HDLdrr矒 ^LKhnծ=$-푀zDY: ѥ{Ȳ>eϊ*;P;6h OLkԮUzU Pf|W,tc/7CuefJF2%f!rbN0}o{USCz:K)X endstream endobj 100 0 obj << /Length 3018 /Filter /FlateDecode >> stream xŝKF+ji/DM,Nx wY5VPI]Jb3qmwK|iR$'7;U"ӗ/wH)ߩi.5)E4~ }i'9I 3鿇&0zN<N4n :7{ F8;c{NII1YMLQ{㋇///4,&VȨ?l~1?r}e7G!ey|\m/E&h16KQ1b:Ᏹ@6TTAOrW[( W)ݾ:1yxa1ɈaN8N7FF+t: 6+GjrpQZlc|K.3Z5EA if4 q-uqvBQ*Ia߲Nl1.pOhGz)t(J W(y\&$m -5Œ 'Hf%MFU=&_Mob$m6}ÛbӆtLӳP i\Vt^aP/Hج A-vQbtRN8մjޔ sEZEzA i^4/` 6#ԩnV>}`jRM(>$mpmB.5A2f<åe&Fa=h/Z8S,sO[뾟?Ok)aSzc96;bvn4t: +fR0`Y'\5q 5@CH9YCZZvlѰ5\]o#t4LgxоNXc|uo""fӜlq.mpg*>X6G @ ]dF& HY-6vp4B?NsmSa2"UC^+Bj![Dl"23ABmE'!\Ma"l"fՎ[LlO^?c B"aJ[&*RmfH9YEZMRq ܢb=p&g4QFx 2Q'|\/66؈)hcS!Of0ey`W)~ID)'HI#DWF` WF)::j>#zN^6Z-EZt )'[HY6\ό YL3tT|e9^Yӆ}!di5z`D "9@;Zj"cDzH7SNVOAY̌3t\NU]U_F ytłGj&6ŬYADP-Hx:%|m6D' U j"ŏ7!di5-w [\lg.K8)::(m8+}Ց_͆}RNVVif -*6س5v2¡S6 oˎ3s/ZH,th !d i5톻-6+p[hhT%'\+3gHѷqRNvVVHυd&!:> l7+/,>hHɷRN֑V=#Ć{>{:et hYSxeV C z)%+(Ֆ "E?y~j{ .ݛ#hyΙsfG @H-GI)i]pf)43 P 1t.RMbH1G i-kgÆz9S:9 c@=O?Q#=yz߉9*~b#N8?[>j4G"=̐zIb(I-#{/C˭()V.t> stream xŝMs{Fb\ReURVJπ4zacGzb$ţi0LӓMqިutlLbJJ@*niQ[ Ǯ7G(}V&0}P9 ì|0 c9]);#8Älk`HW<^Eu䡟SrFdDIF^GFH*#9E`d>9WӕtRrXM&1VB&/9yQ &NX.`_/%pMVY{֪64M:ri#$NՑ):0؀UF8\EGFzV5v?κ SqJCc$!`BI\k2F% 8YJ+I4'!yMkpx^7q)+@#myZN+*Yȩ4h !q TSihBT <>#a{Yp4:*]Un,2ɋZDDSMy^xK&6܋4 &pm˥L٪&^!c#@GLMǽtp-8^DlP>\QA% 9u>cT <4 @^Lxr4v ^7r:)zgLy)Ϣ!hWZ!yR`InQICEyNx+AϟH{z멒C!SY;ֻz~;ԓ'O#n 1\M3\BuGNzX=ǑNr1tq1 endstream endobj 109 0 obj << /Length 2984 /Filter /FlateDecode >> stream xŝ]o#+r ٻh"{B7HKY$u(gw9g8Ҩo~~V8O|~gzNMǿRN馐X;w?$OR9N{t?6M-ߦқoop$mns~o>}㤤嬦?O)ᣚI~<}> f/L ¹vG/>pTOCTƦ>_Ap=mkv:*0{P1A|yU O;'w[CxH92z0be b'#f76RU"{>R翌/Ʀ^6/3$Nֹ{FbJ{c̻{;`_~x]2:>J)<|V(o"]\dsQ\.8_q.6ⶸe\.EXBT^"Y†n@ `맭~A(bO * 30}!]S ߊ-Q{s, /[ռya**㞛u O*_myB. R8L*62QquC12= ]|}l>"v7^hXKhR,Mڛ*ž/NR^%{Ldg*luݍ='߫w+:~( ?џhI_0^"܄n8_n"͆[ݪ>f k,ʇjFDHD'H<\?VEO88\õnV"HePN 5@YCʽ4' igpCE[.f! @ .j.5BDJ8YEaϭ@ņȍEtlVx@6@>j #!Z$uh !q433+CU†{1+?3ё0#h9'. fa^F} &Nyόlyyn.# .E\17#FJѰmq5g#[ml6p`|QH]-!Z4Uj'kH<=3[5l{:r,h )+l(kvan{# i4#3g-ZALӾ:<-CDJ8YEm!b]2ѱ1ahƐ+W#!%l: &I&#{c[$l22^DGB?Ak6u!"" "BdiGVp/nF":":/-2tPtUs3_l/17CdiGv66\rDkuh" Ԣ!P58{vvF` mF":Y(Zgƈzc_oB."<4OܕjHW7pnp  Uzff፪ro!$N֐y@W̝'ё1M@ Vz!ˑM27oCFJ^:ktmqR]A` E\hbփV͜0g;>п`l؈s~-6ܑ;1X1+!9#6]\Ә8E3[]l#w/WxЂNXS!Z4пv4"澇ba:FBH,! s+}lr7M5t i-cYn#@J]e*0@fs8z;:VQQGKhUgcGW@E]*Bdi8px-Ƌ訥52j+B,:ΌjBW ,#$L*R)8\DGAB}Q*<!!DCH! o6RyD\>E.ZC=5HC=p bC0'0KtaWBW2J!hYG+GIipD 6&HllWrmr:1A:H62} [l$q-4&Lyi[ *#-ciV BZuٳEHɫ:h Ma6;."Uņ伮pE-,CkkRag-5%]Lא0YKEKnD9m\3^KGHD (!,fv/VRMV0ap!ri9\LGKiЪVɵٜZ"EK0YKEKnD|u͇qkEMtjBWYM &M֐̅GJHW2GWё0:,슃 u#qda%YpA."6SG:B=d[xH!CH," yԁ`{\/BЊJ{'YV5o醠|!a4fzV)z[>7#¡nS6 oy^^lU "#DFH,# sH@UFʽqqF iP 9"77] >H|$<,hu yрԋ_#Y>ʽ}('h͎-Q=8ܓtG=*z|0Nz;>D̾(!(=c$k c}yFDi|;o$ܛt",+;Ia{ྱڙJZ ICg?ӖqN?CNvwq ' 哋Ӈa endstream endobj 113 0 obj << /Length 2964 /Filter /FlateDecode >> stream xŝMF+xnn-aqؿuh 3z'lE`wAa ʦ8doTO]~Ͽpz*D7>0~U_8h<饇Y??_~HvH60FC˝ ~<}̓jԣ>!9b6_m~׿xyTPe[f4 ?&Bl(A0Ң:<|u.=hgXt2MǏkwIY_mX>ɟC>d4I| BU@N . II?0+Ӌ lfo썾{zƈ813.˹^هy]ECCG+}LJYp.rbnPTiyv#M:r6<_뺚Ռ90fQh.fń^.c{S\V#x [z]FC@t Hj MB$\}-Lr'}4+}0 byyૂiHCf:Β.ȹ_xڣIKi8Cʂc"'˱4'CGqDpIH]˂U4\tV]Tޜ !Ԫ!ZdHC4< g,܋{2\ihʑ4X?cE5$]D!y⢰vpEk'%h3#(/!j"'DD2Q%9w5*J+*&ѨA&ZG)C>ɷL![=maD쯢aP/d5ys W9&6"Ґ^dP\Y^`DN8d"3BO%9L jǸPڦ5lՐciDҐǙck;0y&{14|te'PڹӮ$po #"<i#dRO*vpj,jp^|qȇtՑ_0@tD!y2OA&UOfޛ[T'eP;qƔe}AqHPIPiDIPNn7.e9_s8UEGN$7ŭG5Zjeqea'_؉Cv8Ov &Lvr A*JƨumҪ!!Ѓߐ8!S/:Ad"cNIK*&[ӣW!ܳ{{IDzLG^(hAWӱ^.ըO? iY=0=A)Z7_'<^.H'[*j z뱿0=0[^¼c./ԕó:khMFv!)q/QJq_` N_n$|wsmD/r">!G'6UNzP-p_#oI*9 endstream endobj 117 0 obj << /Length 2967 /Filter /FlateDecode >> stream xŝMs7sB ov0UT|@Ҏ*[񖓿 E4{Dg@UXDq̇> fxwƠlCFqqOgξycoC*_~Çܘ/ 6{5j_yl|ӐlRaF]mܿ̓eӣ6`hQ1? k_m^ߖ??~}nW0&ǀjb ~ |6Ꮟ;/FzH!1ͤ?~ݭ|ۧo|9ŲU .*~9;lp`2m8y d,X6$U6{sݬ h~>0+UA&ey=ffu]xx̐^6.\04HR!*BUE]f5h"O󰓎2BUD9ͬ%4LYZ *kM5P@d!'_GCH!s'{c bw /HĘZT?4Bd#_`#`NSuye\ґs~`t쮡c1IвtA[`!JrꢩS%qҬ% 9,WhXR Zި™A&9yQ?SMqvk#K&r|?.a}|w0&ڬd'9::BTyj MJrٚp~D 'KA8W>Յ$LDzӔɳXRc\W\@?F#@]gtYCC|<̞a}hr&sR'&"\}\}$Νx"[Upv~_ECRDi A}1mE\rsYT.bzO'9::BTytP%9EI":zbDJv$EhTSUq ^ \RsI"*QZ~):i,1,iȰ,` !i,vnF& 9J_54AZs.9ɹHPCT+yVA&-919i*m@+^G=uə<6Y˦V SqW"$|i\MJF;ie5!}Q$AM_BU _ :W1y5)1S?Bd#G_FHj#sY*!dqBn7JjbR]ZIΟz,%MRruĩR8) |vdcw }R@לéCʇh3ĩ28wۙ  ZvnSQ&'9*L$spRj2I痲J:vj,EZRl=\ᓓA:y7ObNλ+j82{8c{ؼ{Q8 SqNJ'G9k k9ӎ卵 ;mQ.f#0B *fb͜Ĺ߬ !W) gE 5V:־74n<55lR&$NU9)K3 <4Q ZIQ%t<ĩ68o !XRao.ڰ=Z!)i҉.Iȹ!q<>5LN dw- !X(hzWl; )ᒐ-ĩB8!1A&!9:㷿N cw mP9dq4IA%9u"$NUY#4K"rj]CCBcmkbh!Jr2 #XBH*!H'B$!>PtqnJ mUj|L&r&&,)s&9:*BTyMR lґϺ*>"GAk/>sht tD̡!y%u:=:X;@C҇3hyfKс`W*2$?e% 2SVd`ː`pՏ$?f%?@r,g_u[wUɡTu8J}9ʘ}BAjwd{?t{O=tSNT~KuShG+O.۲yuJ$ek} endstream endobj 121 0 obj << /Length 3011 /Filter /FlateDecode >> stream xŝKoGF, B6Kyڃ,a_s 4|ֵrK{e_ʂ[*ũ[y2݂mnXr6䚦sT!`܊Eh[yЦV4la v5 ϋ6zVMRU*ƨ_ѳz)tM:I^ēdz)LꐫI7mz%RsLu`@BźYB!$Hn5\*3)$m=Q %:\;i |G iu n!nrNIi[,a75 rEfg'[iNV|&__rn{j{s'ȇ|;\M򙬲 U96 Jqꦙǫ9x+ڇ}۰d1O觃J]3gwҬ %9wnA $ & ~IG 2ؑWoW;S{.RK\R"IT?DL1[4^?o<|`_P*d]WCsFBMyjW8Bd`^ o#ὠtѫHŘULTFBTy EH9E^Σh@Mc[gj=- J-PCNthC"!f/C .&\RAکR/.ǹsm ~j~7ood }KqOyRǏ #J[ORJ.IɹjG)fh?N$g +ZV8%8o a^3IdT<먲gyp&0iWϺo nճ?V̈́#bQ)>9mLAdn&ĤmG A&:ppP(#<B?A]um8m^WU#,BS B%8uӁg<$m{q %:%犹+VPbus wu7 &Y1m>@U1(RV%" TS75m H] BBiBrNCc0gHXquu?z" XcNfGY)Y9B,'J}@LXCP, d!j!&!d!Kv~}n'N8:wl&x`B} BH9MC^N^&;|VdQ5(# XcoRNs𷷂.yqOp:@CAm™KMCc[N|r4DpIÎ{4N8ihKR1 Ҁ`v !Uî|'x7{yC ""$b]s&I6P?*mą K6r6-L=F^OV&;Fip2X,lM?]Q@#]{t$AFH5MF^aW`Ӎ.\3BSJ fڪ[,ع+1^!!/稡p DCa410ZJ4([ZYQ_ÌbVba,D=Aif:dT̠6IA%O m,ع@Bij4B<' }CVƁ&ں+[}<ع@Bijw 0i؁{  π:o]f#U XҐc箋iiȫJ"a>PNxXK;UJ[16BC%9v9j!LvSt&)A}fcÆB[%9v:Ա2f"/x/Di8b uP@$rh$Tk/L Prڕ}uWtpl ٴck0AjYc ԉYt ^>5+A@|>pRj/f/7Jئ_&N0zQ~ʅ8Ч=AgAg>sHcȰ'],y:V*9Ýʺut',n$ɠb=!ŴLbOՒ*Dp6|' o\y^^>b0*CuӚt endstream endobj 125 0 obj << /Length 3140 /Filter /FlateDecode >> stream xŝ˓6Who0x?r܇ڭYǷ$8oy/(PS´/5P !qR˛?n$'O*ͿO>柽xFMԤF)k_>I nʛ -Oy˝y':<Φ}㤤H2oʑ`޾~~:>{|o[A i"3"ῗqha` qewoyOKp~Uk6}> *f "xlR>3o_HA;\:n2`a޳僑| ?(XȦZL햱nRK~qy8R HCij~Ppryq#CExHzHˮw,|q_xFݿcJ%+DJH=:*`'%%J"$piU =W-R*-&R\=|4ko(|. H@7T$ W!"!>d4""W&#ewFglq<4HHD !آ#с-l4yr#f$/\9xMȡFgȸ)uպŃK#""MfVqϬ!!%k At,TQDiAj-o&v)wUM `Ti2ct3q#SE\~ctB2 Jn+)ID$S+#ݬ싉=p*D &R3F#MU"F\4- yqܯt Q(d$S1b$>d4$S!$e_Ff==FEo䢏]]j#[LU&&zMUfsgnǬb f"E7l)!Jf*"[!X9JHDhS"Ƕ-nbE4l4[fMW2Jhl?Mm̬? ULJ9|$$j(ͦUL)JTLn9KGI-EШ)i!!"$#db>\!y!` #D[PfFavG,B(kCmN[dlRWXX`X4; j3k-f)FaZ:5H-B~,s){TkA]S lQkaFG8VBPXG+i׭^1rAE.]% lQ mv-WqvG.ӠR8-EZXZ$l,El1k1+]^en(7+̵e'F=D6U=݆CM=\;$m59^dLGcS}}l}47~PEpY1;i:d?nX4!lfmQf;Lr&ԫ*˕Zp-Q.l{gE`\ nm.J0iRhk1`0J: VhwF3' f؂{i<;\IvDNNN*zp^"b"\BV vJwq_ˮ*?Q-pQ}`}L-QحWGY "MLN4JȹQ1G k*ծclQRncr@F[U2W ܦzWjZ1¡.v+]m:)u~PADUAlVnSp>Sp8Ԏ3Ҡy2Sqg1"#,x`47Fs' &|}2^pUSÆEl \\?EDE"sm.R\ߵ21t,P'WV혻n`/v4IORv܀@6d읡t `^J[M&[üT3#8->0yT ǯȉHIRɫg*'v{7@1vq~(e>zKrgs?jނ:TSM=mvmG=JPlHWL(>|Z)2"S.zK%qklbW8_n=.I#ϮC6;Go:>?> / endstream endobj 131 0 obj << /Length 3118 /Filter /FlateDecode >> stream xŝr7EZJPrz8b&2w2%ˎ5aMHA?2`BUxcda˫?ii*LO^}_~?);YM~|Տ?ӻLcC}EwSv%i/R&z•f;]:ٚ~>eoMJ'rԕ'(=|"XqrbJ}]qZpXFtFwX=\ѩթJ#FL =:pW ;"!bvJ+c+KF7ܓH=͜".F|ώ|S)$_6r]Z' nUĻIf |..&D .m""KI*V/NWmW(uuf2*ɛ{um4TĸZ=H]+mkֆM 0A5BZ2(LJcr'=",{&nʎ5ԃbI1k1+Z3GP#=hFY{:K,DX6K&ezZ UwcV XrKbWZ~lBedmoB`٭{t+*n ;n)Ǹ劙U܂`-]Vs ݒa&*[ 2wܪ9 m0!S9+g̒Գ7)fX2עbT WSRmBy5ׯ9j/gX{łedmOfAV=,U;no5C[Vѭ6~` aŐ{M1ۍ2`ɽ{poL!brC8vOcĎ-Nܹ.pQ '٦gʖ-|fgAڐjLKN|,'sXŰ|zUC> ެ;ZIB)t4~;Wu=",%i2pٮKCc}bUwXeeC%ulO:YY0u*˂I.OsY>;m;&&P4$OMЬ40XObǶa)"l`e\] 1pvfg7jF`@cE ʰkf 6`^mg*8TA_ %ՉYAۀlc[V) K 6a)h B` uG|B<`f(s1KnjQ,9(c{V]!aAdU`vDѿ>ѱ,YS4S_(M ,vjXCY6*).[pP  C >;lQ*)(cKz ŰmQ e=ap4CG@_Osj]ըU[K Jv~Lհz1цA-lXCt4t5P b KJ&'jXCYMV `ְP St":'o?msyt2אYVyx߿ F¹ 0Pp.3=DjvRS@|{K'[:ms*R/ Mwܬ8aSC&D%t31Rd5]b!أm~2znܤ~uEpɸ^[)#9@gԛz7~k޷.^=ܻhѾ>: =h~@=ڛ2{N{JOYK$gN("ku3;KD<}*,Ḧ́wSj{ endstream endobj 135 0 obj << /Length 1962 /Filter /FlateDecode >> stream xڵn7ཟbbX/]h"ޥY8sbI T)lb%[¹> jxqBrp 1 _|{˅R2Q(X;l/޼6 IqS!:|3Dᒧv77ٴ㗻uI&5ܽF;vxs+/]χWo^]z$TL siY5x |{nK*"ڙ|z"%ˇ>焊LO_/?ޏ& yGmd¨;-!%ıwSO A 6 "4\7Fm$1dGj#;o=!rdW=^ƘK}/`]"PJ!Sb(PW[zB Klciq(x Gu8ro|{ x$W /ǒ[Qs9>uGjU}GlQQRE*aNtvd#,iҹnuk5)P` ]uը ʿu *_ %Klc0G3]#G.ZMM*˥4+Daa$%±M,ͮ"]qUj JO/,UR, Ұn#\r{ǫ&V*(-+EJXb +4^yG3`tG0Z/7u*O&aT9)V[p&\ pfGkoo>0 4odœ©Ma^, /\Œ[tr6Gm Q(4Zi[pئ--:oGk o<Ty+ L|>"Y[&ytE;ݯznzU*1T9eRwyb =4Od8<\<` ]"/IJgp7yb<4sqTyt%sUp< ߥBOϯ=eRS<mΡQvCzBoLK^e&_ClKjS]tCspO-!حr KFl"z.}2.SR-plڌStH@> stream xWKs6WHXA|&rdL'Ɂ St@ҙw ʒ3E\}|S8yus]! w;'8HBgu>dʹ/e;IUi Fu[ |Y!qBq3C +q+Έiu3u1 sߵ ۡ$w&ej,OUVgOxv#UUK+0vL{,R>=@@Y=nMt_ pd5w!LW٦miuj?݂_n[Z`/m%#+#J@ڰ,-Vtb^~$CI~¢ rF6JP3lR7Ź./yqѡ 7ֳk"qo&q^./O>&hzAR7RwP Xh3Ry,ŵo=B|y) \ D @y2( m#GVyJ+SN1R0|bYC_]㊙Z=u$,HWA\ ~>olY"HR}0 Lm 8`6[Tw(H*ZMz_By,M!Hcw_a~UG<䴃MqC+ +c՗t!3~ZTB6ٷo;J{;%)8 [maJMN;,2IC N˜6[)LtQZl75+ڻYWTjNe 2;1#gN,6sKǙؙI\b?1wٟ=ɿ6yӓgWX)a5_:iv*N>g#.Pܷ*'ڐhRဖpH[-~+J:=6XjvY3^߻>^94aSާ;D|)~hڼ,XGu7++f*I;%v2G}VQm׏VzAmu8ȎV)8>T6 P-B:ڣq X5vN_2HA_mcvx{q1n* ̛0zIx)=Z_j9>KbAaVMxzԧƻ%TMos8 ۗ?dD8Q9ɣ#@_) endstream endobj 145 0 obj << /Length 993 /Filter /FlateDecode >> stream xVn8+SȤvm2Zd8t"-&)rd4A#nCzzQbExH2Ũh ·wO?PI(PP"t%W2z*:)T0cW:32)1*9; 1Jb3sE0 C/>CO EQ$!9' Z_źr` W\7;|]$J6.>'GE / NǑG$7[@Ų;]v6-"yeU1eO3ƍ,:7H2A-2-r/kUQA,* l-'\&E2:tlh/<$4vĆY~^ ^ݙaTYsa3kxD2؄JZԚ7ynv֫,mPxk&n.rusU/Fd}WoXԡD.<_20L]SHa)Xu,V,p-.?$BRJx"VvLt3.llN;yW;w07r)yٙ082on躈 L!d+9]YV,|StLS"2OSfxe4wiYM+OAUƶ4_]pJcG9v-)GH/Mmv2J/uـ1 $ m&wdIDAE77G{m@Rph-qR?S[[x>SC^7\kN7:BdnGiUf]FEEwu>C zz)^Fz^e˦ZV`CtCLdvﺪ݀kR۝kv2jj݄*oF+Ӎ䋻ѓ o5`@eZ=vI먹;?^7y9̕T(roEy{/4 endstream endobj 2 0 obj << /Type /ObjStm /N 100 /First 810 /Length 1642 /Filter /FlateDecode >> stream xZMo8W^(C"(x(,I&va;9-_‡DμfDqXeTPd+kʒőqlF1DE]RrV΅s* *SVF,XLY +!<v`)J0% 3!+&{Y90M6` -<]gNg\ )S LIp^ 4i3")EŬ)h-d> zO*&@uFE@e8AP}"G1:J`X&Fj ET ~p!DQ!4! |a'1@NpbD(XIr [,ZOF΀7Dx ` $ ADӣ9 儀X h FjeLtDMȡ$!fq="" Q\lLbʩ\#璱bC[@-H$qI%89Q*T^ PۗE_0|f(T4#iy___uNf"͕47 [zi* \ojT_T)7MמGzMs\aW~&64XK xUjj[f~\(^-B"wځZJAmP7MCo[\PMǫ j#sY4?Q-O&uV31tOr+nMծm\_oRgҞ¬X*gT7g&rJsW{MD%wR7k=iƭ0rKN$uDUQUٻ^ 6$RNFmGx#-gAÃ^r9 2cQQ bT:ZáHQm^rD&d4ɊHL_^^h;v(PBPGQ 2v$tx$A96ڙ dD;@9|T]Czh6v(P|R L~;><TfR%TrRHP"@ĎOl6{by 㱓X]ɴ~%0ّwi.L>"=cJqP-𾢦eQw5]DmrbW;<רʢZsd[l:o9E*A{_Zܢ @˚ X㖉 ɧNkQPmj+tlOGݨYwbZJmj#5gZ{qO[F\jQ;2R+o-#O2GȳOO: RKl=o[,kжqlQ5~7~rvE SP|;||~4m8q=:GػT,jտir܅ endstream endobj 150 0 obj << /Length 747 /Filter /FlateDecode >> stream xV]S@}Wc2Cf(Ŏؙa!&wD~{r(A~"H3!ߥPдVn`㧰wQD H@Q8`{Hrp.;LXfea•4315$35:<Xo^.(KYdde;2Gla<2Iwvvo1cd7P29Jaf怞 ,QϤrͤukZj&4iqgׅ6 Ko!P6?3<IuJ&C(T2Vq_z!"-e$=k(JZM`nG] r9q (ŁLs Z.C)xmN<4T2}ϔV !VR OKPSN1QaophKS`dr*2[SZiΣxWS&WQ:.BAoRZAdoy˽ɨmhN6|ٲu-UM`zD_*ʫg5[!1ZDW)[ V;1;4-,x`weBwٝ(G'M|NJwo |2{ rԸ^?YΊx1zϭ~cowt $8a uG'l_x@  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 << /Producer (pdfTeX-1.40.22) /Author()/Title()/Subject()/Creator(LaTeX with hyperref)/Keywords() /CreationDate (D:20240530220234+02'00') /ModDate (D:20240530220234+02'00') /Trapped /False /PTEX.Fullbanner (This is pdfTeX, Version 3.141592653-2.6-1.40.22 (TeX Live 2021/TeX Live for SUSE Linux) kpathsea version 6.3.3) >> endobj 152 0 obj << /Type /ObjStm /N 67 /First 589 /Length 3529 /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!!ɴ0x 1<UGy)z8gY3C!ϛ/3AB]yZ}hv۾) W+>he\Kj/!cSJ\FLA7RŜ^O`C1Dr8O=@" ))$F!Иj$M @=IcN,-`ƵFn+t<#U(#YJtuTA+7U:-iʼnmE@c H vhXTX5Y3ӨPzHGGB|̼xУ%N|3y5/FBrvـ>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]@Tt 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 520 /Filter /FlateDecode >> stream xOQg幰,[@">ߊT$&Z"; X,F-lp|9o3l5%s{PK>Eej-(zQzp0jQ UM`j3QPDUKZPǒI ˒> @e&-e+`m`;v]`7h@-^jThҋ>;.T NvUwj&,OC}nO`CqB@ ΂ wyCv"" .=& ӰlJ-pm揼p%o Ipmv'`2Abl{X $6i A:L UnsK*PcE=N}hL}jYGR G=-H<ǥ