TABLE OF CONTENTS
ABINIT/WffReadSkipK [ Functions ]
NAME
WffReadSkipK
FUNCTION
(Wavefunction file, read action : skip one k-point blok) This subroutine skips the block of records related to one k point, and one spin-polarization, that contains the wavefunctions as well as the eigenvalues and occupations, in a wavefunction file that has been already initialized.
COPYRIGHT
Copyright (C) 2004-2018 ABINIT group (XG) This file is distributed under the terms of the GNU General Public License, see ~abinit/COPYING or http://www.gnu.org/copyleft/gpl.txt .
INPUTS
formeig=format of the eigenvalues 0 => vector of eigenvalues (for Ground-State files) 1 => hermitian matrix of eigenvalues (for Response-Function files) headform=format of the header of the wf file, also governing the k block format in case headform=0, use the default (current) format and headform ikpt=index of current k point (only needed for error message) isppol=spin polarization currently treated (only needed for error message) mpi_enreg=information about MPI parallelization wff=structured info for wavefunction file
OUTPUT
NOTES
PARENTS
initwf,newkpt,wfsinp
CHILDREN
rwwf
SOURCE
42 #if defined HAVE_CONFIG_H 43 #include "config.h" 44 #endif 45 46 #include "abi_common.h" 47 48 subroutine WffReadSkipK(formeig,headform,ikpt,isppol,mpi_enreg,wff) 49 50 use defs_basis 51 use defs_abitypes 52 use m_profiling_abi 53 use m_wffile 54 55 !This section has been created automatically by the script Abilint (TD). 56 !Do not modify the following lines by hand. 57 #undef ABI_FUNC 58 #define ABI_FUNC 'WffReadSkipK' 59 use interfaces_56_io_mpi 60 !End of the abilint section 61 62 implicit none 63 64 !Arguments ------------------------------------ 65 !scalars 66 integer,intent(in) :: formeig,headform,ikpt,isppol 67 type(MPI_type),intent(in) :: mpi_enreg 68 type(wffile_type),intent(inout) :: wff 69 70 !Local variables------------------------------- 71 !scalars 72 integer :: icg,mband,mcg,nband,nband_disk,option,optkg,tim_rwwf 73 integer,parameter :: nspinor1=1,npw1=1 74 !arrays 75 integer,allocatable :: kg_dum(:,:) 76 real(dp) :: cg_dum(2,1),occ_dum(1) 77 real(dp),allocatable :: eig_dum(:) 78 79 ! ************************************************************************* 80 81 ! No need to skip if netcdf 82 if (wff%iomode == IO_MODE_ETSF) return 83 84 option=-1 85 tim_rwwf=0 ; mcg=1 ; mband=1 ; icg=0 ; optkg=0 ; nband=0 86 ABI_ALLOCATE(eig_dum,(2**formeig)) 87 ABI_ALLOCATE(kg_dum,(3,optkg*npw1)) 88 89 call rwwf(cg_dum,eig_dum,formeig,headform,icg,ikpt,isppol,kg_dum,mband,mcg,mpi_enreg,nband,& 90 & nband_disk,npw1,nspinor1,occ_dum,option,optkg,tim_rwwf,wff) 91 92 ABI_DEALLOCATE(eig_dum) 93 ABI_DEALLOCATE(kg_dum) 94 95 end subroutine WffReadSkipK