mirror of https://gitlab.com/QEF/q-e.git
71 lines
2.1 KiB
Fortran
71 lines
2.1 KiB
Fortran
!
|
|
!
|
|
! Copyright (C) 2001-2013 Quantum ESPRESSO group
|
|
! This file is distributed under the terms of the
|
|
! GNU General Public License. See the file `License'
|
|
! in the root directory of the present distribution,
|
|
! or http://www.gnu.org/copyleft/gpl.txt .
|
|
!
|
|
!
|
|
|
|
! Author: L. Martin-Samos
|
|
!
|
|
!----------------------------------------------------------------------------
|
|
SUBROUTINE openfil_pw4gww()
|
|
!----------------------------------------------------------------------------
|
|
!
|
|
! ... This routine opens all files needed to the self consistent run,
|
|
! ... sets various file names, units, record lengths
|
|
!
|
|
USE kinds, ONLY : DP
|
|
USE wvfct, ONLY : nbnd, npwx
|
|
USE io_files, ONLY : prefix, tmp_dir, iunwfc, nwordwfc, iunsat, nwordatwfc, diropn
|
|
USE noncollin_module, ONLY : npol
|
|
USE ldaU, ONLY : lda_plus_u
|
|
USE basis, ONLY : natomwfc
|
|
USE ions_base, ONLY : nat, ityp
|
|
USE noncollin_module, ONLY : noncolin
|
|
!
|
|
IMPLICIT NONE
|
|
!
|
|
LOGICAL :: exst
|
|
!
|
|
!
|
|
! ... nwordwfc is the record length for the direct-access file
|
|
! ... containing wavefunctions
|
|
!
|
|
nwordwfc = nbnd * npwx * npol
|
|
!
|
|
CALL diropn( iunwfc, 'wfc', 2*nwordwfc, exst )
|
|
!
|
|
IF ( .NOT. exst ) THEN
|
|
call errore ('openfil_pw4gww','file '//TRIM( prefix )//'.wfc'//' not found',1)
|
|
END IF
|
|
!
|
|
! ... Needed for LDA+U
|
|
!
|
|
! ... iunat contains the (orthogonalized) atomic wfcs
|
|
! ... iunsat contains the (orthogonalized) atomic wfcs * S
|
|
! ... iunocc contains the atomic occupations computed in new_ns
|
|
! ... it is opened and closed for each reading-writing operation
|
|
!
|
|
!natomwfc = n_atom_wfc( nat, ityp, noncolin )
|
|
!nwordatwfc = 2*npwx*natomwfc*npol
|
|
!
|
|
IF ( lda_plus_u ) then
|
|
!CALL diropn( iunat, 'atwfc', nwordatwfc, exst )
|
|
IF ( .NOT. exst ) THEN
|
|
call errore ('openfil_pw4gww','file '//TRIM( prefix )//'.atwfc'//' not found',1)
|
|
END IF
|
|
|
|
!CALL diropn( iunsat, 'satwfc', nwordatwfc, exst )
|
|
IF ( .NOT. exst ) THEN
|
|
call errore ('openfil_pw4gww','file '//TRIM( prefix )//'.satwfc'//' not found',1)
|
|
END IF
|
|
END IF
|
|
!
|
|
|
|
RETURN
|
|
!
|
|
END SUBROUTINE openfil_pw4gww
|