SUBROUTINE kin_chi (n, toe, kinetic, xvals, nd_daf, kmax) USE Numeric_Kinds_Module USE FileUnits_Module USE CommonInfo_Module IMPLICIT NONE LOGICAL :: debug INTEGER :: i, j, n, m, index, kmax, mloop, nd_daf REAL (dp) :: toe (0:kmax), kinetic (n, n), xvals (n) debug = .false. mloop = kmax / n + 1 IF (debug) WRITE(Output_Unit, * ) 'mloop=', mloop, n, kmax DO m = - mloop, mloop DO i = 1, n DO j = 1, n index = iabs (i - j + m * n) IF (index.lt.kmax) THEN kinetic (i, j) = kinetic (i, j) + toe (index) ENDIF ENDDO ENDDO ENDDO IF (debug) THEN WRITE(Output_Unit, * ) 'Chi-Kinetic Energy (before trans)' CALL mxout (kinetic, n, n) ENDIF DO i=1,n DO j=1,i IF(abs(kinetic(i,j)-kinetic(j,i)).gt.1.0d-8)THEN print*,'WARNING: Hamil_chi not sym',i,j,kinetic(i,j),kinetic(j,i) stop 'wrong in hamil_chi' ENDIF ENDDO ENDDO !OPEN(111,file=TRIM(BinOutdir)//'t_chi_full.bin',form='unformatted') !write(111) kinetic !close(111) CALL symham (n, kinetic) IF (debug) THEN WRITE(Output_Unit, * ) 'Chi-Kinetic Energy (after trans)' CALL mxout (kinetic, n, n) ENDIF RETURN END SUBROUTINE kin_chi