hdiff output

r31512/minpermdist.f90 2017-01-21 10:34:38.982250000 +0000 r31511/minpermdist.f90 2017-01-21 10:34:39.250250000 +0000
732:    ENDDO732:    ENDDO
733: ENDIF733: ENDIF
734: !734: !
735: ! Update coordinates in DUMMYA to overall permutation using NEWPERM.735: ! Update coordinates in DUMMYA to overall permutation using NEWPERM.
736: !736: !
737: DO J3=1,NATOMS737: DO J3=1,NATOMS
738:    DUMMYA(3*(J3-1)+1)=DUMMY(3*(NEWPERM(J3)-1)+1)738:    DUMMYA(3*(J3-1)+1)=DUMMY(3*(NEWPERM(J3)-1)+1)
739:    DUMMYA(3*(J3-1)+2)=DUMMY(3*(NEWPERM(J3)-1)+2)739:    DUMMYA(3*(J3-1)+2)=DUMMY(3*(NEWPERM(J3)-1)+2)
740:    DUMMYA(3*(J3-1)+3)=DUMMY(3*(NEWPERM(J3)-1)+3)740:    DUMMYA(3*(J3-1)+3)=DUMMY(3*(NEWPERM(J3)-1)+3)
741:    IF (J3.NE.NEWPERM(J3)) THEN741:    IF (J3.NE.NEWPERM(J3)) THEN
742: !      IF (LDB.OR.DEBUG) WRITE(*,'(A,I5,A,I5)') ' minpermdist> move position ',NEWPERM(J3),' to ',J3742:       IF (LDB.OR.DEBUG) WRITE(*,'(A,I5,A,I5)') ' minpermdist> move position ',NEWPERM(J3),' to ',J3
743:       NPERM=NPERM+1743:       NPERM=NPERM+1
744:    ENDIF744:    ENDIF
745:    IF (STOCKT.OR.ANGLEAXIS2) THEN745:    IF (STOCKT.OR.ANGLEAXIS2) THEN
746:       IF (J3.LE.(NATOMS/2)) THEN746:       IF (J3.LE.(NATOMS/2)) THEN
747:          DISTANCE=DISTANCE+(DUMMYA(3*(J3-1)+1)-DUMMYB(3*(J3-1)+1))**2 &747:          DISTANCE=DISTANCE+(DUMMYA(3*(J3-1)+1)-DUMMYB(3*(J3-1)+1))**2 &
748:   &                       +(DUMMYA(3*(J3-1)+2)-DUMMYB(3*(J3-1)+2))**2 &748:   &                       +(DUMMYA(3*(J3-1)+2)-DUMMYB(3*(J3-1)+2))**2 &
749:   &                       +(DUMMYA(3*(J3-1)+3)-DUMMYB(3*(J3-1)+3))**2749:   &                       +(DUMMYA(3*(J3-1)+3)-DUMMYB(3*(J3-1)+3))**2
750:       ENDIF750:       ENDIF
751:    ELSEIF (.NOT.BULKT) THEN751:    ELSEIF (.NOT.BULKT) THEN
752:       DISTANCE=DISTANCE+(DUMMYA(3*(J3-1)+1)-DUMMYB(3*(J3-1)+1))**2 &752:       DISTANCE=DISTANCE+(DUMMYA(3*(J3-1)+1)-DUMMYB(3*(J3-1)+1))**2 &
841: ! don't try inversion for bulk or charmm or amber or frozen atoms841: ! don't try inversion for bulk or charmm or amber or frozen atoms
842: !842: !
843:    IF (BULKT.OR.CHRMMT.OR.AMBERT.OR.NABT.OR.AMBER12T.OR.QCIAMBERT.OR.(NFREEZE.GT.0).OR.NOINVERSION.OR.MIEFT.OR.NOTRANSROTT) GOTO 50 843:    IF (BULKT.OR.CHRMMT.OR.AMBERT.OR.NABT.OR.AMBER12T.OR.QCIAMBERT.OR.(NFREEZE.GT.0).OR.NOINVERSION.OR.MIEFT.OR.NOTRANSROTT) GOTO 50 
844: !  IF (DEBUG) PRINT '(A)',' minpermdist> inverting geometry for comparison with target'844: !  IF (DEBUG) PRINT '(A)',' minpermdist> inverting geometry for comparison with target'
845:    INVERT=-1845:    INVERT=-1
846:    GOTO 60846:    GOTO 60
847: ENDIF847: ENDIF
848: IF (NROTDONE.LT.NRANROT) GOTO 11848: IF (NROTDONE.LT.NRANROT) GOTO 11
849: 849: 
850: 50 DISTANCE=DBEST850: 50 DISTANCE=DBEST
851:  
852: !851: !
853: !  XBEST contains the best alignment of A coordinates for the orientation of B coordinates in DUMMYB.852: !  XBEST contains the best alignment of A coordinates for the orientation of B coordinates in DUMMYB.
854: !  Rotate XBEST by ROTINVBBEST to put in best correspondence with COORDSB, 853: !  Rotate XBEST by ROTINVBBEST to put in best correspondence with COORDSB, 
855: !  undoing the reorientation to DUMMYB from MYORIENT. 854: !  undoing the reorientation to DUMMYB from MYORIENT. 
856: !  We should get the same result for ROTINVBBEST * RMATBEST * (COORDSA-CMA) 855: !  We should get the same result for ROTINVBBEST * RMATBEST * (COORDSA-CMA) 
857: !  where RMATBEST = +/- RMATCUMUL * ROTA for the best alignment 856: !  where RMATBEST = +/- RMATCUMUL * ROTA for the best alignment 
858: !  (aside from a possible permutation of the atom ordering)857: !  (aside from a possible permutation of the atom ordering)
859: !858: !
860:    IF (BULKT) THEN859:    IF ((NFREEZE.GT.0).OR.MIEFT.OR.MKTRAPT .OR. NOTRANSROTT) THEN
861:       XDUMMY=0.0D0 
862:       DO J1=1,NATOMS 
863:          XDUMMY=XDUMMY+(COORDSB(3*(J1-1)+1)-XBEST(3*(J1-1)+1) - BOXLX*NINT((COORDSB(3*(J1-1)+1)-XBEST(3*(J1-1)+1))/BOXLX))**2+ & 
864:   &                    (COORDSB(3*(J1-1)+2)-XBEST(3*(J1-1)+2) - BOXLY*NINT((COORDSB(3*(J1-1)+2)-XBEST(3*(J1-1)+2))/BOXLY))**2 
865:          IF (.NOT.TWOD) XDUMMY=XDUMMY+(COORDSB(3*(J1-1)+3)-XBEST(3*(J1-1)+3) - & 
866:   &                                                             BOXLZ*NINT((COORDSB(3*(J1-1)+3)-XBEST(3*(J1-1)+3))/BOXLZ))**2 
867:       ENDDO    
868:    ELSEIF (NFREEZE.GT.0 .OR. MIEFT.OR.MKTRAPT .OR. NOTRANSROTT) THEN 
869:       XDUMMY=0.0D0860:       XDUMMY=0.0D0
870:       DO J1=1,NATOMS861:       DO J1=1,NATOMS
871:          XDUMMY=XDUMMY+(COORDSB(3*(J1-1)+1)-XBEST(3*(J1-1)+1))**2+ &862:          XDUMMY=XDUMMY+(COORDSB(3*(J1-1)+1)-XBEST(3*(J1-1)+1))**2+ &
872:   &                    (COORDSB(3*(J1-1)+2)-XBEST(3*(J1-1)+2))**2+ &863:   &                    (COORDSB(3*(J1-1)+2)-XBEST(3*(J1-1)+2))**2+ &
873:   &                    (COORDSB(3*(J1-1)+3)-XBEST(3*(J1-1)+3))**2864:   &                    (COORDSB(3*(J1-1)+3)-XBEST(3*(J1-1)+3))**2
874:       ENDDO865:       ENDDO
875:    ELSE IF (STOCKT) THEN866:    ELSE IF (STOCKT) THEN
876:       CALL NEWROTGEOMSTOCK(NATOMS,XBEST,ROTINVBBEST,0.0D0,0.0D0,0.0D0)867:       CALL NEWROTGEOMSTOCK(NATOMS,XBEST,ROTINVBBEST,0.0D0,0.0D0,0.0D0)
877:       XDUMMY=0.0D0868:       XDUMMY=0.0D0
878:       DO J1=1,(NATOMS/2)869:       DO J1=1,(NATOMS/2)
879:          XBEST(3*(J1-1)+1)=XBEST(3*(J1-1)+1)+CMBX870:          XBEST(3*(J1-1)+1)=XBEST(3*(J1-1)+1)+CMBX
880:          XBEST(3*(J1-1)+2)=XBEST(3*(J1-1)+2)+CMBY871:          XBEST(3*(J1-1)+2)=XBEST(3*(J1-1)+2)+CMBY
881:          XBEST(3*(J1-1)+3)=XBEST(3*(J1-1)+3)+CMBZ872:          XBEST(3*(J1-1)+3)=XBEST(3*(J1-1)+3)+CMBZ
882:          XDUMMY=XDUMMY+(COORDSB(3*(J1-1)+1)-XBEST(3*(J1-1)+1))**2+ &873:          XDUMMY=XDUMMY+(COORDSB(3*(J1-1)+1)-XBEST(3*(J1-1)+1))**2+ &
883:   &                    (COORDSB(3*(J1-1)+2)-XBEST(3*(J1-1)+2))**2+ &874:   &                    (COORDSB(3*(J1-1)+2)-XBEST(3*(J1-1)+2))**2+ &
884:   &                    (COORDSB(3*(J1-1)+3)-XBEST(3*(J1-1)+3))**2875:   &                    (COORDSB(3*(J1-1)+3)-XBEST(3*(J1-1)+3))**2
885:       ENDDO876:       ENDDO
 877:    ELSEIF (BULKT) THEN
 878:       XDUMMY=0.0D0
 879:       DO J1=1,NATOMS
 880:          XDUMMY=XDUMMY+(COORDSB(3*(J1-1)+1)-XBEST(3*(J1-1)+1) - BOXLX*NINT((COORDSB(3*(J1-1)+1)-XBEST(3*(J1-1)+1))/BOXLX))**2+ &
 881:   &                    (COORDSB(3*(J1-1)+2)-XBEST(3*(J1-1)+2) - BOXLY*NINT((COORDSB(3*(J1-1)+2)-XBEST(3*(J1-1)+2))/BOXLY))**2
 882:          IF (.NOT.TWOD) XDUMMY=XDUMMY+(COORDSB(3*(J1-1)+3)-XBEST(3*(J1-1)+3) - &
 883:   &                                                             BOXLZ*NINT((COORDSB(3*(J1-1)+3)-XBEST(3*(J1-1)+3))/BOXLZ))**2
 884:       ENDDO   
886:    ELSE885:    ELSE
887:       XDUMMY=0.0D0886:       XDUMMY=0.0D0
888:       DO J1=1,NATOMS887:       DO J1=1,NATOMS
889:          XBEST(3*(J1-1)+1:3*(J1-1)+3)=MATMUL(ROTINVBBEST,XBEST(3*(J1-1)+1:3*(J1-1)+3))888:          XBEST(3*(J1-1)+1:3*(J1-1)+3)=MATMUL(ROTINVBBEST,XBEST(3*(J1-1)+1:3*(J1-1)+3))
890:          XBEST(3*(J1-1)+1)=XBEST(3*(J1-1)+1)+CMBX889:          XBEST(3*(J1-1)+1)=XBEST(3*(J1-1)+1)+CMBX
891:          XBEST(3*(J1-1)+2)=XBEST(3*(J1-1)+2)+CMBY890:          XBEST(3*(J1-1)+2)=XBEST(3*(J1-1)+2)+CMBY
892:          XBEST(3*(J1-1)+3)=XBEST(3*(J1-1)+3)+CMBZ891:          XBEST(3*(J1-1)+3)=XBEST(3*(J1-1)+3)+CMBZ
893:          XDUMMY=XDUMMY+(COORDSB(3*(J1-1)+1)-XBEST(3*(J1-1)+1))**2+ &892:          XDUMMY=XDUMMY+(COORDSB(3*(J1-1)+1)-XBEST(3*(J1-1)+1))**2+ &
894:   &                    (COORDSB(3*(J1-1)+2)-XBEST(3*(J1-1)+2))**2+ &893:   &                    (COORDSB(3*(J1-1)+2)-XBEST(3*(J1-1)+2))**2+ &
895:   &                    (COORDSB(3*(J1-1)+3)-XBEST(3*(J1-1)+3))**2894:   &                    (COORDSB(3*(J1-1)+3)-XBEST(3*(J1-1)+3))**2


legend
Lines Added 
Lines changed
 Lines Removed

hdiff - version: 2.1.0