hdiff output

r31510/genrigid.f90 2017-01-21 10:34:37.386250000 +0000 r31509/genrigid.f90 2017-01-21 10:34:37.702250000 +0000
505:   DO J2 = 1, NSITEPERBODY(J1)505:   DO J2 = 1, NSITEPERBODY(J1)
506:      SITESRIGIDBODY(J2,:,J1) = MATMUL(RMI(:,:),SITESRIGIDBODY(J2,:,J1))506:      SITESRIGIDBODY(J2,:,J1) = MATMUL(RMI(:,:),SITESRIGIDBODY(J2,:,J1))
507:   ENDDO507:   ENDDO
508: 508: 
509: END SUBROUTINE REDEFINERIGIDREF509: END SUBROUTINE REDEFINERIGIDREF
510: 510: 
511: !----------------------------------------------------------511: !----------------------------------------------------------
512: 512: 
513: SUBROUTINE TRANSFORMCTORIGID (XCOORDS, XRIGIDCOORDS)513: SUBROUTINE TRANSFORMCTORIGID (XCOORDS, XRIGIDCOORDS)
514:   USE COMMONS, ONLY: NATOMS, PARAM1,PARAM2,PARAM3, DEBUG ! hk286514:   USE COMMONS, ONLY: NATOMS, PARAM1,PARAM2,PARAM3, DEBUG ! hk286
515:   USE KEY, ONLY : PERMDIST, NPERMGROUP, NPERMSIZE, PERMGROUP, NSETS, SETS, BULKT, BULK_BOXVEC, AMBER12T, AMBERT, NABT515:   USE KEY, ONLY : PERMDIST, NPERMGROUP, NPERMSIZE, PERMGROUP, NSETS, SETS, BULKT, BULK_BOXVEC
516:   USE VEC3516:   USE VEC3
517:   USE ROTATIONS517:   USE ROTATIONS
518:   IMPLICIT NONE518:   IMPLICIT NONE
519:   519:   
520:   INTEGER :: J1, J2, J9     !No of processor520:   INTEGER :: J1, J2, J9     !No of processor
521:   DOUBLE PRECISION :: P(3), XSAVE(3)521:   DOUBLE PRECISION :: P(3), XSAVE(3)
522:   DOUBLE PRECISION :: COM(3), MASS522:   DOUBLE PRECISION :: COM(3), MASS
523:   DOUBLE PRECISION :: XRIGIDCOORDS (DEGFREEDOMS), XCOORDS(3*NATOMS), TEMPXCOORDS(3*NATOMS), SAVEXCOORDS(3*NATOMS)523:   DOUBLE PRECISION :: XRIGIDCOORDS (DEGFREEDOMS), XCOORDS(3*NATOMS), TEMPXCOORDS(3*NATOMS), SAVEXCOORDS(3*NATOMS)
524: 524: 
525: ! vr274 > lattice matrix and inverse525: ! vr274 > lattice matrix and inverse
526:   DOUBLE PRECISION MLATTICE(3,3), MLATTICEINV(3,3)526:   DOUBLE PRECISION MLATTICE(3,3), MLATTICEINV(3,3)
527:   INTEGER NLATTICECOORDS527:   INTEGER NLATTICECOORDS
528: 528: 
529: ! hk286 - extra variables for minpermdist529: ! hk286 - extra variables for minpermdist
530:   DOUBLE PRECISION :: D, DIST2, RMAT(3,3), RMATINV(3,3)530:   DOUBLE PRECISION :: D, DIST2, RMAT(3,3), RMATINV(3,3)
531:   DOUBLE PRECISION :: PP1(3*NATOMS), PP2(3*NATOMS)531:   DOUBLE PRECISION :: PP1(3*NATOMS), PP2(3*NATOMS)
532:   DOUBLE PRECISION :: NEWP(3), PNORM532:   DOUBLE PRECISION :: NEWP(3), PNORM
533:   LOGICAL :: TEMPPERMDIST  ! sn402533:   LOGICAL :: TEMPPERMDIST  ! sn402
534:   INTEGER :: TEMPNPERMGROUP, TEMPNPERMSIZE(3*NATOMS), TEMPPERMGROUP(3*NATOMS), TEMPNSETS(3*NATOMS), TEMPSETS(NATOMS,3)534:   INTEGER :: TEMPNPERMGROUP, TEMPNPERMSIZE(3*NATOMS), TEMPPERMGROUP(3*NATOMS), TEMPNSETS(3*NATOMS), TEMPSETS(NATOMS,3)
535:   INTEGER :: FAILCOUNT = 0535:   INTEGER :: FAILCOUNT = 0
 536: 
536:   SAVEXCOORDS(:) = XCOORDS(:)537:   SAVEXCOORDS(:) = XCOORDS(:)
537: 538: 
538: ! vr274 > if has lattice coordinates, setup matrices539: ! vr274 > if has lattice coordinates, setup matrices
539:   IF(HAS_LATTICE_COORDS) THEN540:   IF(HAS_LATTICE_COORDS) THEN
540:     NLATTICECOORDS=6541:     NLATTICECOORDS=6
541:     CALL GET_LATTICE_MATRIX(XCOORDS(3*NATOMS-5:3*NATOMS),MLATTICE)542:     CALL GET_LATTICE_MATRIX(XCOORDS(3*NATOMS-5:3*NATOMS),MLATTICE)
542:   ELSE543:   ELSE
543:     NLATTICECOORDS=0544:     NLATTICECOORDS=0
544:     MLATTICE=0545:     MLATTICE=0
545:     MLATTICE(1,1)=1546:     MLATTICE(1,1)=1
667:         ! vr274 > added lattice stuff668:         ! vr274 > added lattice stuff
668:         XRIGIDCOORDS(6*NRIGIDBODY + 3*J1-2:6*NRIGIDBODY + 3*J1) = MATMUL(MLATTICEINV, XCOORDS(3*J9-2:3*J9))669:         XRIGIDCOORDS(6*NRIGIDBODY + 3*J1-2:6*NRIGIDBODY + 3*J1) = MATMUL(MLATTICEINV, XCOORDS(3*J9-2:3*J9))
669:      ENDDO670:      ENDDO
670:   ENDIF671:   ENDIF
671: ! vr274 > copy lattice coords672: ! vr274 > copy lattice coords
672:   IF(HAS_LATTICE_COORDS) THEN673:   IF(HAS_LATTICE_COORDS) THEN
673:     XRIGIDCOORDS(DEGFREEDOMS - 5:DEGFREEDOMS) =  XCOORDS(3*NATOMS-5:3*NATOMS)674:     XRIGIDCOORDS(DEGFREEDOMS - 5:DEGFREEDOMS) =  XCOORDS(3*NATOMS-5:3*NATOMS)
674:   ENDIF675:   ENDIF
675: 676: 
676: ! sn402: the remainder of the subroutine is a safety check.677: ! sn402: the remainder of the subroutine is a safety check.
677:   IF(DEBUG .AND. .NOT. (AMBERT .OR. AMBER12T .OR. NABT)) THEN678:   IF(DEBUG) THEN
678:     CALL TRANSFORMRIGIDTOC(1,NRIGIDBODY,TEMPXCOORDS,XRIGIDCOORDS)679:     CALL TRANSFORMRIGIDTOC(1,NRIGIDBODY,TEMPXCOORDS,XRIGIDCOORDS)
679:     DO J1 = 1, 3*NATOMS680:     DO J1 = 1, 3*NATOMS
680:         IF(ABS(TEMPXCOORDS(J1)-SAVEXCOORDS(J1)) .GT. 1.0E-7) THEN681:         IF(ABS(TEMPXCOORDS(J1)-SAVEXCOORDS(J1)) .GT. 1.0E-7) THEN
681:             IF(.NOT.(BULKT) .OR. (ABS(ABS(TEMPXCOORDS(J1)-SAVEXCOORDS(J1))-BULK_BOXVEC(MOD(J1-1,3)+1)) .GT. 1.0E-7)) THEN682:             IF(.NOT.(BULKT) .OR. (ABS(ABS(TEMPXCOORDS(J1)-SAVEXCOORDS(J1))-BULK_BOXVEC(MOD(J1-1,3)+1)) .GT. 1.0E-7)) THEN
682:                 WRITE(*,*) "Warning, coordinate transform may have failed for coordinate ", J1683:                 WRITE(*,*) "Warning, coordinate transform may have failed for coordinate ", J1
683:                 WRITE(*,*) "Original coordinate:", SAVEXCOORDS(J1)684:                 WRITE(*,*) "Original coordinate:", SAVEXCOORDS(J1)
684:                 WRITE(*,*) "New coordinate:", TEMPXCOORDS(J1)685:                 WRITE(*,*) "New coordinate:", TEMPXCOORDS(J1)
685:                 WRITE(*,*) "Difference:", TEMPXCOORDS(J1)-SAVEXCOORDS(J1)686:                 WRITE(*,*) "Difference:", TEMPXCOORDS(J1)-SAVEXCOORDS(J1)
686:                 FAILCOUNT = FAILCOUNT+1687:                 FAILCOUNT = FAILCOUNT+1
687:             ENDIF688:             ENDIF


legend
Lines Added 
Lines changed
 Lines Removed

hdiff - version: 2.1.0