C /////////////////////////////////////
C // CALCULATION OF THE TOTAL ENERGY //
C /////////////////////////////////////
SUBROUTINE ENERGY(TOTCH,ETOT1,ETOT2,ETOTAL,SCHGPC,EPC)
IMPLICIT REAL(A-H,O-Y)
IMPLICIT COMPLEX(Z)
INCLUDE 'PACVPP'
!XOCL SUBPROCESSOR PS(IPARA)=PQ(1:IPARA)
!XOCL INDEX PARTITION IP=(PS,INDEX=1:KNV3,PART=BAND)
DIMENSION EKK(KEG,KNV3),OCCUU(KEG,KNV3)
!XOCL LOCAL EKK(:,/IP),OCCUU(:,/IP)
EQUIVALENCE (EKO,EKK),(OCCUP,OCCUU)
C /////////////////////////////////////////////////
C // PSEUDOPOTENTIAL-CORRECTION AND EWALD ENERGY //
C /////////////////////////////////////////////////
ETOTAL = ETOT1*TOTCH + ETOT2
C ///////////////////////////////////////////////////////////
C // BAND ENERGY(1) <- "VXC" AND "VHR" WITH "OLD CHARGE" //
C ///////////////////////////////////////////////////////////
CALL XCFFT(2,SCHGPC)
ETOTAL = ETOTAL - UNIVOL*DREAL(DCONJG(ZVXC(1))*ZCHG(1))
& + UNIVOL*DREAL(DCONJG(ZEXC(1))*(ZCHG(1)+ZRHPC(1)))
DO 10 I=2,KG
ETOTAL = ETOTAL - UNIVOL*
& ( DREAL(DCONJG(ZVXC(I))*ZCHG(I)) +
& PAI4*REAL( (DCONJG(ZCHGO(I)))*ZCHG(I) )*RGG(I) )
& + UNIVOL*
& ( DREAL(DCONJG(ZEXC(I))*(ZCHG(I)+ZRHPC(I))) +
& PAI2*REAL( (DCONJG(ZCHG(I)))*ZCHG(I) )*RGG(I) )
10 CONTINUE
C //////////////////////////////////////////////
C // BAND ENERGY(3); BRILLOUIN ZONE SUMMATION //
C //////////////////////////////////////////////
FFF = FLOAT(KV3)
TTT = 0.D0
!XOCL SPREAD DO /IP
DO 2 I=1,KV3
DO 100 IBAN=NBD1,NBD2
TTT = TTT + OCCUU(IBAN,I)*
& EKK(IBAN,I)
100 CONTINUE
2 CONTINUE
!XOCL END SPREAD SUM(TTT)
ETOTAL = ETOTAL + 2.D0*TTT/FFF
C FOR PARTIAL CORE CORRECTION 90.11.3
ETOTAL = ETOTAL-EPC <-- [Attn!]
WRITE(6,1104) ITER,ETOTAL,ETOTAL
WRITE(19,1104) ITER,ETOTAL,ETOTAL
1104 FORMAT(1H ,'TOTAL ENERGY FOR',I4,'-TH ITERATION=',
& F12.7,5X,D15.7)
RETURN
END