hdiff output

r31511/minpermdist.f90 2016-11-16 15:30:25.335872343 +0000 r31510/minpermdist.f90 2016-11-16 15:30:25.963880741 +0000
334:               ENDDO334:               ENDDO
335:               DISTANCE=SQRT(DISTANCE)  335:               DISTANCE=SQRT(DISTANCE)  
336:               IF (DEBUG) PRINT*, ' minpermdist> Recalculated distance=',DISTANCE336:               IF (DEBUG) PRINT*, ' minpermdist> Recalculated distance=',DISTANCE
337:               RMATBEST(1:3,1:3)=0.0D0337:               RMATBEST(1:3,1:3)=0.0D0
338:               RMATBEST(1,1)=1.0D0; RMATBEST(2,2)=1.0D0; RMATBEST(3,3)=1.0D0338:               RMATBEST(1,1)=1.0D0; RMATBEST(2,2)=1.0D0; RMATBEST(3,3)=1.0D0
339:               RETURN  339:               RETURN  
340:              ENDIF 340:              ENDIF 
341:           ENDIF 341:           ENDIF 
342:        ELSE  342:        ELSE  
343:          CALL NEWMINDIST(DUMMYB,DUMMYA,NATOMS,DISTANCE,BULKT,TWOD,'AX    ',.FALSE.,RIGID,DEBUG,RMAT)343:          CALL NEWMINDIST(DUMMYB,DUMMYA,NATOMS,DISTANCE,BULKT,TWOD,'AX    ',.FALSE.,RIGID,DEBUG,RMAT)
344:        !  IF (DEBUG) PRINT '(A,G20.10)','minpermdist> after initial call to BULK/NEWMINDIST distance=',DISTANCE344:          IF (DEBUG) PRINT '(A,G20.10)','minpermdist> after initial call to BULK/NEWMINDIST distance=',DISTANCE
345:          DISTANCE=DISTANCE**2 ! minperdist returns the distance squared for historical reasons345:          DISTANCE=DISTANCE**2 ! minperdist returns the distance squared for historical reasons
346:       ENDIF346:       ENDIF
347:    ELSEIF (MKTRAPT) THEN347:    ELSEIF (MKTRAPT) THEN
348:       TMAT(1:3,1:3)=0.0D0348:       TMAT(1:3,1:3)=0.0D0
349:       TMAT(1,1)=INVERT*1.0D0; TMAT(2,2)=INVERT*1.0D0; TMAT(3,3)=INVERT*1.0D0349:       TMAT(1,1)=INVERT*1.0D0; TMAT(2,2)=INVERT*1.0D0; TMAT(3,3)=INVERT*1.0D0
350:       NORBIT1=1; NORBIT2=1; NORBITB1=1; NORBITB2=1;350:       NORBIT1=1; NORBIT2=1; NORBITB1=1; NORBITB2=1;
351:       ROTB(1:3,1:3)=0.0D0351:       ROTB(1:3,1:3)=0.0D0
352:       ROTB(1,1)=1.0D0; ROTB(2,2)=1.0D0; ROTB(3,3)=1.0D0352:       ROTB(1,1)=1.0D0; ROTB(2,2)=1.0D0; ROTB(3,3)=1.0D0
353:       ROTINVB(1:3,1:3)=0.0D0353:       ROTINVB(1:3,1:3)=0.0D0
354:       ROTINVB(1,1)=1.0D0; ROTINVB(2,2)=1.0D0; ROTINVB(3,3)=1.0D0354:       ROTINVB(1,1)=1.0D0; ROTINVB(2,2)=1.0D0; ROTINVB(3,3)=1.0D0
597:          RMATBEST(1:3,1:3)=-RMATBEST(1:3,1:3)597:          RMATBEST(1:3,1:3)=-RMATBEST(1:3,1:3)
598:       ENDIF598:       ENDIF
599:    ENDIF599:    ENDIF
600: ENDIF600: ENDIF
601: !601: !
602: ! If GEOMDIFFTOL is set too large we could miss the best solution by exiting prematurely.602: ! If GEOMDIFFTOL is set too large we could miss the best solution by exiting prematurely.
603: ! Turn off the next line?!603: ! Turn off the next line?!
604: ! 604: ! 
605: ! IF (SQRT(DBEST).LT.GEOMDIFFTOL) GOTO 50605: ! IF (SQRT(DBEST).LT.GEOMDIFFTOL) GOTO 50
606: !606: !
607: !IF(BULKT) GOTO 50 ! sn402 
608:  
609: IF (OHCELLT.AND.(OPNUM.LT.48)) GOTO 25607: IF (OHCELLT.AND.(OPNUM.LT.48)) GOTO 25
610: IF (NCHOOSE2.LT.NORBIT2) GOTO 30608: IF (NCHOOSE2.LT.NORBIT2) GOTO 30
611: IF (NCHOOSE1.LT.NORBIT1) GOTO 65609: IF (NCHOOSE1.LT.NORBIT1) GOTO 65
612: IF (NCHOOSEB2.LT.NORBITB2) GOTO 31610: IF (NCHOOSEB2.LT.NORBITB2) GOTO 31
613: IF (NCHOOSEB1.LT.NORBITB1) GOTO 66611: IF (NCHOOSEB1.LT.NORBITB1) GOTO 66
614: !612: !
615: !  Now try the enantiomer (or xz reflected structure for PULLT.OR.EFIELDT.OR.TWOD).613: !  Now try the enantiomer (or xz reflected structure for PULLT.OR.EFIELDT.OR.TWOD).
616: !  The tests for NCHOOSE1 and NCHOOSE2 appear to be redundant!614: !  The tests for NCHOOSE1 and NCHOOSE2 appear to be redundant!
617: !615: !
618: IF ((NCHOOSE2.EQ.NORBIT2).AND.(NCHOOSE1.EQ.NORBIT1).AND.(INVERT.EQ.1)) THEN616: IF ((NCHOOSE2.EQ.NORBIT2).AND.(NCHOOSE1.EQ.NORBIT1).AND.(INVERT.EQ.1)) THEN
636: 634: 
637: 50 DISTANCE=DBEST635: 50 DISTANCE=DBEST
638: !636: !
639: !  XBEST contains the best alignment of A coordinates for the orientation of B coordinates in DUMMYB.637: !  XBEST contains the best alignment of A coordinates for the orientation of B coordinates in DUMMYB.
640: !  Rotate XBEST by ROTINVBBEST to put in best correspondence with COORDSB, 638: !  Rotate XBEST by ROTINVBBEST to put in best correspondence with COORDSB, 
641: !  undoing the reorientation to DUMMYB from MYORIENT. 639: !  undoing the reorientation to DUMMYB from MYORIENT. 
642: !  We should get the same result for ROTINVBBEST * RMATBEST * (COORDSA-CMA)640: !  We should get the same result for ROTINVBBEST * RMATBEST * (COORDSA-CMA)
643: !  where RMATBEST = +/- RMATCUMUL * ROTA for the best alignment 641: !  where RMATBEST = +/- RMATCUMUL * ROTA for the best alignment 
644: !  (aside from a possible permutation of the atom ordering)642: !  (aside from a possible permutation of the atom ordering)
645: !  643: !  
646: 644:    IF ((NFREEZE.GT.0).OR.RBAAT.OR.MKTRAPT .OR. NOTRANSROTT) THEN
647:    IF (BULKT) THEN645:       XDUMMY=0.0D0
 646:       DO J1=1,NATOMS
 647:          XDUMMY=XDUMMY+(COORDSB(3*(J1-1)+1)-XBEST(3*(J1-1)+1))**2+ &
 648:   &                    (COORDSB(3*(J1-1)+2)-XBEST(3*(J1-1)+2))**2+ &
 649:   &                    (COORDSB(3*(J1-1)+3)-XBEST(3*(J1-1)+3))**2
 650:       ENDDO
 651:    ELSEIF (BULKT) THEN
648:       XDUMMY=0.0D0652:       XDUMMY=0.0D0
649:       DO J1=1,NATOMS653:       DO J1=1,NATOMS
650:          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+ &654:          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+ &
651:   &                    (COORDSB(3*(J1-1)+2)-XBEST(3*(J1-1)+2) - BOXLY*NINT((COORDSB(3*(J1-1)+2)-XBEST(3*(J1-1)+2))/BOXLY))**2655:   &                    (COORDSB(3*(J1-1)+2)-XBEST(3*(J1-1)+2) - BOXLY*NINT((COORDSB(3*(J1-1)+2)-XBEST(3*(J1-1)+2))/BOXLY))**2
652:          IF (.NOT.TWOD) XDUMMY=XDUMMY &656:          IF (.NOT.TWOD) XDUMMY=XDUMMY &
653:   &                   +(COORDSB(3*(J1-1)+3)-XBEST(3*(J1-1)+3) - BOXLZ*NINT((COORDSB(3*(J1-1)+3)-XBEST(3*(J1-1)+3))/BOXLZ))**2657:   &                   +(COORDSB(3*(J1-1)+3)-XBEST(3*(J1-1)+3) - BOXLZ*NINT((COORDSB(3*(J1-1)+3)-XBEST(3*(J1-1)+3))/BOXLZ))**2
654:       ENDDO658:       ENDDO
655:    ELSEIF (NFREEZE.GT.0.OR.RBAAT.OR.MKTRAPT .OR. NOTRANSROTT) THEN 
656:       XDUMMY=0.0D0 
657:       DO J1=1,NATOMS 
658:          XDUMMY=XDUMMY+(COORDSB(3*(J1-1)+1)-XBEST(3*(J1-1)+1))**2+ & 
659:   &                    (COORDSB(3*(J1-1)+2)-XBEST(3*(J1-1)+2))**2+ & 
660:   &                    (COORDSB(3*(J1-1)+3)-XBEST(3*(J1-1)+3))**2 
661:       ENDDO 
662:    ELSE659:    ELSE
663:       XDUMMY=0.0D0660:       XDUMMY=0.0D0
664:       DO J1=1,NATOMS661:       DO J1=1,NATOMS
665:          XBEST(3*(J1-1)+1:3*(J1-1)+3)=MATMUL(ROTINVBBEST,XBEST(3*(J1-1)+1:3*(J1-1)+3))662:          XBEST(3*(J1-1)+1:3*(J1-1)+3)=MATMUL(ROTINVBBEST,XBEST(3*(J1-1)+1:3*(J1-1)+3))
666:          XBEST(3*(J1-1)+1)=XBEST(3*(J1-1)+1)+CMBX663:          XBEST(3*(J1-1)+1)=XBEST(3*(J1-1)+1)+CMBX
667:          XBEST(3*(J1-1)+2)=XBEST(3*(J1-1)+2)+CMBY664:          XBEST(3*(J1-1)+2)=XBEST(3*(J1-1)+2)+CMBY
668:          XBEST(3*(J1-1)+3)=XBEST(3*(J1-1)+3)+CMBZ665:          XBEST(3*(J1-1)+3)=XBEST(3*(J1-1)+3)+CMBZ
669:          XDUMMY=XDUMMY+(COORDSB(3*(J1-1)+1)-XBEST(3*(J1-1)+1))**2+ &666:          XDUMMY=XDUMMY+(COORDSB(3*(J1-1)+1)-XBEST(3*(J1-1)+1))**2+ &
670:   &                    (COORDSB(3*(J1-1)+2)-XBEST(3*(J1-1)+2))**2+ &667:   &                    (COORDSB(3*(J1-1)+2)-XBEST(3*(J1-1)+2))**2+ &
671:   &                    (COORDSB(3*(J1-1)+3)-XBEST(3*(J1-1)+3))**2668:   &                    (COORDSB(3*(J1-1)+3)-XBEST(3*(J1-1)+3))**2


legend
Lines Added 
Lines changed
 Lines Removed

hdiff - version: 2.1.0