hdiff output

r31025/minpermdist.f90 2016-08-16 15:30:07.223606930 +0100 r31024/minpermdist.f90 2016-08-16 15:30:07.479610333 +0100
 73: INTEGER J3, INVERT, NORBIT1, NORBIT2, NCHOOSE2, NDUMMY, LPERM(NATOMS), J1, J2, NCHOOSE1, NROTDONE, NORBITB1, NORBITB2, & 73: INTEGER J3, INVERT, NORBIT1, NORBIT2, NCHOOSE2, NDUMMY, LPERM(NATOMS), J1, J2, NCHOOSE1, NROTDONE, NORBITB1, NORBITB2, &
 74:   &     NCHOOSEB1, NCHOOSEB2 74:   &     NCHOOSEB1, NCHOOSEB2
 75: DOUBLE PRECISION DIST2, COORDSA(3*NATOMS), COORDSB(3*NATOMS), DISTANCE, DUMMYA(3*NATOMS), & 75: DOUBLE PRECISION DIST2, COORDSA(3*NATOMS), COORDSB(3*NATOMS), DISTANCE, DUMMYA(3*NATOMS), &
 76:   &              DUMMYB(3*NATOMS), DUMMY(3*NATOMS), DX, DY, DZ 76:   &              DUMMYB(3*NATOMS), DUMMY(3*NATOMS), DX, DY, DZ
 77: DOUBLE PRECISION BOXLX,BOXLY,BOXLZ,WORSTRAD,RMAT(3,3),ENERGY, VNEW(3*NATOMS), RMS, DBEST, XBEST(3*NATOMS) 77: DOUBLE PRECISION BOXLX,BOXLY,BOXLZ,WORSTRAD,RMAT(3,3),ENERGY, VNEW(3*NATOMS), RMS, DBEST, XBEST(3*NATOMS)
 78: DOUBLE PRECISION MAXE1, MAXE2, DISTANCE1, SAVECUT, DIST, AINIT, BINIT 78: DOUBLE PRECISION MAXE1, MAXE2, DISTANCE1, SAVECUT, DIST, AINIT, BINIT
 79: DOUBLE PRECISION QBEST(4), SITESA(3*NTSITES), SITESB(3*NTSITES), CMX, CMY, CMZ 79: DOUBLE PRECISION QBEST(4), SITESA(3*NTSITES), SITESB(3*NTSITES), CMX, CMY, CMZ
 80: DOUBLE PRECISION ROTA(3,3), ROTINVA(3,3), ROTB(3,3), ROTINVB(3,3), ROTINVBBEST(3,3), ROTABEST(3,3), RMATBEST(3,3), TMAT(3,3) 80: DOUBLE PRECISION ROTA(3,3), ROTINVA(3,3), ROTB(3,3), ROTINVB(3,3), ROTINVBBEST(3,3), ROTABEST(3,3), RMATBEST(3,3), TMAT(3,3)
 81: DOUBLE PRECISION CMAX, CMAY, CMAZ, CMBX, CMBY, CMBZ, RMATCUMUL(3,3) 81: DOUBLE PRECISION CMAX, CMAY, CMAZ, CMBX, CMBY, CMBZ, RMATCUMUL(3,3)
 82: DOUBLE PRECISION REFXZ(3,3) 82: DOUBLE PRECISION REFXZ(3,3)
 83: LOGICAL DEBUG, TWOD, RIGID, BULKT, PITEST, TNMATCH, BMTEST, LDB 83: LOGICAL DEBUG, TWOD, RIGID, BULKT, PITEST, TNMATCH, BMTEST
 84: DOUBLE PRECISION PDUMMYA(3*NATOMS), PDUMMYB(3*NATOMS), LDISTANCE, DUMMYC(3*NATOMS), XDUMMY 84: DOUBLE PRECISION PDUMMYA(3*NATOMS), PDUMMYB(3*NATOMS), LDISTANCE, DUMMYC(3*NATOMS), XDUMMY
 85: DOUBLE PRECISION BMDIST, BMCOORDS(3*NATOMS), BMCOORDSSV(3*NATOMS) 85: DOUBLE PRECISION BMDIST, BMCOORDS(3*NATOMS), BMCOORDSSV(3*NATOMS)
 86: DOUBLE PRECISION TEMPCOORDSA(DEGFREEDOMS), TEMPCOORDSB(DEGFREEDOMS) ! sn402 86: DOUBLE PRECISION TEMPCOORDSA(DEGFREEDOMS), TEMPCOORDSB(DEGFREEDOMS) ! sn402
 87: INTEGER NEWPERM(NATOMS), ALLPERM(NATOMS), SAVEPERM(NATOMS) 87: INTEGER NEWPERM(NATOMS), ALLPERM(NATOMS), SAVEPERM(NATOMS)
 88: CHARACTER(LEN=5) ZSYMSAVE 88: CHARACTER(LEN=5) ZSYMSAVE
 89: COMMON /SYS/ ZSYMSAVE 89: COMMON /SYS/ ZSYMSAVE
 90:  90: 
 91: LDB=.FALSE. 
 92: ! hk286 91: ! hk286
 93: IF (GTHOMSONT) THEN 92: IF (GTHOMSONT) THEN
 94:    CALL GTHOMSONMINPERMDIST(COORDSB,COORDSA,NATOMS,DEBUG,BOXLX,BOXLY,BOXLZ,BULKT,TWOD,DISTANCE,DIST2,RIGID,RMATBEST) 93:    CALL GTHOMSONMINPERMDIST(COORDSB,COORDSA,NATOMS,DEBUG,BOXLX,BOXLY,BOXLZ,BULKT,TWOD,DISTANCE,DIST2,RIGID,RMATBEST)
 95:    RETURN 94:    RETURN
 96: ELSEIF (VARIABLES) THEN 95: ELSEIF (VARIABLES) THEN
 97:    DISTANCE=0.0D0 96:    DISTANCE=0.0D0
 98:    DO J1=1,NOPT 97:    DO J1=1,NOPT
 99:       DISTANCE=DISTANCE+(COORDSA(J1)-COORDSB(J1))**2 98:       DISTANCE=DISTANCE+(COORDSA(J1)-COORDSB(J1))**2
100:    ENDDO 99:    ENDDO
101:    DISTANCE=SQRT(DISTANCE)100:    DISTANCE=SQRT(DISTANCE)
731:    ENDDO730:    ENDDO
732: ENDIF731: ENDIF
733: !732: !
734: ! Update coordinates in DUMMYA to overall permutation using NEWPERM.733: ! Update coordinates in DUMMYA to overall permutation using NEWPERM.
735: !734: !
736: DO J3=1,NATOMS735: DO J3=1,NATOMS
737:    DUMMYA(3*(J3-1)+1)=DUMMY(3*(NEWPERM(J3)-1)+1)736:    DUMMYA(3*(J3-1)+1)=DUMMY(3*(NEWPERM(J3)-1)+1)
738:    DUMMYA(3*(J3-1)+2)=DUMMY(3*(NEWPERM(J3)-1)+2)737:    DUMMYA(3*(J3-1)+2)=DUMMY(3*(NEWPERM(J3)-1)+2)
739:    DUMMYA(3*(J3-1)+3)=DUMMY(3*(NEWPERM(J3)-1)+3)738:    DUMMYA(3*(J3-1)+3)=DUMMY(3*(NEWPERM(J3)-1)+3)
740:    IF (J3.NE.NEWPERM(J3)) THEN739:    IF (J3.NE.NEWPERM(J3)) THEN
741:       IF (LDB.OR.DEBUG) WRITE(*,'(A,I5,A,I5)') ' minpermdist> move position ',NEWPERM(J3),' to ',J3740:       !IF (DEBUG) WRITE(*,'(A,I5,A,I5)') ' minpermdist> move position ',NEWPERM(J3),' to ',J3
742:       NPERM=NPERM+1741:       NPERM=NPERM+1
743:    ENDIF742:    ENDIF
744:    IF (STOCKT.OR.ANGLEAXIS2) THEN743:    IF (STOCKT.OR.ANGLEAXIS2) THEN
745:       IF (J3.LE.(NATOMS/2)) THEN744:       IF (J3.LE.(NATOMS/2)) THEN
746:          DISTANCE=DISTANCE+(DUMMYA(3*(J3-1)+1)-DUMMYB(3*(J3-1)+1))**2 &745:          DISTANCE=DISTANCE+(DUMMYA(3*(J3-1)+1)-DUMMYB(3*(J3-1)+1))**2 &
747:   &                       +(DUMMYA(3*(J3-1)+2)-DUMMYB(3*(J3-1)+2))**2 &746:   &                       +(DUMMYA(3*(J3-1)+2)-DUMMYB(3*(J3-1)+2))**2 &
748:   &                       +(DUMMYA(3*(J3-1)+3)-DUMMYB(3*(J3-1)+3))**2747:   &                       +(DUMMYA(3*(J3-1)+3)-DUMMYB(3*(J3-1)+3))**2
749:       ENDIF748:       ENDIF
750:    ELSEIF (.NOT.BULKT) THEN749:    ELSEIF (.NOT.BULKT) THEN
751:       DISTANCE=DISTANCE+(DUMMYA(3*(J3-1)+1)-DUMMYB(3*(J3-1)+1))**2 &750:       DISTANCE=DISTANCE+(DUMMYA(3*(J3-1)+1)-DUMMYB(3*(J3-1)+1))**2 &
752:   &                    +(DUMMYA(3*(J3-1)+2)-DUMMYB(3*(J3-1)+2))**2 &751:   &                    +(DUMMYA(3*(J3-1)+2)-DUMMYB(3*(J3-1)+2))**2 &
753:   &                    +(DUMMYA(3*(J3-1)+3)-DUMMYB(3*(J3-1)+3))**2752:   &                    +(DUMMYA(3*(J3-1)+3)-DUMMYB(3*(J3-1)+3))**2
754:    ELSE753:    ELSE
755:       DISTANCE=DISTANCE + (DUMMYA(3*(J3-1)+1)-DUMMYB(3*(J3-1)+1)- BOXLX*NINT((DUMMYA(3*(J3-1)+1)-DUMMYB(3*(J3-1)+1))/BOXLX))**2 &754:       DISTANCE=DISTANCE + (DUMMYA(3*(J3-1)+1)-DUMMYB(3*(J3-1)+1)- BOXLX*NINT((DUMMYA(3*(J3-1)+1)-DUMMYB(3*(J3-1)+1))/BOXLX))**2 &
756:   &                     + (DUMMYA(3*(J3-1)+2)-DUMMYB(3*(J3-1)+2)- BOXLY*NINT((DUMMYA(3*(J3-1)+2)-DUMMYB(3*(J3-1)+2))/BOXLY))**2 755:   &                     + (DUMMYA(3*(J3-1)+2)-DUMMYB(3*(J3-1)+2)- BOXLY*NINT((DUMMYA(3*(J3-1)+2)-DUMMYB(3*(J3-1)+2))/BOXLY))**2 
757:       IF (.NOT.TWOD) DISTANCE=DISTANCE+(DUMMYA(3*(J3-1)+3)-DUMMYB(3*(J3-1)+3) -  &756:       IF (.NOT.TWOD) DISTANCE=DISTANCE+(DUMMYA(3*(J3-1)+3)-DUMMYB(3*(J3-1)+3) -  &
758:   &                                                               BOXLZ*NINT((DUMMYA(3*(J3-1)+3)-DUMMYB(3*(J3-1)+3))/BOXLZ))**2757:   &                                                               BOXLZ*NINT((DUMMYA(3*(J3-1)+3)-DUMMYB(3*(J3-1)+3))/BOXLZ))**2
759:    ENDIF758:    ENDIF
760: ENDDO759: ENDDO
761: 760: 
762:   IF (LDB.OR.DEBUG) WRITE(*,'(A,I6,A,G20.10)') ' minpermdist> distance after moving ',NPERM,' atoms=',SQRT(DISTANCE)761: ! IF (DEBUG) WRITE(*,'(A,I6,A,G20.10)') ' minpermdist> distance after moving ',NPERM,' atoms=',SQRT(DISTANCE)
763: 762: 
764: ! CALL OCHARMM(DUMMYA,VNEW,ENERGY,.FALSE.,.FALSE.)763: ! CALL OCHARMM(DUMMYA,VNEW,ENERGY,.FALSE.,.FALSE.)
765: ! PRINT '(A,F25.15,A)',' Energy=',ENERGY,' kcal/mol'764: ! PRINT '(A,F25.15,A)',' Energy=',ENERGY,' kcal/mol'
766: ! IF (CHRMMT) CALL UPDATENBONDS(DUMMYA)765: ! IF (CHRMMT) CALL UPDATENBONDS(DUMMYA)
767: ! PRINT '(A,F25.15,A)',' Energy=',ENERGY,' kcal/mol after update'766: ! PRINT '(A,F25.15,A)',' Energy=',ENERGY,' kcal/mol after update'
768: ! WRITE(*,'(A,I6,A,G20.10)') ' minpermdist> distance after permuting ',NPERM,' pairs of atoms=',SQRT(DISTANCE)767: ! WRITE(*,'(A,I6,A,G20.10)') ' minpermdist> distance after permuting ',NPERM,' pairs of atoms=',SQRT(DISTANCE)
769: !768: !
770: !  Optimal alignment. Coordinates in DUMMYA are reset by NEWMINDIST (second argument).769: !  Optimal alignment. Coordinates in DUMMYA are reset by NEWMINDIST (second argument).
771: !  Must allow at least one call to NEWMINDIST in case the MYORIENT result is terrible770: !  Must allow at least one call to NEWMINDIST in case the MYORIENT result is terrible
772: !  but gives zero permutations!771: !  but gives zero permutations!


legend
Lines Added 
Lines changed
 Lines Removed

hdiff - version: 2.1.0