TABLE OF CONTENTS


ABINIT/m_scfcv [ Modules ]

[ Top ] [ Modules ]

NAME

  m_scfcv

FUNCTION

  FIXME: add description.

COPYRIGHT

  Copyright (C) 2014-2018 ABINIT group (JB)
  This file is distributed under the terms of the
  GNU General Public License, see ~abinit/COPYING
  or http://www.gnu.org/copyleft/gpl.txt .

NOTES

PARENTS

CHILDREN

SOURCE

23 #if defined HAVE_CONFIG_H
24 #include "config.h"
25 #endif
26 
27 #include "abi_common.h"
28 
29 module m_scfcv
30 
31  use defs_basis
32  use m_abicore
33  use m_errors
34  use defs_datatypes
35  use defs_abitypes
36  use defs_wvltypes
37  use defs_rectypes
38  use m_wffile
39  use m_rec
40  use m_efield
41  use m_entropyDMFT
42 
43  use m_scf_history,      only : scf_history_type
44  use m_results_gs ,      only : results_gs_type
45  use m_electronpositron, only : electronpositron_type
46  use m_pawang,           only : pawang_type
47  use m_pawrad,           only : pawrad_type
48  use m_pawtab,           only : pawtab_type
49  use m_pawcprj,          only : pawcprj_type
50  use m_pawrhoij,         only : pawrhoij_type
51  use m_pawfgr,           only : pawfgr_type
52  use m_paw_dmft,         only : paw_dmft_type
53  use m_orbmag,           only : orbmag_type
54  use m_data4entropyDMFT, only : data4entropyDMFT_t, data4entropyDMFT_init, data4entropyDMFT_destroy
55  use m_scfcv_core,       only : scfcv_core
56 
57  implicit none
58 
59  private
60 
61  public :: scfcv_init
62  public :: scfcv_destroy
63  public :: scfcv_run

ABINIT/m_scfcv/scfcv_destroy [ Functions ]

[ Top ] [ Functions ]

NAME

  scfcv_destroy

FUNCTION

  FIXME: add description.

INPUTS

  scfcv=structure of scfcv

OUTPUT

SIDE EFFECTS

NOTES

PARENTS

      gstate,mover_effpot

CHILDREN

      scfcv

SOURCE

385 subroutine scfcv_destroy(this)
386 
387 !Arguments ------------------------------------
388 
389 !This section has been created automatically by the script Abilint (TD).
390 !Do not modify the following lines by hand.
391 #undef ABI_FUNC
392 #define ABI_FUNC 'scfcv_destroy'
393 !End of the abilint section
394 
395 type(scfcv_t), intent(inout) :: this
396 
397 !Local variables-------------------------------
398 
399 ! *************************************************************************
400 
401  DBG_ENTER("COLL")
402 
403  !scalars
404  this%mcg => null()
405  this%mcprj => null()
406  this%my_natom => null()
407  this%ndtpawuj => null()
408  this%pwind_alloc => null()
409  this%initialized => null()
410  this%nfftf => null()
411  this%cpus => null()
412  this%ecore  => null()
413  this%fatvshift => null()
414  this%pawang => null()
415  this%psps => null()
416  this%mpi_enreg => null()
417  this%dtfil => null()
418  this%dtset => null()
419  this%dtefield => null()
420  this%dtorbmag => null()
421  this%electronpositron => null()
422  this%hdr => null()
423  this%pawfgr => null()
424  this%rec_set => null()
425  this%results_gs => null()
426  this%scf_history => null()
427  this%wffnew => null()
428  this%wffnow => null()
429  this%wvl => null()
430  this%paw_dmft => null()
431 
432  !arrays
433  this%atindx => null()
434  this%atindx1 => null()
435  this%irrzon => null()
436  this%symrec => null()
437  this%indsym => null()
438  !no_abirules
439  this%kg => null()
440  this%nattyp => null()
441  this%npwarr => null()
442  this%pwind => null()
443  this%phnons => null()
444  this%pwnsfac => null()
445  this%ylm => null()
446  this%ylmgr => null()
447  this%cg => null()
448  this%cprj => null()
449  this%dmatpawu => null()
450  this%eigen => null()
451  this%occ => null()
452  !this%rprimd
453  !this%rhog => null()
454  !this%rhor => null()
455  this%taug => null()
456  this%taur => null()
457  this%resid => null()
458  this%pawrad => null()
459  this%pawtab => null()
460  this%dtpawuj => null()
461  this%pawrhoij => null()
462 
463  ! This call should be done inside destroy_sc_dmft
464  !if ( this%dtset%usedmft /= 0 ) then
465  !  call data4entropyDMFT_destroy(this%paw_dmft%forentropyDMFT)
466  !end if
467  !call entropyDMFT_destroy(this%entropyDMFT)
468 
469  DBG_EXIT("COLL")
470 
471 end subroutine scfcv_destroy

ABINIT/m_scfcv/scfcv_init [ Functions ]

[ Top ] [ Functions ]

NAME

  scfcv_init

FUNCTION

  FIXME: add description.

INPUTS

  scfcv=structure of scfcv
  argin(sizein)=description

OUTPUT

  argout(sizeout)=description

SIDE EFFECTS

NOTES

PARENTS

      gstate

CHILDREN

      scfcv

SOURCE

180 subroutine scfcv_init(this,atindx,atindx1,cg,cprj,cpus,&
181 &  dmatpawu,dtefield,dtfil,dtorbmag,dtpawuj,dtset,ecore,eigen,hdr,&
182 &  indsym,initialized,irrzon,kg,mcg,mcprj,mpi_enreg,my_natom,nattyp,ndtpawuj,&
183 &  nfftf,npwarr,occ,pawang,pawfgr,pawrad,pawrhoij,&
184 &  pawtab,phnons,psps,pwind,pwind_alloc,pwnsfac,rec_set,&
185 &  resid,results_gs,scf_history,fatvshift,&
186 &  symrec,taug,taur,wvl,ylm,ylmgr,paw_dmft,wffnew,wffnow)
187 
188 
189 !Arguments ------------------------------------
190 !scalars
191 
192 !This section has been created automatically by the script Abilint (TD).
193 !Do not modify the following lines by hand.
194 #undef ABI_FUNC
195 #define ABI_FUNC 'scfcv_init'
196 !End of the abilint section
197 
198  type(scfcv_t), intent(inout) :: this
199  integer,intent(in),target :: mcg,mcprj,my_natom,ndtpawuj,pwind_alloc
200  integer,intent(in),target :: initialized,nfftf
201  real(dp),intent(in),target :: cpus,ecore
202  real(dp),intent(in),target :: fatvshift
203  type(MPI_type),intent(in),target :: mpi_enreg
204  type(datafiles_type),intent(in),target :: dtfil
205  type(dataset_type),intent(in),target :: dtset
206  type(efield_type),intent(in),target :: dtefield
207  type(orbmag_type),intent(in),target :: dtorbmag
208 ! type(electronpositron_type),pointer :: electronpositron
209  type(hdr_type),intent(in),target :: hdr
210  type(pawang_type),intent(in),target :: pawang
211  type(pawfgr_type),intent(in),target :: pawfgr
212  type(pseudopotential_type),intent(in),target :: psps
213  type(recursion_type),intent(in),target :: rec_set
214  type(results_gs_type),intent(in),target :: results_gs
215  type(scf_history_type),intent(in),target :: scf_history
216 ! type(wffile_type),intent(in),target :: wffnew,wffnow
217  type(wvl_data),intent(in),target :: wvl
218 !arrays
219  integer,intent(in),target :: atindx(dtset%natom),atindx1(dtset%natom)
220  integer,intent(in),target :: indsym(4,dtset%nsym,dtset%natom)
221 !no_abirules
222  integer, intent(in),target :: irrzon(dtset%nfft**(1-1/dtset%nsym),2,(dtset%nspden/dtset%nsppol)-3*(dtset%nspden/4))
223  integer, intent(in),target :: kg(3,dtset%mpw*dtset%mkmem)
224  integer, intent(in),target :: nattyp(psps%ntypat),npwarr(dtset%nkpt),pwind(pwind_alloc,2,3)
225  integer, intent(in),target :: symrec(3,3,dtset%nsym)
226  real(dp), intent(in),target :: cg(2,mcg),dmatpawu(:,:,:,:)
227  real(dp), intent(in),target :: eigen(dtset%mband*dtset%nkpt*dtset%nsppol)
228  real(dp), intent(in),target :: occ(dtset%mband*dtset%nkpt*dtset%nsppol)
229  real(dp), intent(in),target :: phnons(2,dtset%nfft**(1-1/dtset%nsym),(dtset%nspden/dtset%nsppol)-3*(dtset%nspden/4))
230  real(dp), intent(in),target :: pwnsfac(2,pwind_alloc)
231 ! real(dp), intent(in),target :: rprimd(3,3)
232 ! real(dp), pointer :: rhog(:,:),rhor(:,:)
233  real(dp), pointer :: taug(:,:),taur(:,:)
234  real(dp), intent(in),target :: resid(dtset%mband*dtset%nkpt*dtset%nsppol)
235 ! real(dp), intent(in),target :: xred(3,dtset%natom),xred_old(3,dtset%natom)
236  real(dp), intent(in),target :: ylm(dtset%mpw*dtset%mkmem,psps%mpsang*psps%mpsang*psps%useylm)
237  real(dp), intent(in),target :: ylmgr(dtset%mpw*dtset%mkmem,3,psps%mpsang*psps%mpsang*psps%useylm)
238  type(macro_uj_type),intent(in),target :: dtpawuj(0:ndtpawuj)
239  type(pawrhoij_type), intent(in),target :: pawrhoij(my_natom*psps%usepaw)
240  type(pawrad_type), intent(in),target :: pawrad(psps%ntypat*psps%usepaw)
241  type(pawtab_type), intent(in),target :: pawtab(psps%ntypat*psps%usepaw)
242  !type(dataset_type),intent(in),target :: dtset
243 ! type(electronpositron_type),intent(in),target :: electronpositron
244  type(paw_dmft_type), intent(in),target :: paw_dmft
245  type(wffile_type),intent(in),target :: wffnew,wffnow
246  type(pawcprj_type), allocatable,intent(in),target :: cprj(:,:)
247 !Local variables -------------------------
248 !scalars
249  logical :: DEBUG=.FALSE.
250 ! *************************************************************************
251 
252  DBG_ENTER("COLL")
253 
254  if (DEBUG) then
255    write(std_out,*) 'INTENT(IN) ARGUMENTS ON SCFCV'
256  !  write(std_out,*) 'atindx=',ab_scfcv_in%atindx
257  !  write(std_out,*) 'atindx1=',ab_scfcv_in%atindx1
258  !  write(std_out,*) 'cpus=',ab_scfcv_in%cpus
259  !  write(std_out,*) 'ecore=',ab_scfcv_in%ecore
260  !  write(std_out,*) 'fatvshift=',ab_scfcv_in%fatvshift
261  !  write(std_out,*) 'indsym=',ab_scfcv_in%indsym
262  !  write(std_out,*) 'kg=',ab_scfcv_in%kg
263  !  write(std_out,*) 'my_natom=',ab_scfcv_in%my_natom
264  !  write(std_out,*) 'nattyp=',ab_scfcv_in%nattyp
265  !  write(std_out,*) 'ndtpawuj=',ab_scfcv_in%ndtpawuj
266  !  write(std_out,*) 'npwarr=',ab_scfcv_in%npwarr
267  !  write(std_out,*) 'phnons=',ab_scfcv_in%phnons
268  !  write(std_out,*) 'pwind=',ab_scfcv_in%pwind
269  !  write(std_out,*) 'pwind_alloc=',ab_scfcv_in%pwind_alloc
270  !  write(std_out,*) 'pwnsfac=',ab_scfcv_in%pwnsfac
271  !  write(std_out,*) 'ylm=',ab_scfcv_in%ylm
272  !  write(std_out,*) 'ylmgr=',ab_scfcv_in%ylmgr
273 !!  write(std_out,*) 'pawang=',ab_scfcv_in%pawang
274 !!  write(std_out,*) 'pawrad=',ab_scfcv_in%pawrad
275 !!  write(std_out,*) 'pawtab=',ab_scfcv_in%pawtab
276 !!  write(std_out,*) 'psps=',ab_scfcv_in%psps
277  end if
278 
279  this%atindx=>atindx
280  this%atindx1=>atindx1
281  this%cpus=>cpus
282  this%ecore=>ecore
283  this%fatvshift=>fatvshift
284  this%indsym=>indsym
285  this%kg=>kg
286  this%mcg=>mcg
287  this%mcprj=>mcprj
288  this%my_natom=>my_natom
289  this%nattyp=>nattyp
290  this%ndtpawuj=>ndtpawuj
291  this%npwarr=>npwarr
292  this%pawang=>pawang
293  this%pawrad=>pawrad
294  this%pawtab=>pawtab
295  this%phnons=>phnons
296  this%psps=>psps
297  this%pwind=>pwind
298  this%pwind_alloc=>pwind_alloc
299  this%pwnsfac=>pwnsfac
300  this%ylm=>ylm
301  this%ylmgr=>ylmgr
302 
303  this%cg=>cg
304  this%cprj=>cprj
305  this%dmatpawu=>dmatpawu
306  this%dtefield=>dtefield
307  this%dtorbmag=>dtorbmag
308  this%dtfil=>dtfil
309  this%dtpawuj=>dtpawuj
310  this%eigen=>eigen
311  this%hdr=>hdr
312  this%initialized=>initialized
313  this%irrzon=>irrzon
314  this%mpi_enreg=>mpi_enreg
315  this%nfftf=>nfftf
316  this%occ=>occ
317  this%pawfgr=>pawfgr
318  this%pawrhoij=>pawrhoij
319  this%pawtab=>pawtab
320  this%rec_set=>rec_set
321  this%resid=>resid
322  this%results_gs=>results_gs
323  this%scf_history=>scf_history
324  this%symrec=>symrec
325  this%taug=>taug
326  this%taur=>taur
327  this%wvl=>wvl
328 
329  this%dtset=>dtset
330  !this%electronpositron=>electronpositron
331  this%paw_dmft=>paw_dmft
332  !this%rhog=>rhog
333  !this%rhor=>rhor
334  !this%rprimd=>rprimd
335  this%wffnew=>wffnew
336  this%wffnow=>wffnow
337  !this%xred=>xred
338  !this%xred_old=>xred_old
339 
340 
341  !!!!!!!!! INITIALIZE or REINITIALIZE parallelization here !!
342  ! TODO at next step
343  !if ( this%dtset%usedmft /= 0 ) then
344  !  call data4entropyDMFT_init(this%paw_dmft%forentropyDMFT,&
345  !                            this%dtset%natom,&
346  !                            this%dtset%typat,&
347  !                            this%dtset%lpawu,&
348  !                            this%dtset%dmft_t2g==1, &
349  !                            this%dtset%upawu,&   !!! Should use this%pawtab%upawu
350  !                            this%dtset%jpawu)    !!! Should use this%pawtab%jpawu
351  !end if
352 
353  !call entropyDMFT_init(this%entropyDMFT,this%dtset,this%pawtab,this%mpi_enreg%comm_cell,this%dtfil%filnam_ds(3),this%dtfil%filnam_ds(4)) ! Do something only if DMFT and dmft_entropy = 1
354 
355  DBG_EXIT("COLL")
356 
357 end subroutine scfcv_init

ABINIT/m_scfcv/scfcv_run [ Functions ]

[ Top ] [ Functions ]

NAME

  scfcv_run

FUNCTION

  FIXME: add description.

INPUTS

  scfcv=structure of scfcv
  argin(sizein)=description

OUTPUT

  argout(sizeout)=description

SIDE EFFECTS

NOTES

PARENTS

      gstate,mover,pawuj_drive

CHILDREN

      scfcv

SOURCE

501 subroutine scfcv_run(this,electronpositron,rhog,rhor,rprimd,xred,xred_old,conv_retcode)
502 
503 !Arguments ------------------------------------
504 
505 !This section has been created automatically by the script Abilint (TD).
506 !Do not modify the following lines by hand.
507 #undef ABI_FUNC
508 #define ABI_FUNC 'scfcv_run'
509 !End of the abilint section
510 
511  type(scfcv_t), intent(inout) :: this
512  type(electronpositron_type),pointer:: electronpositron
513  real(dp), intent(inout) :: rprimd(3,3)
514  real(dp), intent(inout) :: xred(3,this%dtset%natom)
515  real(dp), intent(inout) :: xred_old(3,this%dtset%natom)
516  real(dp), pointer, intent(inout) :: rhog(:,:)
517  real(dp), pointer, intent(inout) :: rhor(:,:)
518  integer ,intent(out) :: conv_retcode
519 
520 !Local variables-------------------------------
521 
522 ! *************************************************************************
523 
524  DBG_ENTER("COLL")
525 
526 !!!  Should be changed if special parallelization.
527 
528  ! Moved inside mover.F90 before this call
529  !call scfcv_reformatWFK(this,rhog, rhor, rprimd, xred, xred_old)
530 
531  ! First initialize the datatype to gather information
532 
533  !debug purpose
534  !this%electronpositron => electronpositron
535  if ( this%dtset%dmft_entropy == 0 ) then
536    call scfcv_scfcv(this,electronpositron,rhog,rhor,rprimd,xred,xred_old,conv_retcode)
537  elseif ( this%dtset%dmft_entropy >=1 ) then
538    call scfcv_runWEntropyDMFT(this,electronpositron,rhog,rhor,rprimd,xred,xred_old,conv_retcode)
539  end if
540 
541  DBG_EXIT("COLL")
542 
543 end subroutine scfcv_run

ABINIT/m_scfcv/scfcv_runWEntropyDMFT [ Functions ]

[ Top ] [ Functions ]

NAME

  scfcv_runWEntropyDMFT

FUNCTION

  FIXME: add description.

INPUTS

  scfcv=structure of scfcv
  argin(sizein)=description

OUTPUT

  argout(sizeout)=description

SIDE EFFECTS

NOTES

PARENTS

      m_scfcv

CHILDREN

      scfcv

SOURCE

629 subroutine scfcv_runWEntropyDMFT(this,electronpositron,rhog,rhor,rprimd,xred,xred_old,conv_retcode)
630 
631 
632 !Arguments ------------------------------------
633 
634 !This section has been created automatically by the script Abilint (TD).
635 !Do not modify the following lines by hand.
636 #undef ABI_FUNC
637 #define ABI_FUNC 'scfcv_runWEntropyDMFT'
638 !End of the abilint section
639 
640  type(scfcv_t), intent(inout) :: this
641  type(electronpositron_type),pointer :: electronpositron
642  real(dp), intent(inout) :: rprimd(3,3)
643  real(dp), intent(inout) :: xred(3,this%dtset%natom)
644  real(dp), intent(inout) :: xred_old(3,this%dtset%natom)
645  real(dp), pointer, intent(inout) :: rhog(:,:)
646  real(dp), pointer, intent(inout) :: rhor(:,:)
647  integer , intent(out)   :: conv_retcode
648 
649 !Local variables-------------------------------
650 
651 ! *************************************************************************
652 
653  DBG_ENTER("COLL")
654 
655  !if ( this%dtset%usedmft /= 0 ) then
656  !  call data4entropyDMFT_init(this%paw_dmft%forentropyDMFT,&
657  !                            this%dtset%natom,&
658  !                            this%dtset%typat,&
659  !                            this%dtset%lpawu,&
660  !                            this%dtset%dmft_t2g==1, &
661  !                            this%dtset%upawu,&     !!! Should use this%pawtab%upawu
662  !                            this%dtset%jpawu)      !!! Should use this%pawtab%jpawu
663  !end if
664 
665  call entropyDMFT_init(this%entropyDMFT,this%dtset,this%pawtab,this%mpi_enreg%comm_cell,&
666 &       this%dtfil%filnam_ds(3),this%dtfil%filnam_ds(4)) ! Do something only if DMFT and dmft_entropy = 1
667 
668  ! Start loop over all integration points (lambda)
669  ! TODO WORK ON PARALLELISATION HERE
670  do while (entropyDMFT_nextLambda(this%entropyDMFT,this%dtset,this%pawtab,this%pawang,this%pawrad))
671 
672  !-----------------------------------------------------
673    call scfcv_scfcv(this,electronpositron,rhog,rhor,rprimd,xred,xred_old,conv_retcode)
674  !-----------------------------------------------------
675    call entropyDMFT_addIntegrand(this%entropyDMFT,this%dtset, this%results_gs%energies,this%paw_dmft%forentropyDMFT)
676 
677  end do !!! End loop for entropy DMFT
678 
679  ! GATHER DATA HERE OR INSIDE THE NEXT CALL ?
680  call entropyDMFT_computeEntropy(this%entropyDMFT,this%results_gs%energies%entropy)
681  !-----------------------------------------------------
682  ! This call should be done inside destroy_sc_dmft
683  !if ( this%dtset%usedmft /= 0 ) then
684  !  call data4entropyDMFT_destroy(this%paw_dmft%forentropyDMFT)
685  !end if
686  call entropyDMFT_destroy(this%entropyDMFT)
687 
688  DBG_EXIT("COLL")
689 
690 end subroutine scfcv_runWEntropyDMFT

ABINIT/m_scfcv/scfcv_scfcv [ Functions ]

[ Top ] [ Functions ]

NAME

  scfcv_scfcv

FUNCTION

  FIXME: add description.

INPUTS

  scfcv=structure of scfcv
  argin(sizein)=description

OUTPUT

  argout(sizeout)=description

SIDE EFFECTS

NOTES

  Wrapper to scfcv to avoid circular dependencies ...

PARENTS

      m_scfcv

CHILDREN

      scfcv

SOURCE

720 subroutine scfcv_scfcv(this,electronpositron,rhog,rhor,rprimd,xred,xred_old,conv_retcode)
721 
722 
723 !This section has been created automatically by the script Abilint (TD).
724 !Do not modify the following lines by hand.
725 #undef ABI_FUNC
726 #define ABI_FUNC 'scfcv_scfcv'
727 !End of the abilint section
728 
729  type(scfcv_t), intent(inout) :: this
730  type(electronpositron_type),pointer :: electronpositron
731  real(dp), intent(inout) :: rprimd(3,3)
732  real(dp), intent(inout) :: xred(3,this%dtset%natom)
733  real(dp), intent(inout) :: xred_old(3,this%dtset%natom)
734  real(dp), pointer, intent(inout) :: rhog(:,:)
735  real(dp), pointer, intent(inout) :: rhor(:,:)
736  integer , intent(out)   :: conv_retcode
737 
738    call scfcv_core(this%atindx,this%atindx1,this%cg,this%cprj,this%cpus,this%dmatpawu,this%dtefield,this%dtfil,&
739 &    this%dtorbmag,this%dtpawuj,&
740 &    this%dtset,this%ecore,this%eigen,electronpositron,this%fatvshift,this%hdr,this%indsym,&
741 &    this%initialized,this%irrzon,this%kg,this%mcg,this%mcprj,this%mpi_enreg,this%my_natom,this%nattyp,this%ndtpawuj,&
742 &    this%nfftf,this%npwarr,&
743 &    this%occ,this%paw_dmft,this%pawang,this%pawfgr,this%pawrad,this%pawrhoij,this%pawtab,this%phnons,this%psps,this%pwind,&
744 &    this%pwind_alloc,this%pwnsfac,this%rec_set,this%resid,this%results_gs,rhog,rhor,rprimd,&
745 &    this%scf_history,this%symrec,this%taug,this%taur,this%wffnew,this%wvl,xred,xred_old,this%ylm,this%ylmgr,&
746 &    conv_retcode)
747 
748 end subroutine scfcv_scfcv
749 
750 !keep the same name
751 !#include "afterscfloop.finc"
752 
753 !keep the same name
754 !#include "outscfcv.finc"
755 
756 !keep the same name
757 !#include "elpolariz.finc"
758 
759 end module m_scfcv

m_scfcv/scfcv_t [ Types ]

[ Top ] [ m_scfcv ] [ Types ]

NAME

  scfcv_t

FUNCTION

  This structured datatype contains the necessary data

COPYRIGHT

  Copyright (C) 2014-2018 ABINIT group (JB)
  This file is distributed under the terms of the
  GNU General Public License, see ~abinit/COPYING
  or http://www.gnu.org/copyleft/gpl.txt .

SOURCE

 83  type, public :: scfcv_t
 84   !scalars
 85    integer,pointer :: mcg => null()
 86    integer,pointer :: mcprj => null()
 87    integer,pointer :: my_natom => null()
 88    integer,pointer :: ndtpawuj => null()
 89    integer,pointer :: pwind_alloc => null()
 90    integer,pointer :: initialized => null()
 91    integer,pointer :: nfftf => null()
 92    real(dp),pointer :: cpus => null()
 93    real(dp),pointer :: ecore  => null()
 94    real(dp),pointer :: fatvshift => null()
 95    type(pawang_type),pointer :: pawang => null()
 96    type(pseudopotential_type),pointer :: psps => null()
 97    type(MPI_type),pointer :: mpi_enreg => null()
 98    type(datafiles_type),pointer :: dtfil => null()
 99    type(dataset_type),pointer :: dtset => null()
100    type(efield_type),pointer :: dtefield => null()
101    type(orbmag_type),pointer :: dtorbmag => null()
102    type(electronpositron_type),pointer :: electronpositron => null()
103    type(hdr_type),pointer :: hdr => null()
104    type(pawfgr_type),pointer :: pawfgr => null()
105    type(recursion_type),pointer :: rec_set => null()
106    type(results_gs_type),pointer :: results_gs => null()
107    type(scf_history_type),pointer :: scf_history => null()
108    type(wffile_type),pointer :: wffnew => null()
109    type(wffile_type),pointer :: wffnow => null()
110    type(wvl_data),pointer :: wvl => null()
111    type(paw_dmft_type), pointer :: paw_dmft => null()
112 
113    !arrays
114    integer,pointer :: atindx(:) => null()
115    integer,pointer :: atindx1(:) => null()
116    integer, pointer :: irrzon(:,:,:) => null()
117    integer, pointer :: symrec(:,:,:) => null()
118    integer,pointer :: indsym(:,:,:) => null()
119    !no_abirules
120    integer, pointer :: kg(:,:) => null()
121    integer, pointer :: nattyp(:) => null()
122    integer, pointer :: npwarr(:) => null()
123    integer, pointer :: pwind(:,:,:) => null()
124    real(dp), pointer :: dmatpawu(:,:,:,:) => null()
125    real(dp), pointer :: phnons(:,:,:) => null()
126    real(dp), pointer :: pwnsfac(:,:) => null()
127    real(dp), pointer :: ylm(:,:) => null()
128    real(dp), pointer :: ylmgr(:,:,:) => null()
129    real(dp), pointer :: cg(:,:) => null()
130    real(dp), pointer :: eigen(:) => null()
131    real(dp), pointer :: occ(:) => null()
132    !real(dp), pointer :: rprimd(:,:) => null()
133    !real(dp), pointer :: rhog(:,:) => null()
134    !real(dp), pointer :: rhor(:,:) => null()
135    real(dp), pointer :: taug(:,:) => null()
136    real(dp), pointer :: taur(:,:) => null()
137    real(dp), pointer :: resid(:) => null()
138    type(pawrad_type), pointer :: pawrad(:) => null()
139    type(pawtab_type), pointer :: pawtab(:) => null()
140    type(macro_uj_type),pointer :: dtpawuj(:) => null()
141    type(pawrhoij_type), pointer :: pawrhoij(:) => null()
142    type(pawcprj_type),pointer :: cprj(:,:) => null()
143    ! PRIVATE ATTRIBUTS
144    type(entropyDMFT_t) ABI_PRIVATE :: entropyDMFT
145  end type scfcv_t