1
!!****m* ABINIT/interfaces_14wfs
6
!! This module contains the interfaces of the routines
7
!! in the directory src/14wfs
10
!! Copyright (C) 2005 ABINIT group
11
!! This file is distributed under the terms of the
12
!! GNU General Public License, see ~abinit/COPYING
13
!! or http://www.gnu.org/copyleft/gpl.txt .
16
!! THIS FILE IS GENERATED AUTOMATICALLY BY abilint.
17
!! To do that: abilint . .
18
!! (see util/maintainers/abilint.py)
22
module interfaces_14wfs
25
subroutine bestwfs(gcc_block,ghc_block,gscc_block,gscc_calc,&
26
& gvnlc_block,gvnlc_calc,istwf_k,mpi_enreg,nbdblock,npw_k,nspinor,nvectin,nvectout,wfoptalg)
29
integer,intent(in) :: gscc_calc
30
integer,intent(in) :: gvnlc_calc
31
integer,intent(in) :: istwf_k
32
integer,intent(in) :: nbdblock
33
integer,intent(in) :: npw_k
34
integer,intent(in) :: nspinor
35
integer,intent(in) :: nvectin
36
integer,intent(in) :: nvectout
37
integer,intent(in) :: wfoptalg
38
type(MPI_type),intent(inout) :: mpi_enreg
39
real(dp),intent(inout) :: gcc_block(2,npw_k*nspinor,nbdblock)
40
real(dp),intent(inout) :: ghc_block(2,npw_k*nspinor,nbdblock)
41
real(dp),intent(inout) :: gscc_block(2,npw_k*nspinor,nbdblock*gscc_calc)
42
real(dp),intent(inout) :: gvnlc_block(2,npw_k*nspinor,nbdblock)
43
end subroutine bestwfs
47
subroutine envlop(cg,ecut,gmet,icgmod,kg,kpoint,mcg,nband,npw,nspinor)
49
integer,intent(in) :: icgmod
50
integer,intent(in) :: mcg
51
integer,intent(in) :: nband
52
integer,intent(in) :: npw
53
integer,intent(in) :: nspinor
54
real(dp),intent(in) :: ecut
55
real(dp),intent(in) :: gmet(3,3)
56
real(dp),intent(in) :: kpoint(3)
57
real(dp),intent(inout) :: cg(2,mcg)
58
integer,intent(in) :: kg(3,npw)
63
subroutine fxphas(cg,gsc,icg,igsc,istwfk,mcg,mgsc,mpi_enreg,nband_k,npw_k,useoverlap)
66
integer,intent(in) :: icg
67
integer,intent(in) :: igsc
68
integer,intent(in) :: istwfk
69
integer,intent(in) :: mcg
70
integer,intent(in) :: mgsc
71
integer,intent(in) :: nband_k
72
integer,intent(in) :: npw_k
73
integer,intent(in) :: useoverlap
74
type(MPI_type),intent(inout) :: mpi_enreg
75
real(dp),intent(inout) :: cg(2,mcg)
76
real(dp),intent(inout) :: gsc(2,mgsc*useoverlap)
81
subroutine getghc(cwavef,dimffnl,ffnl,filstat,ghc,gsc,gs_ham,&
82
& gvnlc,kg_k,kinpw,lmnmax,&
83
& matblk,mgfft,mpi_enreg,mpsang,mpssoang,&
84
& natom,ndat,npw,nspinor,ntypat,nvloc,n4,n5,n6,&
85
& ph3d,prtvol,sij_opt,tim_getghc,vlocal)
88
integer,intent(in) :: dimffnl
89
integer,intent(in) :: lmnmax
90
integer,intent(in) :: matblk
91
integer,intent(in) :: mgfft
92
integer,intent(in) :: mpsang
93
integer,intent(in) :: mpssoang
94
integer,intent(in) :: n4
95
integer,intent(in) :: n5
96
integer,intent(in) :: n6
97
integer,intent(in) :: natom
98
integer,intent(in) :: ndat
99
integer,intent(in) :: npw
100
integer,intent(in) :: nspinor
101
integer,intent(in) :: ntypat
102
integer,intent(in) :: nvloc
103
integer,intent(in) :: prtvol
104
integer,intent(in) :: sij_opt
105
integer,intent(in) :: tim_getghc
106
character(len=fnlen),intent(in) :: filstat
107
type(gs_hamiltonian_type),intent(in) :: gs_ham
108
type(MPI_type),intent(inout) :: mpi_enreg
109
real(dp),intent(inout) :: cwavef(2,npw*nspinor*ndat)
110
real(dp),intent(in) :: ffnl(npw,dimffnl,lmnmax,ntypat)
111
real(dp),intent(inout) :: ghc(2,npw*nspinor*ndat)
112
real(dp),intent(out) :: gsc(2,npw*nspinor*ndat*sij_opt)
113
real(dp),intent(inout) :: gvnlc(2,npw*nspinor*ndat)
114
integer,intent(in) :: kg_k(3,npw)
115
real(dp),intent(in) :: kinpw(npw)
116
real(dp),intent(inout) :: ph3d(2,npw,matblk)
117
real(dp),intent(inout) :: vlocal(n4,n5,n6,nvloc)
118
end subroutine getghc
122
subroutine listkk(dksqmax,gmet,indkk,kptns1,kptns2,nkpt1,nkpt2,nsym,&
123
& sppoldbl,symafm,symrel,timrev)
125
integer,intent(in) :: nkpt1
126
integer,intent(in) :: nkpt2
127
integer,intent(in) :: nsym
128
integer,intent(in) :: sppoldbl
129
integer,intent(in) :: timrev
130
real(dp),intent(out) :: dksqmax
131
real(dp),intent(in) :: gmet(3,3)
132
integer,intent(out) :: indkk(nkpt2*sppoldbl,6)
133
real(dp),intent(in) :: kptns1(3,nkpt1)
134
real(dp),intent(in) :: kptns2(3,nkpt2)
135
integer,intent(in) :: symafm(nsym)
136
integer,intent(in) :: symrel(3,3,nsym)
137
end subroutine listkk
141
subroutine precon(cg,eval,istwf_k,kinpw,mpi_enreg,npw,nspinor,optekin,pcon,vect)
144
integer,intent(in) :: istwf_k
145
integer,intent(in) :: npw
146
integer,intent(in) :: nspinor
147
integer,intent(in) :: optekin
148
real(dp),intent(in) :: eval
149
type(MPI_type),intent(inout) :: mpi_enreg
150
real(dp),intent(in) :: cg(2,npw*nspinor)
151
real(dp),intent(in) :: kinpw(npw)
152
real(dp),intent(inout) :: pcon(npw)
153
real(dp),intent(inout) :: vect(2,npw*nspinor)
154
end subroutine precon
158
subroutine prep_fourwf(rhoaug,blocksize,cwavef,wfraug,gs_hamk,istwf_k,iblock,icall,kg_k,&
159
& mgfft,mpi_enreg,nbdblock,nband_k,npw_k,n4,n5,n6,occ_k,wtk)
173
type(gs_hamiltonian_type) :: gs_hamk
174
type(mpi_type) :: mpi_enreg
176
real(dp) :: cwavef(2,npw_k*blocksize)
177
integer :: kg_k(3,npw_k)
178
real(dp) :: occ_k(nband_k)
179
real(dp) :: rhoaug(n4,n5,n6)
180
real(dp) :: wfraug(2,n4,n5,n6)
181
end subroutine prep_fourwf
185
subroutine prep_getghc(cwavef,dimffnl,dtfil,ffnl,gs_hamk,gvnlc,gwavef,swavef,iblock,icall,istwf_k,kg_k,&
186
& kinpw,lmnmax,matblk,blocksize,mgfft,mpi_enreg,mpsang,mpssoang,natom,nbdblock,nband_k,npw_k,&
187
& nspinor,ntypat,nvloc,n4,n5,n6,ph3d,prtvol,sij_opt,vlocal)
212
type(datafiles_type) :: dtfil
213
type(gs_hamiltonian_type) :: gs_hamk
214
type(mpi_type) :: mpi_enreg
215
real(dp) :: cwavef(2,npw_k*nspinor*blocksize)
216
real(dp) :: ffnl(npw_k,dimffnl,lmnmax,ntypat)
217
real(dp) :: gvnlc(2,npw_k*nspinor*blocksize)
218
real(dp) :: gwavef(2,npw_k*nspinor*blocksize)
219
integer :: kg_k(3,npw_k)
220
real(dp) :: kinpw(npw_k)
221
real(dp) :: ph3d(2,npw_k,matblk)
222
real(dp) :: swavef(2,npw_k*nspinor*blocksize)
223
real(dp) :: vlocal(n4,n5,n6,nvloc)
224
end subroutine prep_getghc
228
subroutine projbd(cg,direc,iband0,icg,iscg,istwf_k,mcg,mpi_enreg,mscg,nband,&
229
& npw,ortalg,print,scg,scprod,tim_projbd,useoverlap)
232
integer,intent(in) :: iband0
233
integer,intent(in) :: icg
234
integer,intent(in) :: iscg
235
integer,intent(in) :: istwf_k
236
integer,intent(in) :: mcg
237
integer,intent(in) :: mscg
238
integer,intent(in) :: nband
239
integer,intent(in) :: npw
240
integer,intent(in) :: ortalg
241
integer,intent(in) :: print
242
integer,intent(in) :: tim_projbd
243
integer,intent(in) :: useoverlap
244
type(MPI_type),intent(inout) :: mpi_enreg
245
real(dp),intent(in) :: cg(2,mcg)
246
real(dp),intent(inout) :: direc(2,npw)
247
real(dp),intent(in) :: scg(2,mscg*useoverlap)
248
real(dp),intent(out) :: scprod(2,nband)
249
end subroutine projbd
253
subroutine pw_orthon(icg,igsc,istwf_k,mcg,mgsc,mpi_enreg,nelem,nvec,&
254
& ovl_vecnm,useoverlap,vecnm)
257
integer,intent(in) :: icg
258
integer,intent(in) :: igsc
259
integer,intent(in) :: istwf_k
260
integer,intent(in) :: mcg
261
integer,intent(in) :: mgsc
262
integer,intent(in) :: nelem
263
integer,intent(in) :: nvec
264
integer,intent(in) :: useoverlap
265
type(MPI_type),intent(inout) :: mpi_enreg
266
real(dp),intent(inout) :: ovl_vecnm(2,mgsc*useoverlap)
267
real(dp),intent(inout) :: vecnm(2,mcg)
268
end subroutine pw_orthon
272
subroutine sdirot(cg,evec,icg,mcg,ndim,num,npw)
274
integer,intent(in) :: icg
275
integer,intent(in) :: mcg
276
integer,intent(in) :: ndim
277
integer,intent(in) :: npw
278
integer,intent(in) :: num
279
real(dp),intent(inout) :: cg(2,mcg)
280
real(dp),intent(in) :: evec(2*ndim,num)
281
end subroutine sdirot
285
subroutine wfconv(ceksp2,cg1,cg2,debug,ecut1,ecut2,ecut2_eff,&
286
& eig_k1,eig_k2,exchn2n3,formeig,gmet1,gmet2,icg1,icg2,idum,&
287
& ikpt1,ikpt10,ikpt2,indkk,inplace,isppol2,istwfk1,istwfk2,&
288
& kg1,kg2,kptns1,kptns2,mband1,mband2,mcg1,mcg2,mgfft,mpi_enreg,mpw1,mpw2,nbd1,nbd2,&
289
& ngfft,nkpt1,nkpt2,npw1,npw2,nspinor1,nspinor2,nsym,&
290
& occ_k1,occ_k2,optorth,restart,rprimd2,sppoldbl,symafm,symrel,tnons)
293
integer,intent(in) :: ceksp2
294
integer,intent(in) :: debug
295
integer,intent(in) :: exchn2n3
296
integer,intent(in) :: formeig
297
integer,intent(in) :: icg1
298
integer,intent(in) :: icg2
299
integer,intent(in) :: idum
300
integer,intent(in) :: ikpt1
301
integer,intent(inout) :: ikpt10
302
integer,intent(in) :: ikpt2
303
integer,intent(in) :: inplace
304
integer,intent(in) :: isppol2
305
integer,intent(in) :: mband1
306
integer,intent(in) :: mband2
307
integer,intent(in) :: mcg1
308
integer,intent(in) :: mcg2
309
integer,intent(in) :: mgfft
310
integer,intent(in) :: mpw1
311
integer,intent(in) :: mpw2
312
integer,intent(in) :: nbd1
313
integer,intent(in) :: nbd2
314
integer,intent(in) :: nkpt1
315
integer,intent(in) :: nkpt2
316
integer,intent(inout) :: npw1
317
integer,intent(inout) :: npw2
318
integer,intent(in) :: nspinor1
319
integer,intent(in) :: nspinor2
320
integer,intent(in) :: nsym
321
integer,intent(in) :: optorth
322
integer,intent(in) :: restart
323
integer,intent(in) :: sppoldbl
324
real(dp),intent(in) :: ecut1
325
real(dp),intent(in) :: ecut2
326
real(dp),intent(in) :: ecut2_eff
327
type(MPI_type),intent(inout) :: mpi_enreg
328
real(dp),intent(in) :: gmet1(3,3)
329
real(dp),intent(in) :: gmet2(3,3)
330
integer,intent(in) :: ngfft(18)
331
real(dp),intent(in) :: rprimd2(3,3)
332
real(dp),intent(in) :: cg1(2,mcg1)
333
real(dp),intent(out) :: cg2(2,mcg2)
334
real(dp),intent(in) :: eig_k1(mband1*(2*mband1)**formeig)
335
real(dp),intent(out) :: eig_k2(mband2*(2*mband2)**formeig)
336
integer,intent(in) :: indkk(nkpt2*sppoldbl,6)
337
integer,intent(in) :: istwfk1(nkpt1)
338
integer,intent(in) :: istwfk2(nkpt2)
339
integer,intent(inout) :: kg1(3,mpw1)
340
integer,intent(inout) :: kg2(3,mpw2)
341
real(dp),intent(in) :: kptns1(3,nkpt1)
342
real(dp),intent(in) :: kptns2(3,nkpt2)
343
real(dp),intent(in) :: occ_k1(mband1)
344
real(dp),intent(out) :: occ_k2(mband2)
345
integer,intent(in) :: symafm(nsym)
346
integer,intent(in) :: symrel(3,3,nsym)
347
real(dp),intent(in) :: tnons(3,nsym)
348
end subroutine wfconv
351
end module interfaces_14wfs