hdiff output

r33517/congrad.f90 2017-11-25 22:30:11.412596930 +0000 r33516/congrad.f90 2017-11-25 22:30:12.308608813 +0000
 11: !   You should have received a copy of the GNU General Public License 11: !   You should have received a copy of the GNU General Public License
 12: !   along with this program; if not, write to the Free Software 12: !   along with this program; if not, write to the Free Software
 13: !   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA 13: !   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 14: ! 14: !
 15: SUBROUTINE CONGRAD(NMAXINT,NMININT,ETOTAL,XYZ,GGG,EEE,IMGFREEZE,RMS) 15: SUBROUTINE CONGRAD(NMAXINT,NMININT,ETOTAL,XYZ,GGG,EEE,IMGFREEZE,RMS)
 16: USE KEY, ONLY: FROZEN, FREEZE, NREPI, NREPJ, NNREPULSIVE, & 16: USE KEY, ONLY: FROZEN, FREEZE, NREPI, NREPJ, NNREPULSIVE, &
 17:   &            NCONSTRAINT, CONI, CONJ, INTCONSTRAINTDEL, CONDISTREF, INTCONSTRAINTREP, CONDISTREFLOCAL, & 17:   &            NCONSTRAINT, CONI, CONJ, INTCONSTRAINTDEL, CONDISTREF, INTCONSTRAINTREP, CONDISTREFLOCAL, &
 18:   &            CONACTIVE, INTCONSTRAINREPCUT, NREPCUT,INTIMAGE, KINT, IMSEPMAX, ATOMACTIVE, JMAXCON, & 18:   &            CONACTIVE, INTCONSTRAINREPCUT, NREPCUT,INTIMAGE, KINT, IMSEPMAX, ATOMACTIVE, JMAXCON, &
 19:   &            INTFREEZET, INTFROZEN, CONCUTLOCAL, CONCUT, CONCUTABST, CONCUTABS, CONCUTFRACT, CONCUTFRAC, & 19:   &            INTFREEZET, INTFROZEN, CONCUTLOCAL, CONCUT, CONCUTABST, CONCUTABS, CONCUTFRACT, CONCUTFRAC, &
 20:   &  FREEZENODEST, INTSPRINGACTIVET, INTMINFAC, NCONOFF, CONOFFLIST, CONOFFTRIED, INTCONMAX, ECON, EREP, ESPRING, & 20:   &  FREEZENODEST, INTSPRINGACTIVET, INTMINFAC, NCONOFF, CONOFFLIST, CONOFFTRIED, INTCONMAX, ECON, EREP, ESPRING, &
 21:   &  CONVERGECONTEST, CONVERGEREPTEST, FCONTEST, FREPTEST, QCIINTREPMINSEP, QCIAVDEV 21:   &  CONVERGECONTEST, CONVERGEREPTEST, FCONTEST, FREPTEST, QCIINTREPMINSEP
 22: USE COMMONS, ONLY: NATOMS, NOPT, DEBUG 22: USE COMMONS, ONLY: NATOMS, NOPT, DEBUG
 23: USE PORFUNCS 23: USE PORFUNCS
 24: IMPLICIT NONE 24: IMPLICIT NONE
 25:             25:            
 26: INTEGER :: J1,J2,NI2,NI1,NJ2,NJ1,NMAXINT,NMININT,NREPINT(INTIMAGE+2),ISTAT,NINTMIN,NINTMIN2,MYUNIT,JMAX,IMAX,JMAXNOFF,IMAXNOFF 26: INTEGER :: J1,J2,NI2,NI1,NJ2,NJ1,NMAXINT,NMININT,NREPINT(INTIMAGE+2),ISTAT,NINTMIN,NINTMIN2,MYUNIT,JMAX,IMAX,JMAXNOFF,IMAXNOFF
 27: DOUBLE PRECISION :: ETOTAL, RMS, EMAX, EMAXNOFF, FMAX, FMIN, SEPARATION 27: DOUBLE PRECISION :: ETOTAL, RMS, EMAX, EMAXNOFF, FMAX, FMIN
 28: INTEGER JJMAX(INTIMAGE+2) 28: INTEGER JJMAX(INTIMAGE+2)
 29: DOUBLE PRECISION  EEMAX(INTIMAGE+2) 29: DOUBLE PRECISION  EEMAX(INTIMAGE+2)
 30: DOUBLE PRECISION R1AX,R1AY,R1AZ,R2AX,R2AY,R2AZ,R1BX,R1BY,R1BZ,R2BX,R2BY,R2BZ,D2,D1 30: DOUBLE PRECISION R1AX,R1AY,R1AZ,R2AX,R2AY,R2AZ,R1BX,R1BY,R1BZ,R2BX,R2BY,R2BZ,D2,D1
 31: DOUBLE PRECISION G1(3),G2(3),DINT,G1INT(3),G2INT(3) 31: DOUBLE PRECISION G1(3),G2(3),DINT,G1INT(3),G2INT(3)
 32: DOUBLE PRECISION DUMMY, REPGRAD(3), D12, DSQ2, DSQ1, DSQI 32: DOUBLE PRECISION DUMMY, REPGRAD(3), D12, DSQ2, DSQ1, DSQI
 33: DOUBLE PRECISION CONE(INTIMAGE+2), REPE(INTIMAGE+2),MAXINT,MININT,REPEINT(INTIMAGE+2),RMSIM(INTIMAGE+2) 33: DOUBLE PRECISION CONE(INTIMAGE+2), REPE(INTIMAGE+2),MAXINT,MININT,REPEINT(INTIMAGE+2),RMSIM(INTIMAGE+2)
 34: LOGICAL NOINT 34: LOGICAL NOINT
 35: DOUBLE PRECISION XYZ((3*NATOMS)*(INTIMAGE+2)), GGG((3*NATOMS)*(INTIMAGE+2)), EEE(INTIMAGE+2), CCLOCAL 35: DOUBLE PRECISION XYZ((3*NATOMS)*(INTIMAGE+2)), GGG((3*NATOMS)*(INTIMAGE+2)), EEE(INTIMAGE+2), CCLOCAL
 36: LOGICAL IMGFREEZE(INTIMAGE) 36: LOGICAL IMGFREEZE(INTIMAGE)
 37: DOUBLE PRECISION DPLUS, SPGRAD(3), DCUT, r1amr1bdr2amr2b,r1apr2bmr2amr1bsq,CUTMAX,DISTMAX 37: DOUBLE PRECISION DPLUS, SPGRAD(3), DCUT, r1amr1bdr2amr2b,r1apr2bmr2amr1bsq,CUTMAX,DISTMAX
 38: DOUBLE PRECISION CONDMAX, CONREFMAX, CONCUTMAX, DUMMY2, CCLOCAL2, DVEC(INTIMAGE+1), DEVIATION(INTIMAGE+1) 38: DOUBLE PRECISION CONDMAX, CONREFMAX, CONCUTMAX, DUMMY2, CCLOCAL2
 39:  39: 
 40: EEE(1:INTIMAGE+2)=0.0D0 40: EEE(1:INTIMAGE+2)=0.0D0
 41: CONE(1:INTIMAGE+2)=0.0D0 41: CONE(1:INTIMAGE+2)=0.0D0
 42: REPE(1:INTIMAGE+2)=0.0D0 42: REPE(1:INTIMAGE+2)=0.0D0
 43: REPEINT(1:INTIMAGE+2)=0.0D0 43: REPEINT(1:INTIMAGE+2)=0.0D0
 44: NREPINT(1:INTIMAGE+2)=0 44: NREPINT(1:INTIMAGE+2)=0
 45: GGG(1:(3*NATOMS)*(INTIMAGE+2))=0.0D0 45: GGG(1:(3*NATOMS)*(INTIMAGE+2))=0.0D0
 46: ECON=0.0D0; EREP=0.0D0 46: ECON=0.0D0; EREP=0.0D0
 47: NINTMIN=0 47: NINTMIN=0
 48: NINTMIN2=0 48: NINTMIN2=0
416: !416: !
417:       DPLUS=0.0D0417:       DPLUS=0.0D0
418:       DO J2=1,NATOMS418:       DO J2=1,NATOMS
419:          IF ((.NOT.INTSPRINGACTIVET).OR.ATOMACTIVE(J2)) THEN 419:          IF ((.NOT.INTSPRINGACTIVET).OR.ATOMACTIVE(J2)) THEN 
420:             DPLUS=DPLUS+(XYZ(NI1+3*(J2-1)+1)-XYZ(NI2+3*(J2-1)+1))**2 &420:             DPLUS=DPLUS+(XYZ(NI1+3*(J2-1)+1)-XYZ(NI2+3*(J2-1)+1))**2 &
421:   &                    +(XYZ(NI1+3*(J2-1)+2)-XYZ(NI2+3*(J2-1)+2))**2 &421:   &                    +(XYZ(NI1+3*(J2-1)+2)-XYZ(NI2+3*(J2-1)+2))**2 &
422:   &                    +(XYZ(NI1+3*(J2-1)+3)-XYZ(NI2+3*(J2-1)+3))**2422:   &                    +(XYZ(NI1+3*(J2-1)+3)-XYZ(NI2+3*(J2-1)+3))**2
423:          ENDIF423:          ENDIF
424:       ENDDO424:       ENDDO
425:       DPLUS=SQRT(DPLUS)425:       DPLUS=SQRT(DPLUS)
426:       DVEC(J1)=DPLUS 
427: !     IF (DPLUS.GT.IMSEPMAX) THEN426: !     IF (DPLUS.GT.IMSEPMAX) THEN
428: !        DUMMY=KINT*0.5D0*(DPLUS-IMSEPMAX)**2427: !        DUMMY=KINT*0.5D0*(DPLUS-IMSEPMAX)**2
429:          DUMMY=KINT*0.5D0*DPLUS**2428:          DUMMY=KINT*0.5D0*DPLUS**2
430:          IF (DUMMY.GT.EMAX) THEN429:          IF (DUMMY.GT.EMAX) THEN
431:             IMAX=J1430:             IMAX=J1
432:             EMAX=DUMMY431:             EMAX=DUMMY
433:          ENDIF432:          ENDIF
434:          ESPRING=ESPRING+DUMMY433:          ESPRING=ESPRING+DUMMY
435: !        IF (J1.EQ.1) THEN434: !        IF (J1.EQ.1) THEN
436: !           EEE(2)=EEE(2)+DUMMY435: !           EEE(2)=EEE(2)+DUMMY
445:          DO J2=1,NATOMS444:          DO J2=1,NATOMS
446:             IF ((.NOT.INTSPRINGACTIVET).OR.ATOMACTIVE(J2)) THEN 445:             IF ((.NOT.INTSPRINGACTIVET).OR.ATOMACTIVE(J2)) THEN 
447:                SPGRAD(1:3)=DUMMY*(XYZ(NI1+3*(J2-1)+1:NI1+3*(J2-1)+3)-XYZ(NI2+3*(J2-1)+1:NI2+3*(J2-1)+3))446:                SPGRAD(1:3)=DUMMY*(XYZ(NI1+3*(J2-1)+1:NI1+3*(J2-1)+3)-XYZ(NI2+3*(J2-1)+1:NI2+3*(J2-1)+3))
448:                GGG(NI1+3*(J2-1)+1:NI1+3*(J2-1)+3)=GGG(NI1+3*(J2-1)+1:NI1+3*(J2-1)+3)+SPGRAD(1:3)447:                GGG(NI1+3*(J2-1)+1:NI1+3*(J2-1)+3)=GGG(NI1+3*(J2-1)+1:NI1+3*(J2-1)+3)+SPGRAD(1:3)
449:                GGG(NI2+3*(J2-1)+1:NI2+3*(J2-1)+3)=GGG(NI2+3*(J2-1)+1:NI2+3*(J2-1)+3)-SPGRAD(1:3)448:                GGG(NI2+3*(J2-1)+1:NI2+3*(J2-1)+3)=GGG(NI2+3*(J2-1)+1:NI2+3*(J2-1)+3)-SPGRAD(1:3)
450:             ENDIF449:             ENDIF
451:          ENDDO450:          ENDDO
452: !     ENDIF451: !     ENDIF
453:    ENDDO452:    ENDDO
454: ENDIF453: ENDIF
455: SEPARATION=SUM(DVEC(1:INTIMAGE+1)) 
456: DEVIATION(1:INTIMAGE+1)=ABS(100*((INTIMAGE+1)*DVEC(1:INTIMAGE+1)/SEPARATION-1.0D0)) 
457: QCIAVDEV=SUM(DEVIATION)/(INTIMAGE+1) 
458: WRITE(*,'(A,I6,A,I6,A,2I6)') ' congrad> Highest spring  contribution for any image in image ',IMAX454: WRITE(*,'(A,I6,A,I6,A,2I6)') ' congrad> Highest spring  contribution for any image in image ',IMAX
459: IF (DEBUG) THEN455: IF (DEBUG) WRITE(*, '(A,3G20.10)') 'congrad> ECON,EREP,ESPRING=',ECON,EREP,ESPRING
460:    WRITE(*, '(A,3G20.10)') ' congrad> ECON,EREP,ESPRING=',ECON,EREP,ESPRING 
461:    WRITE(*,'(A)') '   edge         gap                deviation      ' 
462:    WRITE(*,'(I6,3X,G20.10,G20.10)') (J1,DVEC(J1),DEVIATION(J1),J1=1,INTIMAGE+1) 
463:    WRITE(*, '(A,G20.10)') ' congrad> mean deviation=',QCIAVDEV 
464: ENDIF 
465: !456: !
466: ! Set gradients on frozen atoms to zero.457: ! Set gradients on frozen atoms to zero.
467: !458: !
468: IF (FREEZE) THEN459: IF (FREEZE) THEN
469:    DO J1=2,INTIMAGE+1  460:    DO J1=2,INTIMAGE+1  
470:       DO J2=1,NATOMS461:       DO J2=1,NATOMS
471:          IF (FROZEN(J2)) THEN462:          IF (FROZEN(J2)) THEN
472:             GGG((3*NATOMS)*(J1-1)+3*(J2-1)+1)=0.0D0463:             GGG((3*NATOMS)*(J1-1)+3*(J2-1)+1)=0.0D0
473:             GGG((3*NATOMS)*(J1-1)+3*(J2-1)+2)=0.0D0464:             GGG((3*NATOMS)*(J1-1)+3*(J2-1)+2)=0.0D0
474:             GGG((3*NATOMS)*(J1-1)+3*(J2-1)+3)=0.0D0465:             GGG((3*NATOMS)*(J1-1)+3*(J2-1)+3)=0.0D0


r33517/intlbfgs.f90 2017-11-25 22:30:11.636599901 +0000 r33516/intlbfgs.f90 2017-11-25 22:30:12.532611784 +0000
 25:      & REPJ, NREPMAX, ATOMACTIVE, NCONSTRAINTON, CONION, CONJON, CONDISTREFLOCALON, CONDISTREFON, & 25:      & REPJ, NREPMAX, ATOMACTIVE, NCONSTRAINTON, CONION, CONJON, CONDISTREFLOCALON, CONDISTREFON, &
 26:      & NREPCUT, REPCUT, CHECKCONINT, INTCONSTEPS, INTRELSTEPS, MAXCONE, COLDFUSIONLIMIT, & 26:      & NREPCUT, REPCUT, CHECKCONINT, INTCONSTEPS, INTRELSTEPS, MAXCONE, COLDFUSIONLIMIT, &
 27:      & INTSTEPS1, DUMPINTXYZ, DUMPINTXYZFREQ, DUMPINTEOS, DUMPINTEOSFREQ, & 27:      & INTSTEPS1, DUMPINTXYZ, DUMPINTXYZFREQ, DUMPINTEOS, DUMPINTEOSFREQ, &
 28:      & IMSEPMIN, IMSEPMAX, MAXINTIMAGE, INTFREEZET, INTFREEZETOL, FREEZE, & 28:      & IMSEPMIN, IMSEPMAX, MAXINTIMAGE, INTFREEZET, INTFREEZETOL, FREEZE, &
 29:      & INTFROZEN, CHECKREPINTERVAL, NNREPULSIVE, INTFREEZEMIN, INTIMAGECHECK, & 29:      & INTFROZEN, CHECKREPINTERVAL, NNREPULSIVE, INTFREEZEMIN, INTIMAGECHECK, &
 30:      & CONCUT, CONCUTLOCAL, KINT, REPIFIX, REPJFIX, NREPULSIVEFIX, & 30:      & CONCUT, CONCUTLOCAL, KINT, REPIFIX, REPJFIX, NREPULSIVEFIX, &
 31:      & NCONSTRAINTFIX, CONIFIX, CONJFIX, QCIPERMCHECK, QCIPERMCHECKINT, BULKT, TWOD, RIGIDBODY, & 31:      & NCONSTRAINTFIX, CONIFIX, CONJFIX, QCIPERMCHECK, QCIPERMCHECKINT, BULKT, TWOD, RIGIDBODY, &
 32:      & QCIADDREP, QCIXYZ, WHOLEDNEB, QCIIMAGE, FROZEN, QCIRESTART, NPERMGROUP, NPERMSIZE, PERMGROUP, NSETS, SETS, & 32:      & QCIADDREP, QCIXYZ, WHOLEDNEB, QCIIMAGE, FROZEN, QCIRESTART, NPERMGROUP, NPERMSIZE, PERMGROUP, NSETS, SETS, &
 33:      & PERMDIST, LOCALPERMCUT, QCILPERMDIST, QCIPDINT, QCIPERMCUT, QCIAMBERT, BONDS, DOBACK, & 33:      & PERMDIST, LOCALPERMCUT, QCILPERMDIST, QCIPDINT, QCIPERMCUT, QCIAMBERT, BONDS, DOBACK, &
 34:      & QCIRESET, QCIRESETINT1, QCIRESETINT2, JMAXCON, NCONOFF, EREP, ECON, ESPRING, CONVERGECONTEST, CONVERGEREPTEST, & 34:      & QCIRESET, QCIRESETINT1, QCIRESETINT2, JMAXCON, NCONOFF, EREP, ECON, ESPRING, CONVERGECONTEST, CONVERGEREPTEST, &
 35:      & FCONTEST, FREPTEST, QCIKADJUSTTOL, QCIKADJUSTFRAC, QCIKADJUSTFRQ, QCIAVDEV 35:      & FCONTEST, FREPTEST
 36: USE COMMONS, ONLY: NATOMS, DEBUG, PARAM1, PARAM2, PARAM3 36: USE COMMONS, ONLY: NATOMS, DEBUG, PARAM1, PARAM2, PARAM3
 37: USE MODCHARMM, ONLY : CHRMMT 37: USE MODCHARMM, ONLY : CHRMMT
 38: USE CHIRALITY 38: USE CHIRALITY
 39:  39: 
 40: IMPLICIT NONE  40: IMPLICIT NONE 
 41:  41: 
 42: DOUBLE PRECISION, INTENT(IN) :: QSTART(3*NATOMS), QFINISH(3*NATOMS)  ! The two end points 42: DOUBLE PRECISION, INTENT(IN) :: QSTART(3*NATOMS), QFINISH(3*NATOMS)  ! The two end points
 43: INTEGER D, U 43: INTEGER D, U
 44: DOUBLE PRECISION DIST, DIST2, RMAT(3,3), SUMEEE, SUMEEE2, SIGMAEEE, NEIGHBOUR_COORDS(12), CENTRE_COORDS(3) 44: DOUBLE PRECISION DIST, DIST2, RMAT(3,3), SUMEEE, SUMEEE2, SIGMAEEE, NEIGHBOUR_COORDS(12), CENTRE_COORDS(3)
 45: DOUBLE PRECISION DMAX, DF, DMIN, LOCALSTEP, ADMAX, DUMMYX, DUMMYY, DUMMYZ 45: DOUBLE PRECISION DMAX, DF, DMIN, LOCALSTEP, ADMAX, DUMMYX, DUMMYY, DUMMYZ
984: !    CALL INTRWG(NACTIVE,NITERDONE,INTIMAGE,XYZ,TURNONORDER,NCONOFF)984: !    CALL INTRWG(NACTIVE,NITERDONE,INTIMAGE,XYZ,TURNONORDER,NCONOFF)
985: 985: 
986: !       IF (DEBUG) WRITE(*,'(A)') 'intlbfgs> dump state after lopermdist index -7'986: !       IF (DEBUG) WRITE(*,'(A)') 'intlbfgs> dump state after lopermdist index -7'
987: !        IF (DEBUG) CALL INTRWG2(NACTIVE,-7,INTIMAGE,XYZ,TURNONORDER,NCONOFF)987: !        IF (DEBUG) CALL INTRWG2(NACTIVE,-7,INTIMAGE,XYZ,TURNONORDER,NCONOFF)
988: 988: 
989: !    STOP !!! DEBUG DJW989: !    STOP !!! DEBUG DJW
990: 990: 
991: ENDIF991: ENDIF
992: 992: 
993: !993: !
994: !  Dynamic adjustment of KINT values. Local values are changed by QCIKADJUSTFRAC if the 
995: !  corresponding separation is outside a fraction QCIKADJUSTTOL of the average value. 
996: !  The adjustment is done every QCIKADJUSTFRQ cycles. 
997: !  Based on the DNEB adjustment. 
998: ! 
999: IF (QCIKADJUSTFRQ.GT.0) THEN 
1000:    IF (MOD(NITERDONE,QCIKADJUSTFRQ).EQ.0) THEN ! dynamic adjustment of KINT 
1001:       IF (QCIAVDEV.GT.QCIKADJUSTTOL) THEN 
1002:          KINT=MIN(KINT*QCIKADJUSTFRAC,1.0D6) 
1003:          IF (DEBUG) PRINT '(2(A,G20.10))',' intlbfgs> Mean deviation ',QCIAVDEV,' Increasing QCI force constant to ',KINT 
1004:       ELSEIF (QCIAVDEV.LT.QCIKADJUSTTOL) THEN 
1005:          KINT=MAX(KINT/QCIKADJUSTFRAC,1.0D-6) 
1006:          IF (DEBUG) PRINT '(2(A,G20.10))',' intlbfgs> Mean deviation ',QCIAVDEV,' Decreasing QCI force constant to ',KINT   
1007:       ENDIF 
1008:    ENDIF 
1009: ENDIF 
1010:  
1011:  
1012: ! 
1013: !  Add next atom to active set if ADDATOM is true. 994: !  Add next atom to active set if ADDATOM is true. 
1014: !  Constraints to atoms already in the active set are turned on995: !  Constraints to atoms already in the active set are turned on
1015: !  and short-range repulsions to active atoms that are not distance constrained are turned on.996: !  and short-range repulsions to active atoms that are not distance constrained are turned on.
1016: !  *** OLD Find nearest atom to active set attached by a constraint997: !  *** OLD Find nearest atom to active set attached by a constraint
1017: !  *** NEW Find atom with most constraints to active set998: !  *** NEW Find atom with most constraints to active set
1018: !  Turn on constraint terms for this atom with all previous members of the active set999: !  Turn on constraint terms for this atom with all previous members of the active set
1019: !  Add repulsions to non-constrained atoms in this set1000: !  Add repulsions to non-constrained atoms in this set
1020: !  NTOADD is the number of atoms to add to the active set in each pass. 1 seems best!1001: !  NTOADD is the number of atoms to add to the active set in each pass. 1 seems best!
1021: !1002: !
1022:    IF (ADDATOM.AND.((NACTIVE.LT.NATOMS).OR.(NCONOFF.GT.0))) THEN1003:    IF (ADDATOM.AND.((NACTIVE.LT.NATOMS).OR.(NCONOFF.GT.0))) THEN
1513:       ENDIF1494:       ENDIF
1514:       ETOTAL=USEFRAC*ETOTALTMP+(1.0D0-USEFRAC)*ETOTAL1495:       ETOTAL=USEFRAC*ETOTALTMP+(1.0D0-USEFRAC)*ETOTAL
1515:       G(1:D)=USEFRAC*MYGTMP(1:D)+(1.0D0-USEFRAC)*G(1:D)1496:       G(1:D)=USEFRAC*MYGTMP(1:D)+(1.0D0-USEFRAC)*G(1:D)
1516:       RMS=SUM(G(1:D)**2)1497:       RMS=SUM(G(1:D)**2)
1517:       RMS=SQRT(RMS/((3*NATOMS)*INTIMAGE))1498:       RMS=SQRT(RMS/((3*NATOMS)*INTIMAGE))
1518:       EEE(1:INTIMAGE+2)=USEFRAC*EEETMP(1:INTIMAGE+2)+(1.0D0-USEFRAC)*EEE(1:INTIMAGE+2)1499:       EEE(1:INTIMAGE+2)=USEFRAC*EEETMP(1:INTIMAGE+2)+(1.0D0-USEFRAC)*EEE(1:INTIMAGE+2)
1519:       WORST=-1.0D1001500:       WORST=-1.0D100
1520:       DO J4=2,INTIMAGE+11501:       DO J4=2,INTIMAGE+1
1521:          IF (EEE(J4).GT.WORST) WORST=EEE(J4)1502:          IF (EEE(J4).GT.WORST) WORST=EEE(J4)
1522:       ENDDO1503:       ENDDO
1523:       IF (DEBUG) WRITE(*,'(A,G20.10,A,I8)') ' intlbfgs> Highest QCI image energy=',WORST,' images=',INTIMAGE1504:       IF (DEBUG) WRITE(*,'(A,G20.10,A,I8)') 'intlbfgs> Highest QCI image energy=',WORST,' images=',INTIMAGE
1524:    ENDIF1505:    ENDIF
1525:    IF (ETOTAL/INTIMAGE.LT.COLDFUSIONLIMIT) THEN1506:    IF (ETOTAL/INTIMAGE.LT.COLDFUSIONLIMIT) THEN
1526:       WRITE(*,'(A,2G20.10)') ' intlbfgs> Cold fusion diagnosed - step discarded, energy, limit=',ETOTAL/INTIMAGE,COLDFUSIONLIMIT1507:       WRITE(*,'(A,2G20.10)') ' intlbfgs> Cold fusion diagnosed - step discarded, energy, limit=',ETOTAL/INTIMAGE,COLDFUSIONLIMIT
1527:       DEALLOCATE(CONI,CONJ,CONDISTREF,REPI,REPJ,NREPI,NREPJ,REPCUT,NREPCUT,CONCUT,CONOFFLIST,CONOFFTRIED)1508:       DEALLOCATE(CONI,CONJ,CONDISTREF,REPI,REPJ,NREPI,NREPJ,REPCUT,NREPCUT,CONCUT,CONOFFLIST,CONOFFTRIED)
1528:       DEALLOCATE(TRUEEE, EEETMP, MYGTMP, GTMP, &1509:       DEALLOCATE(TRUEEE, EEETMP, MYGTMP, GTMP, &
1529:   &              DIAG, STP, SEARCHSTEP, GDIF,GLAST, XSAVE, XYZ, GGG, CHECKG, IMGFREEZE, EEE, STEPIMAGE)1510:   &              DIAG, STP, SEARCHSTEP, GDIF,GLAST, XSAVE, XYZ, GGG, CHECKG, IMGFREEZE, EEE, STEPIMAGE)
1530:       QCIIMAGE=INTIMAGE1511:       QCIIMAGE=INTIMAGE
1531:       INTIMAGE=INTIMAGESAVE1512:       INTIMAGE=INTIMAGESAVE
1532:       RETURN1513:       RETURN
1533:    ENDIF1514:    ENDIF


r33517/key.f90 2017-11-25 22:30:11.856602818 +0000 r33516/key.f90 2017-11-25 22:30:12.756614755 +0000
 19:      &        NCONSTRAINTFIX, INTIMAGECHECK, NREPULSIVEFIX, NRANROT, NENDDUP, LOCALPERMNEIGH, & 19:      &        NCONSTRAINTFIX, INTIMAGECHECK, NREPULSIVEFIX, NRANROT, NENDDUP, LOCALPERMNEIGH, &
 20:      &        LOCALPERMMAXSEP, NONEDAPBC, STRUC, QCHEMESNAO, QCHEMESNMO, QCHEMESNZERO, QCHEMESNELEC, PMPATHINR, & 20:      &        LOCALPERMMAXSEP, NONEDAPBC, STRUC, QCHEMESNAO, QCHEMESNMO, QCHEMESNZERO, QCHEMESNELEC, PMPATHINR, &
 21:      &        MULTISUNIT, MULTIFUNIT,NIMAGEINST,NGLJ,ST_TSSTEP,LANSTEP,NONFREEZE, & 21:      &        MULTISUNIT, MULTIFUNIT,NIMAGEINST,NGLJ,ST_TSSTEP,LANSTEP,NONFREEZE, &
 22:      &        MCPATHBINS,MCPATHEQUIL,MCPATHSTEPS,MCPATHPRTFRQ,MCPATHTS,MCPATHSCHECK,RPHSLICES,RPHQBINS, & 22:      &        MCPATHBINS,MCPATHEQUIL,MCPATHSTEPS,MCPATHPRTFRQ,MCPATHTS,MCPATHSCHECK,RPHSLICES,RPHQBINS, &
 23:      &        ITWIST, JTWIST, KTWIST, LTWIST, MCPATHSTART, MCPATHBLOCK, MCPATHOVER, NCPU, MCPATHDOBLOCK, MCMERGES, MCMERGEQ, & 23:      &        ITWIST, JTWIST, KTWIST, LTWIST, MCPATHSTART, MCPATHBLOCK, MCPATHOVER, NCPU, MCPATHDOBLOCK, MCMERGES, MCMERGEQ, &
 24:      &        MCMERGEI,GAUSSIANCHARGE,GAUSSIANMULTI,ITG03, REDOTS, QCIPERMCHECKINT, & 24:      &        MCMERGEI,GAUSSIANCHARGE,GAUSSIANMULTI,ITG03, REDOTS, QCIPERMCHECKINT, &
 25:      &        MLPIN, MLPSTART, MLPOUT, MLPHIDDEN, MLPDATA, NMLP, N_TO_ALIGN, DJWRBID, STM, NHEXAMERS, & 25:      &        MLPIN, MLPSTART, MLPOUT, MLPHIDDEN, MLPDATA, NMLP, N_TO_ALIGN, DJWRBID, STM, NHEXAMERS, &
 26:      &        MLQIN, MLQSTART, MLQOUT, MLQDATA, NMLQ, & 26:      &        MLQIN, MLQSTART, MLQOUT, MLQDATA, NMLQ, &
 27:      &        QCIADDREP, QCIBONDS, QCISECOND, MAXNACTIVE, QCIIMAGE, NADDTARGET, NUMNN, MULTI_COUNT, MULTI_LAST, MULTI_STEP, & 27:      &        QCIADDREP, QCIBONDS, QCISECOND, MAXNACTIVE, QCIIMAGE, NADDTARGET, NUMNN, MULTI_COUNT, MULTI_LAST, MULTI_STEP, &
 28:      &        NDOF, RECCOUNT, MLPPROBPOS, PUSHOPTMAX, MLPNEIGH, QCICYCN, QCIPDINT, NPEAKS, NDISPLACEMENTS, NROTATIONS, & 28:      &        NDOF, RECCOUNT, MLPPROBPOS, PUSHOPTMAX, MLPNEIGH, QCICYCN, QCIPDINT, NPEAKS, NDISPLACEMENTS, NROTATIONS, &
 29:      &        MAX_ANGMOM, BNB_NSTEPS, QUIPZ, QCIRESETINT1, QCIRESETINT2, JMAXCON, NCONOFF, QCIINTREPMINSEP, QCIKADJUSTFRQ 29:      &        MAX_ANGMOM, BNB_NSTEPS, QUIPZ, QCIRESETINT1, QCIRESETINT2, JMAXCON, NCONOFF, QCIINTREPMINSEP
 30:  30: 
 31:       LOGICAL :: DTEST, MASST, RTEST, EFSTEPST, VECTORST, SUMMARYT, DUMPV, DUMPMAG, FREEZE, FREEZERANGE, GRADSQ, & 31:       LOGICAL :: DTEST, MASST, RTEST, EFSTEPST, VECTORST, SUMMARYT, DUMPV, DUMPMAG, FREEZE, FREEZERANGE, GRADSQ, &
 32:      &        PGRAD, VALUEST, ADMT, BFGSMINT, BFGSTST, CHECKINDEX, TOSI, CONTAINER, & 32:      &        PGRAD, VALUEST, ADMT, BFGSMINT, BFGSTST, CHECKINDEX, TOSI, CONTAINER, &
 33:      &        GAUSSIAN, CADPAC, PRESSURE, FTEST, DCHECK, CP2K, DFTP, CPMD, CPMDC, FREEZERES, DF1T, & 33:      &        GAUSSIAN, CADPAC, PRESSURE, FTEST, DCHECK, CP2K, DFTP, CPMD, CPMDC, FREEZERES, DF1T, &
 34:      &        VARIABLES, FIELDT, OHT, IHT, TDT, D5HT, TWOENDS, PV, FRACTIONAL, BLNT, HYBRIDMINT, & 34:      &        VARIABLES, FIELDT, OHT, IHT, TDT, D5HT, TWOENDS, PV, FRACTIONAL, BLNT, HYBRIDMINT, &
 35:      &        INDEXT, LANCZOST, NOSHIFT, GAMESSUS, GAMESSUK, PVTS, RIGIDBODY, CASTEP, ONETEP, QCHEM, QCHEMES, VASP, & 35:      &        INDEXT, LANCZOST, NOSHIFT, GAMESSUS, GAMESSUK, PVTS, RIGIDBODY, CASTEP, ONETEP, QCHEM, QCHEMES, VASP, &
 36:      &        BFGSSTEP, EFOLSTEP, BULKT, HUPDATE, NOHESS, READV, NOIT, THOMSONT, SIO2T, SIO2C6T, BISECTT, BISECTDEBUG, & 36:      &        BFGSSTEP, EFOLSTEP, BULKT, HUPDATE, NOHESS, READV, NOIT, THOMSONT, SIO2T, SIO2C6T, BISECTT, BISECTDEBUG, &
 37:      &        TOSIC6, TOSIPOL, FIXIMAGE, DFTBT, CHECKCONT, CHECKDT, SHIFTED, READSP, DUMPSP, NOFRQS, & 37:      &        TOSIC6, TOSIPOL, FIXIMAGE, DFTBT, CHECKCONT, CHECKDT, SHIFTED, READSP, DUMPSP, NOFRQS, &
 38:      &        ALLSTEPS, ALLVECTORS, MWVECTORS, WELCH, BINARY, READHESS, MOVIE, NORESET, TWOD, & 38:      &        ALLSTEPS, ALLVECTORS, MWVECTORS, WELCH, BINARY, READHESS, MOVIE, NORESET, TWOD, &
 39:      &        DOUBLET, REOPT, PARALLEL, LINEMIN, FIXD, KEEPINDEX, BSMIN, PRINTPTS, RKMIN, REPELTST,& 39:      &        DOUBLET, REOPT, PARALLEL, LINEMIN, FIXD, KEEPINDEX, BSMIN, PRINTPTS, RKMIN, REPELTST,&
110:      &        CPCONSTRAINTTOL, CPCONSTRAINTDEL, CPCONSTRAINTREP, CPCONSTRAINREPCUT, CPCONFRAC, &110:      &        CPCONSTRAINTTOL, CPCONSTRAINTDEL, CPCONSTRAINTREP, CPCONSTRAINREPCUT, CPCONFRAC, &
111:      &        INTLJTOL, INTLJDEL, INTLJEPS, IMSEPMIN, IMSEPMAX, TRAPK, MINOVERLAP, &111:      &        INTLJTOL, INTLJDEL, INTLJEPS, IMSEPMIN, IMSEPMAX, TRAPK, MINOVERLAP, &
112:      &        INTFREEZETOL, LOCALPERMCUT, LOCALPERMCUT2, LOCALPERMCUTINC, CHECKREPCUTOFF, CONCUTABS, &112:      &        INTFREEZETOL, LOCALPERMCUT, LOCALPERMCUT2, LOCALPERMCUTINC, CHECKREPCUTOFF, CONCUTABS, &
113:      &        CONCUTFRAC, ENDNUMHESSDELTA, DNEBEFRAC, QCHEMSCALE, KAA, SIGMAAA, QUIPATOMMASS, TEMPERATURE1, &113:      &        CONCUTFRAC, ENDNUMHESSDELTA, DNEBEFRAC, QCHEMSCALE, KAA, SIGMAAA, QUIPATOMMASS, TEMPERATURE1, &
114:      &        DISTORTINST,DELTAINST,MOLPROSCALE,COVER,STTSRMSCONV,LAN_DIST,LANCONV,LANFACTOR, &114:      &        DISTORTINST,DELTAINST,MOLPROSCALE,COVER,STTSRMSCONV,LAN_DIST,LANCONV,LANFACTOR, &
115:      &        STOCKEXP, JPARAM, MCPATHTEMP, MCPATHDMAX, MCPATHSTEP, MCPATHACCRATIO, BIASFAC, &115:      &        STOCKEXP, JPARAM, MCPATHTEMP, MCPATHDMAX, MCPATHSTEP, MCPATHACCRATIO, BIASFAC, &
116:      &        MCADDDEV, MCPATHQMIN, MCPATHQMAX, RPHQMIN, RPHQMAX, RPHTEMP, TWISTF, TWISTREF, MCPATHADDREF, &116:      &        MCADDDEV, MCPATHQMIN, MCPATHQMAX, RPHQMIN, RPHQMAX, RPHTEMP, TWISTF, TWISTREF, MCPATHADDREF, &
117:      &        MCPATHGWS, MCPATHGWQ, MCPATHNEGLECT, MCPATHTOL, FRAMESDIFF,TMRATIO, INTMINFAC, MLPLAMBDA, COLL_TOL, KLIM, SCA, &117:      &        MCPATHGWS, MCPATHGWQ, MCPATHNEGLECT, MCPATHTOL, FRAMESDIFF,TMRATIO, INTMINFAC, MLPLAMBDA, COLL_TOL, KLIM, SCA, &
118:      &        NEBMAXERISE, GDSQ, FLATEDIFF, QCIADDREPCUT, QCIADDREPEPS, QCIRADSHIFT, INTCONCUT, MLQLAMBDA, FRQCONV, FRQCONV2, &118:      &        NEBMAXERISE, GDSQ, FLATEDIFF, QCIADDREPCUT, QCIADDREPEPS, QCIRADSHIFT, INTCONCUT, MLQLAMBDA, FRQCONV, FRQCONV2, &
119:      &        TANHFAC, LJADDCUTOFF,LJADDREFNORM,MAXIMFACTOR, PUSHOPTCONV, QCICYCDIST, QCIPERMCUT, KERNELWIDTH, QUIPLATT(3,3), &119:      &        TANHFAC, LJADDCUTOFF,LJADDREFNORM,MAXIMFACTOR, PUSHOPTCONV, QCICYCDIST, QCIPERMCUT, KERNELWIDTH, QUIPLATT(3,3), &
120:      &        ECON, EREP, ESPRING, CONVERGECONTEST, CONVERGEREPTEST, FCONTEST, FREPTEST, QCIKADJUSTTOL, QCIKADJUSTFRAC, QCIAVDEV120:      &        ECON, EREP, ESPRING, CONVERGECONTEST, CONVERGEREPTEST, FCONTEST, FREPTEST
121: 121: 
122: !     sf344122: !     sf344
123:       DOUBLE PRECISION :: PCUTOFF,PYA11(3),PYA21(3),PYA12(3),PYA22(3),PEPSILON1(3),PSCALEFAC1(2),PSCALEFAC2(2), &123:       DOUBLE PRECISION :: PCUTOFF,PYA11(3),PYA21(3),PYA12(3),PYA22(3),PEPSILON1(3),PSCALEFAC1(2),PSCALEFAC2(2), &
124:      &                     PEPSILONATTR(2),PSIGMAATTR(2), PYOVERLAPTHRESH, LJSITECOORDS(3), LJGSITESIGMA, LJGSITEEPS, &124:      &                     PEPSILONATTR(2),PSIGMAATTR(2), PYOVERLAPTHRESH, LJSITECOORDS(3), LJGSITESIGMA, LJGSITEEPS, &
125:      &                     PYLOCALSTEP(2),PYCFTHRESH,PYGRAVITYC1,PYGRAVITYC2,PERCCUT125:      &                     PYLOCALSTEP(2),PYCFTHRESH,PYGRAVITYC1,PYGRAVITYC2,PERCCUT
126:  126:  
127:       DOUBLE PRECISION, ALLOCATABLE :: PYADDEPS(:,:)127:       DOUBLE PRECISION, ALLOCATABLE :: PYADDEPS(:,:)
128:       DOUBLE PRECISION, ALLOCATABLE :: SHIFTL(:)128:       DOUBLE PRECISION, ALLOCATABLE :: SHIFTL(:)
129:       LOGICAL, ALLOCATABLE :: uniaxarray(:)129:       LOGICAL, ALLOCATABLE :: uniaxarray(:)
130:       DOUBLE PRECISION, ALLOCATABLE :: PYADDREP(:,:), PYADDATT(:,:)130:       DOUBLE PRECISION, ALLOCATABLE :: PYADDREP(:,:), PYADDATT(:,:)


r33517/keywords.f 2017-11-25 22:30:12.084605842 +0000 r33516/keywords.f 2017-11-25 22:30:12.984617778 +0000
655:          DOBACKALL=.FALSE.655:          DOBACKALL=.FALSE.
656:          QCIRESET=.FALSE.656:          QCIRESET=.FALSE.
657:          QCIRESETINT1=300657:          QCIRESETINT1=300
658:          QCIRESETINT2=1000658:          QCIRESETINT2=1000
659:          QCIADDACIDT=.FALSE.659:          QCIADDACIDT=.FALSE.
660:          QCITRILAT=.FALSE.660:          QCITRILAT=.FALSE.
661:          QCIADDREPCUT=1.0D0661:          QCIADDREPCUT=1.0D0
662:          QCIADDREPEPS=1.0D0662:          QCIADDREPEPS=1.0D0
663:          QCINOREPINT=.FALSE.663:          QCINOREPINT=.FALSE.
664:          QCIINTREPMINSEP=20664:          QCIINTREPMINSEP=20
665:          QCIKADJUSTFRQ=0 
666:          QCIKADJUSTTOL=10.0D0 
667:          KADJUSTFRAC=1.05D0 
668:          MAXNACTIVE=0665:          MAXNACTIVE=0
669: 666: 
670:          FREEZETOL=1.0D-3667:          FREEZETOL=1.0D-3
671:          FLATTESTT=.FALSE.668:          FLATTESTT=.FALSE.
672:          FLATEDIFF=1.0D-6669:          FLATEDIFF=1.0D-6
673:          QCIPERMCHECK=.FALSE.670:          QCIPERMCHECK=.FALSE.
674:          QCIPERMCHECKINT=100671:          QCIPERMCHECKINT=100
675:          INTCONSTRAINTT=.FALSE.672:          INTCONSTRAINTT=.FALSE.
676:          INTCONSTRAINTTOL=0.1D0673:          INTCONSTRAINTTOL=0.1D0
677:          INTCONSTRAINTDEL=10.0D0674:          INTCONSTRAINTDEL=10.0D0
2197: ! Put the structure in `finish' (the second structure given as input to OPTIM)2194: ! Put the structure in `finish' (the second structure given as input to OPTIM)
2198: ! into optimal alignment with a reference structure (the first structure given as2195: ! into optimal alignment with a reference structure (the first structure given as
2199: ! input to OPTIM). The alignment is done via rigid-body movements and by considering2196: ! input to OPTIM). The alignment is done via rigid-body movements and by considering
2200: ! permutational isomerizations. The aligned `finish' coordinates are dumped and the2197: ! permutational isomerizations. The aligned `finish' coordinates are dumped and the
2201: ! minimized distance is printed.2198: ! minimized distance is printed.
2202: ! 2199: ! 
2203:          ELSE IF (WORD.EQ.'CLOSESTALIGNMENT') THEN2200:          ELSE IF (WORD.EQ.'CLOSESTALIGNMENT') THEN
2204:             CLOSESTALIGNMENT=.TRUE.2201:             CLOSESTALIGNMENT=.TRUE.
2205:             WRITE(*,*) 'Putting structures into closest alignment, then stopping'2202:             WRITE(*,*) 'Putting structures into closest alignment, then stopping'
2206: ! 2203: ! 
2207: ! Dynamic adjustment of QCI spring constant. 
2208: !  
2209:          ELSE IF (WORD.EQ.'QCIADJUSTK') THEN 
2210:             CALL READI(QCIKADJUSTFRQ) 
2211:             CALL READF(QCIKADJUSTTOL) 
2212:             CALL READF(QCIKADJUSTFRAC) 
2213:             WRITE(*,'(A,I10,2(A,G20.10),A)') ' keywords> Adjusting QCI spring constant every ',QCIKADJUSTFRQ,' steps by factor ', 
2214:      &                                        QCIKADJUSTFRAC,' for spacing deviation ',QCIKADJUSTTOL,'%' 
2215:  
2216: !  
2217: ! Check for internal minimum in constraint terms for INTCONSTRAINT2204: ! Check for internal minimum in constraint terms for INTCONSTRAINT
2218: ! 2205: ! 
2219:          ELSE IF (WORD.EQ.'QCIINTREPMINSEP') THEN2206:          ELSE IF (WORD.EQ.'QCIINTREPMINSEP') THEN
2220:             CALL READI(QCIINTREPMINSEP)2207:             CALL READI(QCIINTREPMINSEP)
2221:             WRITE(*,'(A,G20.10)') ' keywords> Minimum separation in atom index for internal minimum check in repulsion=',2208:             WRITE(*,'(A,G20.10)') ' keyword> Minimum separation in atom index for internal minimum check in repulsion=',
2222:      &                              QCIINTREPMINSEP  2209:      &                              QCIINTREPMINSEP  
2223: ! 2210: ! 
2224: ! Check for internal minimum in constraint terms for INTCONSTRAINT2211: ! Check for internal minimum in constraint terms for INTCONSTRAINT
2225: ! 2212: ! 
2226:          ELSE IF ((WORD.EQ.'CONCONINT').OR.(WORD.EQ.'QCICONINT')) THEN2213:          ELSE IF ((WORD.EQ.'CONCONINT').OR.(WORD.EQ.'QCICONINT')) THEN
2227:             CHECKCONINT=.TRUE.2214:             CHECKCONINT=.TRUE.
2228:             WRITE(*,'(A,G20.10)') ' keyword> Turning on terms for internal minima in constraints'2215:             WRITE(*,'(A,G20.10)') ' keyword> Turning on terms for internal minima in constraints'
2229: ! 2216: ! 
2230: ! Scaling factor for internal minima in con or rep2217: ! Scaling factor for internal minima in con or rep
2231: ! 2218: ! 


legend
Lines Added 
Lines changed
 Lines Removed

hdiff - version: 2.1.0