The Elk Code
init1.f90
Go to the documentation of this file.
1 
2 ! Copyright (C) 2002-2005 J. K. Dewhurst, S. Sharma and C. Ambrosch-Draxl.
3 ! This file is distributed under the terms of the GNU General Public License.
4 ! See the file COPYING for license details.
5 
6 !BOP
7 ! !ROUTINE: init1
8 ! !INTERFACE:
9 subroutine init1
10 ! !USES:
11 use modmain
12 use moddftu
13 use modulr
14 use modtddft
15 use modgw
16 use modtest
17 use modvars
18 ! !DESCRIPTION:
19 ! Generates the $k$-point set and then allocates and initialises global
20 ! variables which depend on the $k$-point set.
21 !
22 ! !REVISION HISTORY:
23 ! Created January 2004 (JKD)
24 !EOP
25 !BOC
26 implicit none
27 ! local variables
28 logical lsym(48)
29 integer is,ias,nppt
30 integer io,ilo,i1,i2,i3
31 integer ik,isym,jspn
32 integer l1,l2,l3,m1,m2,m3
33 integer lm1,lm2,lm3,n
34 real(8) vl(3),vc(3),t1
35 real(8) boxl(3,0:3)
36 real(8) ts0,ts1
37 ! external functions
38 complex(8), external :: gauntyry
39 
40 call timesec(ts0)
41 
42 !---------------------!
43 ! k-point set !
44 !---------------------!
45 ! check if the system is an isolated molecule
46 if (molecule) then
47  ngridk(:)=1
48  vkloff(:)=0.d0
49  autokpt=.false.
50 end if
51 ! store the point group symmetries for reducing the k-point set
52 if (reducek == 0) then
53  nsymkpt=1
54  symkpt(:,:,1)=symlat(:,:,1)
55 else
56  lsym(:)=.false.
57  do isym=1,nsymcrys
58  if (reducek == 2) then
59 ! check symmetry is symmorphic
60  if (.not.tv0symc(isym)) goto 10
61 ! check also that the spin rotation is the same as the spatial rotation
62  if (spinpol) then
63  if (lspnsymc(isym) /= lsplsymc(isym)) goto 10
64  end if
65  end if
66  lsym(lsplsymc(isym))=.true.
67 10 continue
68  end do
69  nsymkpt=0
70  do isym=1,nsymlat
71  if (lsym(isym)) then
73  symkpt(:,:,nsymkpt)=symlat(:,:,isym)
74  end if
75  end do
76 end if
77 if (any(task == [20,21,22,23,24,720,725])) then
78 ! generate k-points along a path for band structure plots
80  nkpt=npp1d
81  if (allocated(vkl)) deallocate(vkl)
82  allocate(vkl(3,nkpt))
83  if (allocated(vkc)) deallocate(vkc)
84  allocate(vkc(3,nkpt))
85  do ik=1,nkpt
86  vkl(1:3,ik)=vplp1d(1:3,ik)
87  call r3mv(bvec,vkl(:,ik),vkc(:,ik))
88  end do
89  nkptnr=nkpt
90 else if (task == 25) then
91 ! effective mass calculation
92  nkpt=(2*ndspem+1)**3
93  if (allocated(ivk)) deallocate(ivk)
94  allocate(ivk(3,nkpt))
95  if (allocated(vkl)) deallocate(vkl)
96  allocate(vkl(3,nkpt))
97  if (allocated(vkc)) deallocate(vkc)
98  allocate(vkc(3,nkpt))
99 ! map vector to [0,1)
100  call r3frac(epslat,vklem)
101  ik=0
102  do i3=-ndspem,ndspem
103  do i2=-ndspem,ndspem
104  do i1=-ndspem,ndspem
105  ik=ik+1
106  ivk(1,ik)=i1; ivk(2,ik)=i2; ivk(3,ik)=i3
107  vc(1)=dble(i1); vc(2)=dble(i2); vc(3)=dble(i3)
108  vc(1:3)=vc(1:3)*deltaem
109  call r3mv(binv,vc,vl)
110  vkl(1:3,ik)=vklem(1:3)+vl(1:3)
111  call r3mv(bvec,vkl(:,ik),vkc(:,ik))
112  end do
113  end do
114  end do
115  nkptnr=nkpt
116 else
117 ! determine the k-point grid automatically from radkpt if required
118  if (autokpt) then
119  t1=radkpt/twopi
120  ngridk(:)=int(t1*sqrt(bvec(1,:)**2+bvec(2,:)**2+bvec(3,:)**2))+1
121  end if
122 ! set up the default k-point box
123  boxl(:,0)=vkloff(:)/dble(ngridk(:))
124  if (task == 102) boxl(:,0)=0.d0
125  boxl(:,1)=boxl(:,0)
126  boxl(:,2)=boxl(:,0)
127  boxl(:,3)=boxl(:,0)
128  boxl(1,1)=boxl(1,1)+1.d0
129  boxl(2,2)=boxl(2,2)+1.d0
130  boxl(3,3)=boxl(3,3)+1.d0
131 ! k-point set and box for Fermi surface plots
132  if (any(task == [100,101,102,103,104])) then
133  ngridk(:)=np3d(:)
134  if (task /= 102) boxl(:,:)=vclp3d(:,:)
135  end if
136 ! allocate the k-point set arrays
137  if (allocated(ivkik)) deallocate(ivkik)
138  allocate(ivkik(0:ngridk(1)-1,0:ngridk(2)-1,0:ngridk(3)-1))
139  if (allocated(ivkiknr)) deallocate(ivkiknr)
140  allocate(ivkiknr(0:ngridk(1)-1,0:ngridk(2)-1,0:ngridk(3)-1))
141  nkptnr=ngridk(1)*ngridk(2)*ngridk(3)
142  if (allocated(ivk)) deallocate(ivk)
143  allocate(ivk(3,nkptnr))
144  if (allocated(vkl)) deallocate(vkl)
145  allocate(vkl(3,nkptnr))
146  if (allocated(vkc)) deallocate(vkc)
147  allocate(vkc(3,nkptnr))
148  if (allocated(wkpt)) deallocate(wkpt)
149  allocate(wkpt(nkptnr))
150 ! generate the k-point set
151  call genppts(.false.,nsymkpt,symkpt,ngridk,nkptnr,epslat,bvec,boxl,nkpt, &
153 ! write to VARIABLES.OUT
154  if (wrtvars) then
155  call writevars('nsymkpt',iv=nsymkpt)
156  call writevars('symkpt',nv=9*nsymkpt,iva=symkpt)
157  call writevars('ngridk',nv=3,iva=ngridk)
158  call writevars('vkloff',nv=3,rva=vkloff)
159  call writevars('nkpt',iv=nkpt)
160  call writevars('ivkik',nv=nkptnr,iva=ivkik)
161  call writevars('ivk',nv=3*nkptnr,iva=ivk)
162  call writevars('vkl',nv=3*nkptnr,rva=vkl)
163  call writevars('wkpt',nv=nkpt,rva=wkpt)
164  end if
165 end if
166 if (any(task == [700,701,710,720,725,731,732,733,741,742,743,771,772,773, &
167  820])) then
168 ! generate ultracell reciprocal lattice vectors if required
170 ! generate the κ, k+κ and Q-points if required
171  call genkpakq
172 end if
173 ! write the k-points to test file
174 call writetest(910,'k-points (Cartesian)',nv=3*nkpt,tol=1.d-8,rva=vkc)
175 
176 !---------------------!
177 ! G+k-vectors !
178 !---------------------!
179 if ((xctype(1) < 0).or.tddos.or.any(task == [5,10,205,300,550,600,601,620,670, &
180  680]).or.ksgwrho) then
181  nppt=nkptnr
182 else
183  nppt=nkpt
184 end if
185 ! find the maximum number of G+k-vectors
187 ! allocate the G+k-vector arrays
188 if (allocated(ngk)) deallocate(ngk)
189 allocate(ngk(nspnfv,nppt))
190 if (allocated(igkig)) deallocate(igkig)
191 allocate(igkig(ngkmax,nspnfv,nppt))
192 if (allocated(vgkl)) deallocate(vgkl)
193 allocate(vgkl(3,ngkmax,nspnfv,nppt))
194 if (allocated(vgkc)) deallocate(vgkc)
195 allocate(vgkc(3,ngkmax,nspnfv,nppt))
196 if (allocated(gkc)) deallocate(gkc)
197 allocate(gkc(ngkmax,nspnfv,nppt))
198 if (allocated(sfacgk)) deallocate(sfacgk)
199 allocate(sfacgk(ngkmax,natmtot,nspnfv,nppt))
200 do ik=1,nppt
201  do jspn=1,nspnfv
202  vl(1:3)=vkl(1:3,ik)
203  vc(1:3)=vkc(1:3,ik)
204 ! spin-spiral case
205  if (spinsprl) then
206  if (jspn == 1) then
207  vl(1:3)=vl(1:3)+0.5d0*vqlss(1:3)
208  vc(1:3)=vc(1:3)+0.5d0*vqcss(1:3)
209  else
210  vl(1:3)=vl(1:3)-0.5d0*vqlss(1:3)
211  vc(1:3)=vc(1:3)-0.5d0*vqcss(1:3)
212  end if
213  end if
214 ! generate the G+k-vectors
215  call gengkvec(ngvc,ivg,vgc,vl,vc,gkmax,ngkmax,ngk(jspn,ik), &
216  igkig(:,jspn,ik),vgkl(:,:,jspn,ik),vgkc(:,:,jspn,ik),gkc(:,jspn,ik))
217 ! generate structure factors for G+k-vectors
218  call gensfacgp(ngk(jspn,ik),vgkc(:,:,jspn,ik),ngkmax,sfacgk(:,:,jspn,ik))
219  end do
220 end do
221 ! write to VARIABLES.OUT
222 if (wrtvars) then
223  call writevars('nspnfv',iv=nspnfv)
224  call writevars('gkmax',rv=gkmax)
225  call writevars('ngk',nv=nspnfv*nkpt,iva=ngk)
226  do ik=1,nkpt
227  do jspn=1,nspnfv
228  call writevars('igkig',n1=jspn,n2=ik,nv=ngk(jspn,ik),iva=igkig(:,jspn,ik))
229  end do
230  end do
231 end if
232 
233 !---------------------------------!
234 ! APWs and local-orbitals !
235 !---------------------------------!
236 apwordmax=0
237 lorbordmax=0
238 lolmax=0
239 do is=1,nspecies
240  lmoapw(is)=0
241  do l1=0,lmaxapw
242 ! find the maximum APW order
243  apwordmax=max(apwordmax,apword(l1,is))
244 ! find total number of APW coefficients (l, m and order)
245  lmoapw(is)=lmoapw(is)+(2*l1+1)*apword(l1,is)
246  if (l1 == lmaxo) nlmwf(is)=lmoapw(is)
247  end do
248 ! find the maximum local-orbital order and angular momentum
249  n=0
250  do ilo=1,nlorb(is)
251  l1=lorbl(ilo,is)
252  lolmax=max(lolmax,l1)
253  lorbordmax=max(lorbordmax,lorbord(ilo,is))
254  n=n+2*l1+1
255  end do
256 ! number of (l,m) components used for generating the muffin-tin wavefunctions
257  nlmwf(is)=max(nlmwf(is),n)
258 end do
259 lolmmax=(lolmax+1)**2
260 ! set the APW and local-orbital linearisation energies to the default
261 if (allocated(apwe)) deallocate(apwe)
262 allocate(apwe(apwordmax,0:lmaxapw,natmtot))
263 if (allocated(lorbe)) deallocate(lorbe)
264 allocate(lorbe(lorbordmax,maxlorb,natmtot))
265 do ias=1,natmtot
266  is=idxis(ias)
267  do l1=0,lmaxapw
268  do io=1,apword(l1,is)
269  apwe(io,l1,ias)=apwe0(io,l1,is)
270  end do
271  end do
272  do ilo=1,nlorb(is)
273  do io=1,lorbord(ilo,is)
274  lorbe(io,ilo,ias)=lorbe0(io,ilo,is)
275  end do
276  end do
277 end do
278 ! generate the local-orbital index
279 call genidxlo
280 ! allocate radial function arrays
281 if (allocated(apwfr)) deallocate(apwfr)
282 allocate(apwfr(nrmtmax,2,apwordmax,0:lmaxapw,natmtot))
283 if (allocated(apwdfr)) deallocate(apwdfr)
284 allocate(apwdfr(apwordmax,0:lmaxapw,natmtot))
285 if (allocated(lofr)) deallocate(lofr)
286 allocate(lofr(nrmtmax,2,nlomax,natmtot))
287 ! store single-precision radial functions if required
288 if (any(task == [5,180,185,240,241,300,320,330,331,460,461,462,463,478,600,601,&
289  620,670,680,700,701,720,725,820]).or.(xctype(1) < 0).or.ksgwrho) then
290  if (allocated(apwfr_sp)) deallocate(apwfr_sp)
292  if (allocated(lofr_sp)) deallocate(lofr_sp)
293  allocate(lofr_sp(nrcmtmax,nlomax,natmtot))
294  tfr_sp=.true.
295 else
296  tfr_sp=.false.
297 end if
298 ! disable automatic determination of dlefe if not required
299 if (.not.autolinengy) autodlefe=.false.
300 
301 !-------------------------!
302 ! DFT+U variables !
303 !-------------------------!
304 if (dftu /= 0) then
305 ! allocate energy arrays to calculate Slater integrals with Yukawa potential
306  if (allocated(efdu)) deallocate(efdu)
307  allocate(efdu(0:lmaxdm,natmtot))
308 ! allocate radial functions to calculate Slater integrals with Yukawa potential
309  if (allocated(fdufr)) deallocate(fdufr)
310  allocate(fdufr(nrmtmax,0:lmaxdm,natmtot))
311 end if
312 
313 !---------------------------------------!
314 ! eigenvalue equation variables !
315 !---------------------------------------!
316 ! total number of empty states (M. Meinert)
317 nempty=nint(nempty0*max(natmtot,1))
318 if (nempty < 1) nempty=1
319 ! number of first-variational states
320 nstfv=nint(chgval/2.d0)+nempty+1
321 ! overlap and Hamiltonian matrix sizes
322 if (allocated(nmat)) deallocate(nmat)
323 allocate(nmat(nspnfv,nkpt))
324 nmatmax=0
325 do ik=1,nkpt
326  do jspn=1,nspnfv
327  n=ngk(jspn,ik)+nlotot
328  nmat(jspn,ik)=n
329  nmatmax=max(nmatmax,n)
330  if (nstfv > n) nstfv=n
331  end do
332 end do
333 ! number of second-variational states
335 ! allocate second-variational arrays
336 if (allocated(evalsv)) deallocate(evalsv)
337 allocate(evalsv(nstsv,nkpt))
338 if (allocated(occsv)) deallocate(occsv)
339 allocate(occsv(nstsv,nkpt))
340 ! allocate overlap and Hamiltonian integral arrays
341 if (allocated(oalo)) deallocate(oalo)
342 allocate(oalo(apwordmax,nlomax,natmtot))
343 if (allocated(ololo)) deallocate(ololo)
344 allocate(ololo(nlomax,nlomax,natmtot))
345 if (allocated(haa)) deallocate(haa)
347 if (allocated(hloa)) deallocate(hloa)
349 if (allocated(hlolo)) deallocate(hlolo)
350 allocate(hlolo(lmmaxo,nlomax,nlomax,natmtot))
351 ! allocate and generate complex Gaunt coefficient array
352 if (allocated(gntyry)) deallocate(gntyry)
353 allocate(gntyry(lmmaxo,lmmaxapw,lmmaxapw))
354 do l1=0,lmaxapw
355  do m1=-l1,l1
356  lm1=l1*(l1+1)+m1+1
357  do l3=0,lmaxapw
358  do m3=-l3,l3
359  lm3=l3*(l3+1)+m3+1
360  do l2=0,lmaxo
361  do m2=-l2,l2
362  lm2=l2*(l2+1)+m2+1
363  gntyry(lm2,lm3,lm1)=gauntyry(l1,l2,l3,m1,m2,m3)
364  end do
365  end do
366  end do
367  end do
368  end do
369 end do
370 ! check if the scissor correction is non-zero
371 tscissor=(abs(scissor) > 1.d-8)
372 ! write to VARIABLES.OUT
373 if (wrtvars) then
374  call writevars('nempty',iv=nempty)
375  call writevars('nstfv',iv=nstfv)
376  call writevars('nlotot',iv=nlotot)
377  call writevars('nstsv',iv=nstsv)
378  call writevars('stype',iv=stype)
379  call writevars('swidth',rv=swidth)
380 end if
381 
382 call timesec(ts1)
383 timeinit=timeinit+ts1-ts0
384 
385 end subroutine
386 !EOC
387 
integer nmatmax
Definition: modmain.f90:854
real(8), dimension(:,:), allocatable efdu
Definition: moddftu.f90:65
subroutine writetest(id, descr, nv, iv, iva, tol, rv, rva, zv, zva)
Definition: modtest.f90:16
real(8) scissor
Definition: modmain.f90:907
integer, dimension(maxsymcrys) lspnsymc
Definition: modmain.f90:369
logical tscissor
Definition: modmain.f90:905
real(8), parameter twopi
Definition: modmain.f90:1233
integer, dimension(maxspecies) nlorb
Definition: modmain.f90:789
pure subroutine gensfacgp(ngp, vgpc, ld, sfacgp)
Definition: gensfacgp.f90:10
real(8), dimension(:,:), allocatable evalsv
Definition: modmain.f90:915
integer task
Definition: modmain.f90:1299
subroutine genppts(tfbz, nsym, sym, ngridp, npptnr, epslat, bvec, boxl, nppt, ipvip, ipvipnr, ivp, vpl, vpc, wppt, wpptnr)
Definition: genppts.f90:11
subroutine reciplat(avec, bvec, omega, omegabz)
Definition: reciplat.f90:10
real(8), dimension(:,:,:,:), allocatable lofr
Definition: modmain.f90:817
integer lmmaxo
Definition: modmain.f90:205
integer, dimension(3) xctype
Definition: modmain.f90:591
logical spinpol
Definition: modmain.f90:230
real(8), dimension(:,:,:), allocatable oalo
Definition: modmain.f90:858
integer lmmaxapw
Definition: modmain.f90:201
integer nkpt
Definition: modmain.f90:464
logical autokpt
Definition: modmain.f90:447
integer nlotot
Definition: modmain.f90:793
integer ngkmax
Definition: modmain.f90:502
pure subroutine findngkmax(nkpt, vkc, nspnfv, vqcss, ngv, vgc, gkmax, ngkmax)
Definition: findngkmax.f90:10
real(8), dimension(maxlorbord, maxlorb, maxspecies) lorbe0
Definition: modmain.f90:807
real(8), dimension(:), allocatable dpp1d
Definition: modmain.f90:1126
integer nsymcrys
Definition: modmain.f90:361
real(4), dimension(:,:,:), allocatable lofr_sp
Definition: modmain.f90:819
logical spinsprl
Definition: modmain.f90:285
real(8) swidth
Definition: modmain.f90:891
real(8), dimension(3, 0:3) vclp3d
Definition: modmain.f90:1132
integer, dimension(3, 3, 48) symlat
Definition: modmain.f90:347
integer, dimension(:,:,:), allocatable ivkik
Definition: modmain.f90:470
integer lorbordmax
Definition: modmain.f90:797
real(8), dimension(:,:,:), allocatable ololo
Definition: modmain.f90:860
integer, dimension(maxspecies) lmoapw
Definition: modmain.f90:765
real(8), dimension(3) vkloff
Definition: modmain.f90:453
real(8) omegau
Definition: modulr.f90:16
integer lmaxo
Definition: modmain.f90:203
real(8), dimension(3) vqlss
Definition: modmain.f90:295
real(8), dimension(3, 3) bvecu
Definition: modulr.f90:14
integer nkptnr
Definition: modmain.f90:466
real(8) nempty0
Definition: modmain.f90:879
integer ngvc
Definition: modmain.f90:401
logical, dimension(maxsymcrys) tv0symc
Definition: modmain.f90:365
integer lmaxapw
Definition: modmain.f90:199
complex(8), dimension(:,:,:,:), allocatable sfacgk
Definition: modmain.f90:512
real(8), dimension(:,:), allocatable vkc
Definition: modmain.f90:476
integer, dimension(3, 3, 48) symkpt
Definition: modmain.f90:462
subroutine genkpakq
Definition: genkpakq.f90:7
integer nlomax
Definition: modmain.f90:791
real(8), dimension(:,:), allocatable vgc
Definition: modmain.f90:423
real(8) timeinit
Definition: modmain.f90:1215
integer, dimension(:,:), allocatable nmat
Definition: modmain.f90:852
integer nrcmtmax
Definition: modmain.f90:177
integer nstsv
Definition: modmain.f90:885
integer, dimension(:,:), allocatable ngk
Definition: modmain.f90:500
real(8), dimension(:,:,:,:,:,:), allocatable haa
Definition: modmain.f90:862
real(8), dimension(:), allocatable dvp1d
Definition: modmain.f90:1122
real(8), dimension(:), allocatable wkpt
Definition: modmain.f90:478
real(8) radkpt
Definition: modmain.f90:449
integer, dimension(maxsymcrys) lsplsymc
Definition: modmain.f90:367
real(8), dimension(maxapword, 0:maxlapw, maxspecies) apwe0
Definition: modmain.f90:769
real(8) deltaem
Definition: modmain.f90:484
real(8), dimension(:,:,:), allocatable lorbe
Definition: modmain.f90:811
real(8), dimension(:,:,:), allocatable fdufr
Definition: moddftu.f90:67
integer nsymlat
Definition: modmain.f90:345
real(8), dimension(:,:,:,:), allocatable vgkl
Definition: modmain.f90:506
integer, dimension(3) ngridk
Definition: modmain.f90:451
real(8), dimension(:,:,:), allocatable apwe
Definition: modmain.f90:771
real(8), dimension(:,:), allocatable occsv
Definition: modmain.f90:901
real(8), dimension(3, 3) avecu
Definition: modulr.f90:12
integer, dimension(0:maxlapw, maxspecies) apword
Definition: modmain.f90:761
complex(8), dimension(:,:,:), allocatable gntyry
Definition: modmain.f90:868
logical tfr_sp
Definition: modmain.f90:821
integer nspinor
Definition: modmain.f90:269
pure subroutine r3frac(eps, v)
Definition: r3frac.f90:10
subroutine plotpt1d(cvec, nv, np, vvl, vpl, dv, dp)
Definition: plotpt1d.f90:10
real(8), dimension(3, 3) bvec
Definition: modmain.f90:16
real(8), dimension(:,:,:,:), allocatable vgkc
Definition: modmain.f90:508
integer, dimension(:,:), allocatable ivg
Definition: modmain.f90:403
subroutine init1
Definition: init1.f90:10
real(8), dimension(:,:,:,:,:), allocatable hloa
Definition: modmain.f90:864
integer nsymkpt
Definition: modmain.f90:460
real(8), dimension(:,:), allocatable vkl
Definition: modmain.f90:474
real(8), dimension(3) vqcss
Definition: modmain.f90:297
pure subroutine gengkvec(ngv, ivg, vgc, vkl, vkc, gkmax, ngkmax, ngk, igkig, vgkl, vgkc, gkc)
Definition: gengkvec.f90:11
Definition: modgw.f90:6
integer apwordmax
Definition: modmain.f90:763
logical wrtvars
Definition: modvars.f90:9
integer, dimension(maxatoms *maxspecies) idxis
Definition: modmain.f90:44
real(8), dimension(3, 3) binv
Definition: modmain.f90:18
real(8) epslat
Definition: modmain.f90:24
integer lolmax
Definition: modmain.f90:801
integer ndspem
Definition: modmain.f90:486
integer stype
Definition: modmain.f90:887
real(4), dimension(:,:,:,:), allocatable apwfr_sp
Definition: modmain.f90:779
subroutine timesec(ts)
Definition: timesec.f90:10
integer dftu
Definition: moddftu.f90:36
real(8) chgval
Definition: modmain.f90:725
integer, dimension(maxlorb, maxspecies) lorbord
Definition: modmain.f90:795
real(8), dimension(:,:,:), allocatable gkc
Definition: modmain.f90:510
real(8), dimension(:,:), allocatable vvlp1d
Definition: modmain.f90:1120
logical autolinengy
Definition: modmain.f90:831
integer lolmmax
Definition: modmain.f90:803
integer nspecies
Definition: modmain.f90:34
real(8) gkmax
Definition: modmain.f90:498
logical autodlefe
Definition: modmain.f90:836
integer, dimension(3) np3d
Definition: modmain.f90:1134
real(8) wkptnr
Definition: modmain.f90:480
integer reducek
Definition: modmain.f90:458
integer, parameter maxlorb
Definition: modmain.f90:783
integer natmtot
Definition: modmain.f90:40
real(8), dimension(:,:,:,:,:), allocatable apwfr
Definition: modmain.f90:777
real(8) omegabzu
Definition: modulr.f90:16
logical ksgwrho
Definition: modgw.f90:38
integer, dimension(maxspecies) nlmwf
Definition: modmain.f90:846
integer, parameter lmaxdm
Definition: moddftu.f90:14
integer, dimension(maxlorb, maxspecies) lorbl
Definition: modmain.f90:799
pure subroutine r3mv(a, x, y)
Definition: r3mv.f90:10
Definition: modulr.f90:6
integer nrmtmax
Definition: modmain.f90:152
real(8), dimension(:,:,:,:), allocatable hlolo
Definition: modmain.f90:866
subroutine genidxlo
Definition: genidxlo.f90:10
logical tddos
Definition: modtddft.f90:92
integer nvp1d
Definition: modmain.f90:1116
integer, dimension(:,:,:), allocatable igkig
Definition: modmain.f90:504
integer npp1d
Definition: modmain.f90:1118
logical molecule
Definition: modmain.f90:47
integer nstfv
Definition: modmain.f90:883
real(8), dimension(3) vklem
Definition: modmain.f90:482
real(8), dimension(:,:), allocatable vplp1d
Definition: modmain.f90:1124
integer, dimension(:,:), allocatable ivk
Definition: modmain.f90:468
subroutine writevars(vname, n1, n2, n3, n4, n5, n6, nv, iv, iva, rv, rva, zv, zva, sv, sva)
Definition: modvars.f90:16
integer nspnfv
Definition: modmain.f90:291
real(8), dimension(:,:,:), allocatable apwdfr
Definition: modmain.f90:781
integer nempty
Definition: modmain.f90:881
integer, dimension(:,:,:), allocatable ivkiknr
Definition: modmain.f90:472