From ca9eff63dbed9300bc32e39451485e05d4d7d0bb Mon Sep 17 00:00:00 2001 From: Chang Liu Date: Fri, 13 Jul 2018 17:48:06 -0600 Subject: [PATCH 1/2] raise an error if a pair of ppots not defined --- src/pairpot.f90 | 11 +++++++++++ src/pairpot_noneb.f90 | 10 ++++++++++ src/pairpotspline.f90 | 10 ++++++++++ src/pairpottab.f90 | 11 +++++++++++ 4 files changed, 42 insertions(+) diff --git a/src/pairpot.f90 b/src/pairpot.f90 index a4fdfeb..61155dd 100644 --- a/src/pairpot.f90 +++ b/src/pairpot.f90 @@ -40,6 +40,9 @@ SUBROUTINE PAIRPOT REAL(LATTEPREC) :: FUNIV(3), FJOIN(3), FVDW(3), FCUT(3) REAL(LATTEPREC) :: PHI, DPHI(3), EXPTMP, R6, FTMP(3) REAL(LATTEPREC) :: POLYNOM, DPOLYNOM + + CHARACTER(128) :: MISSPAIR ! in case some pair is missing + IF (EXISTERROR) RETURN @@ -66,6 +69,8 @@ SUBROUTINE PAIRPOT PBCJ = NEBPP(3, NEWJ, I) PBCK = NEBPP(4, NEWJ, I) + RCUT2 = -1 ! use RCUT2 to decide whether the pair exist + DO K = 1, NOPPS IF ((ATELE(I) .EQ. PPELE1(K) .AND. ATELE(J) .EQ. PPELE2(K)) & @@ -82,6 +87,12 @@ SUBROUTINE PAIRPOT ENDDO + ! check current pair found or not + IF (RCUT2 == -1) THEN + WRITE(MISSPAIR,'(a,a,a,a)') 'Missing pair: ', ATELE(I), '- ' , ATELE(J) + CALL ERRORS('PAIRPOT', MISSPAIR) + END IF + RIJ(1) = CR(1,J) + REAL(PBCI)*BOX(1,1) + REAL(PBCJ)*BOX(2,1) + & REAL(PBCK)*BOX(3,1) - CR(1,I) diff --git a/src/pairpot_noneb.f90 b/src/pairpot_noneb.f90 index 92b5f12..efac8d9 100644 --- a/src/pairpot_noneb.f90 +++ b/src/pairpot_noneb.f90 @@ -40,6 +40,8 @@ SUBROUTINE PAIRPOTNONEB REAL(LATTEPREC) :: FUNIV(3), FJOIN(3), FVDW(3), FCUT(3) REAL(LATTEPREC) :: PHI, DPHI(3), EXPTMP, R6, FTMP(3) REAL(LATTEPREC) :: POLYNOM, DPOLYNOM + CHARACTER(128) :: MISSPAIR ! in case some pair is missing + IF (EXISTERROR) RETURN ! @@ -83,6 +85,8 @@ SUBROUTINE PAIRPOTNONEB ! PBCJ = NEBPP(3, NEWJ, I) ! PBCK = NEBPP(4, NEWJ, I) + RCUT2 = -1 ! use RCUT2 to decide whether the pair exist + DO K = 1, NOPPS IF ((ATELE(I) .EQ. PPELE1(K) .AND. ATELE(J) .EQ. PPELE2(K)) & @@ -99,6 +103,12 @@ SUBROUTINE PAIRPOTNONEB ENDDO + ! check current pair found or not + IF (RCUT2 == -1) THEN + WRITE(MISSPAIR,'(a,a,a,a)') 'Missing pair: ', ATELE(I), '- ' , ATELE(J) + CALL ERRORS('PAIRPOTNONEB', MISSPAIR) + END IF + RIJ(1) = CR(1,J) - CR(1,I) RIJ(2) = CR(2,J) - CR(2,I) RIJ(3) = CR(3,J) - CR(3,I) diff --git a/src/pairpotspline.f90 b/src/pairpotspline.f90 index 9ab268f..b79c06f 100644 --- a/src/pairpotspline.f90 +++ b/src/pairpotspline.f90 @@ -37,6 +37,8 @@ SUBROUTINE PAIRPOTSPLINE REAL(LATTEPREC) :: GRAD, PPTMP REAL(LATTEPREC), EXTERNAL :: PPHEAVI + CHARACTER(128) :: MISSPAIR ! in case some pair is missing + EREP = ZERO FPP = ZERO VIRPAIR = ZERO @@ -53,6 +55,8 @@ SUBROUTINE PAIRPOTSPLINE PBCJ = NEBPP(3, NEWJ, I) PBCK = NEBPP(4, NEWJ, I) + RCUT2 = -1 ! use RCUT2 to decide whether the pair exist + DO K = 1, NOPPS IF ((ATELE(I) .EQ. PPELE1(K) .AND. ATELE(J) .EQ. PPELE2(K)) & @@ -67,6 +71,12 @@ SUBROUTINE PAIRPOTSPLINE ENDDO + ! check current pair found or not + IF (RCUT2 == -1) THEN + WRITE(MISSPAIR,'(a,a,a,a)') 'Missing pair: ', ATELE(I), '-' , ATELE(J) + CALL ERRORS('PAIRPOTSPLINE', MISSPAIR) + END IF + RIJ(1) = CR(1,J) + REAL(PBCI)*BOX(1,1) + REAL(PBCJ)*BOX(2,1) + & REAL(PBCK)*BOX(3,1) - CR(1,I) diff --git a/src/pairpottab.f90 b/src/pairpottab.f90 index edea5b9..c83fdba 100644 --- a/src/pairpottab.f90 +++ b/src/pairpottab.f90 @@ -37,6 +37,9 @@ SUBROUTINE PAIRPOTTAB REAL(LATTEPREC) :: FORCE(3), DC(3), RIJ(3) REAL(LATTEPREC) :: GRAD, TMPE REAL(LATTEPREC) :: A, B, DX + + CHARACTER(128) :: MISSPAIR ! in case some pair is missing + IF (EXISTERROR) RETURN EREP = ZERO @@ -57,6 +60,8 @@ SUBROUTINE PAIRPOTTAB PBCJ = NEBPP(3, NEWJ, I) PBCK = NEBPP(4, NEWJ, I) + RCUT2 = -1 ! use RCUT2 to decide whether the pair exist + DO K = 1, NOPPS IF ((ATELE(I) .EQ. PPELE1(K) .AND. ATELE(J) .EQ. PPELE2(K)) & @@ -71,6 +76,12 @@ SUBROUTINE PAIRPOTTAB ENDDO + ! check current pair found or not + IF (RCUT2 == -1) THEN + WRITE(MISSPAIR,'(a,a,a,a)') 'Missing pair: ', ATELE(I), '-' , ATELE(J) + CALL ERRORS('PAIRPOTTAB', MISSPAIR) + END IF + RIJ(1) = CR(1,J) + REAL(PBCI)*BOX(1,1) + REAL(PBCJ)*BOX(2,1) + & REAL(PBCK)*BOX(3,1) - CR(1,I) From d4e14c778ba99b1121e8dc351de2c0339d657c7e Mon Sep 17 00:00:00 2001 From: Chang Liu Date: Tue, 27 Nov 2018 16:47:46 -0500 Subject: [PATCH 2/2] Revert "raise an error if a pair of ppots not defined" This reverts commit ca9eff63dbed9300bc32e39451485e05d4d7d0bb. --- src/pairpot.f90 | 11 ----------- src/pairpot_noneb.f90 | 10 ---------- src/pairpotspline.f90 | 10 ---------- src/pairpottab.f90 | 11 ----------- 4 files changed, 42 deletions(-) diff --git a/src/pairpot.f90 b/src/pairpot.f90 index 61155dd..a4fdfeb 100644 --- a/src/pairpot.f90 +++ b/src/pairpot.f90 @@ -40,9 +40,6 @@ SUBROUTINE PAIRPOT REAL(LATTEPREC) :: FUNIV(3), FJOIN(3), FVDW(3), FCUT(3) REAL(LATTEPREC) :: PHI, DPHI(3), EXPTMP, R6, FTMP(3) REAL(LATTEPREC) :: POLYNOM, DPOLYNOM - - CHARACTER(128) :: MISSPAIR ! in case some pair is missing - IF (EXISTERROR) RETURN @@ -69,8 +66,6 @@ SUBROUTINE PAIRPOT PBCJ = NEBPP(3, NEWJ, I) PBCK = NEBPP(4, NEWJ, I) - RCUT2 = -1 ! use RCUT2 to decide whether the pair exist - DO K = 1, NOPPS IF ((ATELE(I) .EQ. PPELE1(K) .AND. ATELE(J) .EQ. PPELE2(K)) & @@ -87,12 +82,6 @@ SUBROUTINE PAIRPOT ENDDO - ! check current pair found or not - IF (RCUT2 == -1) THEN - WRITE(MISSPAIR,'(a,a,a,a)') 'Missing pair: ', ATELE(I), '- ' , ATELE(J) - CALL ERRORS('PAIRPOT', MISSPAIR) - END IF - RIJ(1) = CR(1,J) + REAL(PBCI)*BOX(1,1) + REAL(PBCJ)*BOX(2,1) + & REAL(PBCK)*BOX(3,1) - CR(1,I) diff --git a/src/pairpot_noneb.f90 b/src/pairpot_noneb.f90 index efac8d9..92b5f12 100644 --- a/src/pairpot_noneb.f90 +++ b/src/pairpot_noneb.f90 @@ -40,8 +40,6 @@ SUBROUTINE PAIRPOTNONEB REAL(LATTEPREC) :: FUNIV(3), FJOIN(3), FVDW(3), FCUT(3) REAL(LATTEPREC) :: PHI, DPHI(3), EXPTMP, R6, FTMP(3) REAL(LATTEPREC) :: POLYNOM, DPOLYNOM - CHARACTER(128) :: MISSPAIR ! in case some pair is missing - IF (EXISTERROR) RETURN ! @@ -85,8 +83,6 @@ SUBROUTINE PAIRPOTNONEB ! PBCJ = NEBPP(3, NEWJ, I) ! PBCK = NEBPP(4, NEWJ, I) - RCUT2 = -1 ! use RCUT2 to decide whether the pair exist - DO K = 1, NOPPS IF ((ATELE(I) .EQ. PPELE1(K) .AND. ATELE(J) .EQ. PPELE2(K)) & @@ -103,12 +99,6 @@ SUBROUTINE PAIRPOTNONEB ENDDO - ! check current pair found or not - IF (RCUT2 == -1) THEN - WRITE(MISSPAIR,'(a,a,a,a)') 'Missing pair: ', ATELE(I), '- ' , ATELE(J) - CALL ERRORS('PAIRPOTNONEB', MISSPAIR) - END IF - RIJ(1) = CR(1,J) - CR(1,I) RIJ(2) = CR(2,J) - CR(2,I) RIJ(3) = CR(3,J) - CR(3,I) diff --git a/src/pairpotspline.f90 b/src/pairpotspline.f90 index b79c06f..9ab268f 100644 --- a/src/pairpotspline.f90 +++ b/src/pairpotspline.f90 @@ -37,8 +37,6 @@ SUBROUTINE PAIRPOTSPLINE REAL(LATTEPREC) :: GRAD, PPTMP REAL(LATTEPREC), EXTERNAL :: PPHEAVI - CHARACTER(128) :: MISSPAIR ! in case some pair is missing - EREP = ZERO FPP = ZERO VIRPAIR = ZERO @@ -55,8 +53,6 @@ SUBROUTINE PAIRPOTSPLINE PBCJ = NEBPP(3, NEWJ, I) PBCK = NEBPP(4, NEWJ, I) - RCUT2 = -1 ! use RCUT2 to decide whether the pair exist - DO K = 1, NOPPS IF ((ATELE(I) .EQ. PPELE1(K) .AND. ATELE(J) .EQ. PPELE2(K)) & @@ -71,12 +67,6 @@ SUBROUTINE PAIRPOTSPLINE ENDDO - ! check current pair found or not - IF (RCUT2 == -1) THEN - WRITE(MISSPAIR,'(a,a,a,a)') 'Missing pair: ', ATELE(I), '-' , ATELE(J) - CALL ERRORS('PAIRPOTSPLINE', MISSPAIR) - END IF - RIJ(1) = CR(1,J) + REAL(PBCI)*BOX(1,1) + REAL(PBCJ)*BOX(2,1) + & REAL(PBCK)*BOX(3,1) - CR(1,I) diff --git a/src/pairpottab.f90 b/src/pairpottab.f90 index c83fdba..edea5b9 100644 --- a/src/pairpottab.f90 +++ b/src/pairpottab.f90 @@ -37,9 +37,6 @@ SUBROUTINE PAIRPOTTAB REAL(LATTEPREC) :: FORCE(3), DC(3), RIJ(3) REAL(LATTEPREC) :: GRAD, TMPE REAL(LATTEPREC) :: A, B, DX - - CHARACTER(128) :: MISSPAIR ! in case some pair is missing - IF (EXISTERROR) RETURN EREP = ZERO @@ -60,8 +57,6 @@ SUBROUTINE PAIRPOTTAB PBCJ = NEBPP(3, NEWJ, I) PBCK = NEBPP(4, NEWJ, I) - RCUT2 = -1 ! use RCUT2 to decide whether the pair exist - DO K = 1, NOPPS IF ((ATELE(I) .EQ. PPELE1(K) .AND. ATELE(J) .EQ. PPELE2(K)) & @@ -76,12 +71,6 @@ SUBROUTINE PAIRPOTTAB ENDDO - ! check current pair found or not - IF (RCUT2 == -1) THEN - WRITE(MISSPAIR,'(a,a,a,a)') 'Missing pair: ', ATELE(I), '-' , ATELE(J) - CALL ERRORS('PAIRPOTTAB', MISSPAIR) - END IF - RIJ(1) = CR(1,J) + REAL(PBCI)*BOX(1,1) + REAL(PBCJ)*BOX(2,1) + & REAL(PBCK)*BOX(3,1) - CR(1,I)