mirror of https://gitlab.com/QEF/q-e.git
60 lines
1.7 KiB
Fortran
60 lines
1.7 KiB
Fortran
!
|
|
! Copyright (C) 2006 Malgorzata Wierbowska and 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 .
|
|
!
|
|
MODULE a2F
|
|
!
|
|
! This module contains a routine saving variables needed for the
|
|
! electron-phonon calculation (new algorithm implemeted by MW)
|
|
!
|
|
USE kinds, ONLY : DP
|
|
!
|
|
LOGICAL :: la2F
|
|
!
|
|
PRIVATE
|
|
PUBLIC :: la2F, a2Fsave
|
|
CONTAINS
|
|
!
|
|
SUBROUTINE a2Fsave
|
|
|
|
USE kinds, ONLY : DP
|
|
USE klist, ONLY : nks, nkstot, xk, wk
|
|
USE ions_base, ONLY : nat
|
|
USE wvfct, ONLY : et, nbnd
|
|
USE ktetra, ONLY : nk1, nk2, nk3
|
|
USE symme, ONLY : s, nsym, irt
|
|
USE io_global, ONLY : ionode
|
|
implicit none
|
|
!
|
|
INTEGER :: iuna2Fsave = 40, i, j, ik, ns, na
|
|
logical :: exst
|
|
!
|
|
! parallel case: only first node writes
|
|
IF ( ionode ) THEN
|
|
!
|
|
CALL seqopn( iuna2Fsave, 'a2Fsave', 'FORMATTED', exst )
|
|
!===========================================
|
|
!
|
|
WRITE( iuna2Fsave, * ) nbnd, nkstot
|
|
WRITE( iuna2Fsave, * ) et
|
|
WRITE( iuna2Fsave, * ) ((xk(i,ik), i=1,3), ik=1,nkstot)
|
|
WRITE( iuna2Fsave, * ) wk(1:nkstot)
|
|
WRITE( iuna2Fsave, * ) nk1, nk2, nk3
|
|
!
|
|
WRITE( iuna2Fsave, * ) nsym
|
|
do ns=1,nsym
|
|
WRITE( iuna2Fsave, * ) ((s(i,j,ns),j=1,3),i=1,3)
|
|
enddo
|
|
WRITE( iuna2Fsave, * ) ((irt(ns,na),ns=1,nsym),na=1,nat)
|
|
!
|
|
CLOSE( UNIT = iuna2Fsave, STATUS = 'KEEP' )
|
|
!
|
|
END IF
|
|
!
|
|
RETURN
|
|
END SUBROUTINE a2Fsave
|
|
END MODULE a2F
|