hdiff output

r29263/ncdata.f90 2015-11-17 23:32:48.292347731 +0000 r29262/ncdata.f90 2015-11-17 23:32:48.884355672 +0000
 18: ! 18: !
 19: MODULE CONNECTDATA 19: MODULE CONNECTDATA
 20:      IMPLICIT NONE 20:      IMPLICIT NONE
 21:      SAVE 21:      SAVE
 22:  22: 
 23:      INTEGER :: NDIJPAIRS,listlength=0 23:      INTEGER :: NDIJPAIRS,listlength=0
 24:      INTEGER, ALLOCATABLE :: DIJPAIR(:,:) 24:      INTEGER, ALLOCATABLE :: DIJPAIR(:,:)
 25:      DOUBLE PRECISION, ALLOCATABLE :: DIJPAIRDIST(:) 25:      DOUBLE PRECISION, ALLOCATABLE :: DIJPAIRDIST(:)
 26:      LOGICAL :: FINISHED 26:      LOGICAL :: FINISHED
 27: !-------------------------------------------------------- 27: !--------------------------------------------------------
 28:      ! NTSGOOD discounts duplicate TS, those with chirality/cis-trans problems,  28: 
 29:      ! those where the path run has failed, and those where the connecting barriers are too high 29:      INTEGER :: NMIN=0,NTS=0 !NUMBER OF TS/MIN FOUND SO FAR
 30:      INTEGER :: NMIN=0,NTS=0, NTSGOOD=0 !NUMBER OF TS/MIN FOUND SO FAR 
 31:      INTEGER :: NTSOLD=0 30:      INTEGER :: NTSOLD=0
 32:      INTEGER :: NATOMS,NOPT,NCONDONE,DEPTH 31:      INTEGER :: NATOMS,NOPT,NCONDONE,DEPTH
 33:      INTEGER :: TSRACKSIZE=100,MINRACKSIZE=150 32:      INTEGER :: TSRACKSIZE=100,MINRACKSIZE=150
 34:      DOUBLE PRECISION :: RMS 33:      DOUBLE PRECISION :: RMS
 35:      DOUBLE PRECISION,ALLOCATABLE :: G(:) 34:      DOUBLE PRECISION,ALLOCATABLE :: G(:)
 36:      DOUBLE PRECISION :: D 35:      DOUBLE PRECISION :: D
 37:  36: 
 38:      LOGICAL :: MOREPRINTING,ENDREACHED 37:      LOGICAL :: MOREPRINTING,ENDREACHED
 39:      LOGICAL :: RANDOM 38:      LOGICAL :: RANDOM
 40:  39: 


r29263/newconnect.f90 2015-11-17 23:32:48.484350307 +0000 r29262/newconnect.f90 2015-11-17 23:32:49.084358354 +0000
196:                   IF (NCONDONE.EQ.(NREDO-1)/2+1) THEN196:                   IF (NCONDONE.EQ.(NREDO-1)/2+1) THEN
197:                      WRITE(*,'(A)') ' newconnect> no more coordinates in redopoints'197:                      WRITE(*,'(A)') ' newconnect> no more coordinates in redopoints'
198:                      REDOPATH=.FALSE.198:                      REDOPATH=.FALSE.
199:                      CLOSE(99)199:                      CLOSE(99)
200:                   ENDIF200:                   ENDIF
201:                ENDIF201:                ENDIF
202:                WRITE(CHR,'(i5)') NConDone202:                WRITE(CHR,'(i5)') NConDone
203:                WRITE(STR,'(3a)') '>>>>>>>>>>>>>>>>>>>>> CONNECT CYCLE ',trim(adjustl(chr)),' >>>>>>>>>>>>>>>>>>>>>'203:                WRITE(STR,'(3a)') '>>>>>>>>>>>>>>>>>>>>> CONNECT CYCLE ',trim(adjustl(chr)),' >>>>>>>>>>>>>>>>>>>>>'
204:                WRITE(CHR,'(i5)') Nmin204:                WRITE(CHR,'(i5)') Nmin
205:                WRITE(STR,'(a)')  trim(str)//' '//trim(adjustl(chr))//' minima and'205:                WRITE(STR,'(a)')  trim(str)//' '//trim(adjustl(chr))//' minima and'
206:                WRITE(CHR,'(i5)') NTSGOOD206:                WRITE(CHR,'(i5)') Nts
207:                WRITE(STR,'(a)')  trim(str)//' '//trim(adjustl(chr))//' ts are known'207:                WRITE(STR,'(a)')  trim(str)//' '//trim(adjustl(chr))//' ts are known'
208:                WRITE(*,'(1x,a)') trim(str)//' '//repeat('>',107-len_trim(str))208:                WRITE(*,'(1x,a)') trim(str)//' '//repeat('>',107-len_trim(str))
209: !209: !
210: !  Read in transition state coordinates from redopoints if available.210: !  Read in transition state coordinates from redopoints if available.
211: !  Must NOT use the pointers EI and EF here!!!211: !  Must NOT use the pointers EI and EF here!!!
212: !212: !
213:                IF (REDOPATH.AND.(.NOT.REDOPATHXYZ)) THEN213:                IF (REDOPATH.AND.(.NOT.REDOPATHXYZ)) THEN
214:                   IF (AMHT) THEN214:                   IF (AMHT) THEN
215:                      MIN1REDO(1:3*NA)=MIN2REDO(1:3*NA)215:                      MIN1REDO(1:3*NA)=MIN2REDO(1:3*NA)
216:                      NCOUNT=0216:                      NCOUNT=0


r29263/tryconnect.f90 2015-11-17 23:32:48.676352882 +0000 r29262/tryconnect.f90 2015-11-17 23:32:49.276360929 +0000
501:           IF (ALLOCATED(FOUNDBEFORE)) DEALLOCATE(FOUNDBEFORE)501:           IF (ALLOCATED(FOUNDBEFORE)) DEALLOCATE(FOUNDBEFORE)
502:           IF (ALLOCATED(DOAGAIN)) DEALLOCATE(DOAGAIN)502:           IF (ALLOCATED(DOAGAIN)) DEALLOCATE(DOAGAIN)
503:           ALLOCATE(FOUNDBEFORE(NTSFOUND),DOAGAIN(NTSFOUND))503:           ALLOCATE(FOUNDBEFORE(NTSFOUND),DOAGAIN(NTSFOUND))
504:           FOUNDBEFORE(1:NTSFOUND)=.FALSE.504:           FOUNDBEFORE(1:NTSFOUND)=.FALSE.
505:           DOAGAIN(1:NTSFOUND)=.FALSE.505:           DOAGAIN(1:NTSFOUND)=.FALSE.
506:           DO I=1,NTSFOUND506:           DO I=1,NTSFOUND
507: !              PRINT '(A,2G20.10)',' tryconnect> TSFOUND(i)%E, MAXTSENERGY=',TSfound(i)%E, MAXTSENERGY507: !              PRINT '(A,2G20.10)',' tryconnect> TSFOUND(i)%E, MAXTSENERGY=',TSfound(i)%E, MAXTSENERGY
508: ! hk286508: ! hk286
509:                AMIDEFAIL=.FALSE.509:                AMIDEFAIL=.FALSE.
510:                CHIRALFAIL=.FALSE.510:                CHIRALFAIL=.FALSE.
511:                IF (CHRMMT) THEN511:                IF (RIGIDINIT) THEN  ! sn402: are we wasting time by performing this transform when not
512:                   IF (RIGIDINIT) THEN512:                                     ! using CHARMM? Looks as though XCOORDS is only used with CHRMMT.
513:                      XRIGIDCOORDS(1:DEGFREEDOMS) = TSFOUND(I)%COORD(1:DEGFREEDOMS)513:                   XRIGIDCOORDS(1:DEGFREEDOMS) = TSFOUND(I)%COORD(1:DEGFREEDOMS)
514:                      CALL TRANSFORMRIGIDTOC(1, NRIGIDBODY, XCOORDS, XRIGIDCOORDS)514:                   CALL TRANSFORMRIGIDTOC(1, NRIGIDBODY, XCOORDS, XRIGIDCOORDS)
515:                      IF (CHECKOMEGAT) &515:                   IF (CHRMMT .AND. CHECKOMEGAT) &
516:                           CALL CHECKOMEGA(XCOORDS,AMIDEFAIL)516:                        CALL CHECKOMEGA(XCOORDS,AMIDEFAIL)
517:                      IF (CHECKCHIRALT) &517:                   IF (CHRMMT .AND. CHECKCHIRALT) &
518:                           CALL CHECKCHIRAL(XCOORDS,CHIRALFAIL)518:                        CALL CHECKCHIRAL(XCOORDS,CHIRALFAIL)
519:                   ELSE519:                ELSE
520:                      IF (CHECKOMEGAT) &520:                   IF (CHRMMT .AND. CHECKOMEGAT) &
521:                           CALL CHECKOMEGA(TSFOUND(I)%COORD,AMIDEFAIL)521:                        CALL CHECKOMEGA(TSFOUND(I)%COORD,AMIDEFAIL)
522:                      IF (CHECKCHIRALT) &522:                   IF (CHRMMT .AND. CHECKCHIRALT) &
523:                           CALL CHECKCHIRAL(TSFOUND(I)%COORD,CHIRALFAIL)523:                        CALL CHECKCHIRAL(TSFOUND(I)%COORD,CHIRALFAIL)
524:                   ENDIF524:                ENDIF
525:                END IF 
526:                IF (CHRMMT .AND. AMIDEFAIL) THEN525:                IF (CHRMMT .AND. AMIDEFAIL) THEN
527:                   PRINT '(A,G20.10,A)',' tryconnect> Transition state with energy ',TSfound(i)%E, &526:                   PRINT '(A,G20.10,A)',' tryconnect> Transition state with energy ',TSfound(i)%E, &
528:   &                                   ' ignored, amide cis-trans isomerisation detected'527:   &                                   ' ignored, amide cis-trans isomerisation detected'
529:                   DEALLOCATE(TSFOUND(I)%E,TSFOUND(I)%COORD,TSFOUND(I)%EVALMIN,TSFOUND(I)%VECS)528:                   DEALLOCATE(TSFOUND(I)%E,TSFOUND(I)%COORD,TSFOUND(I)%EVALMIN,TSFOUND(I)%VECS)
530:                ELSEIF (CHRMMT .AND. CHIRALFAIL) THEN529:                ELSEIF (CHRMMT .AND. CHIRALFAIL) THEN
531:                   PRINT '(A,G20.10,A)',' tryconnect> Transition state with energy ',TSfound(i)%E, &530:                   PRINT '(A,G20.10,A)',' tryconnect> Transition state with energy ',TSfound(i)%E, &
532:   &                                    ' ignored, inversion of a chiral CA center detected.'531:   &                                    ' ignored, inversion of a chiral CA center detected.'
533:                   DEALLOCATE(TSFOUND(I)%E,TSFOUND(I)%COORD,TSFOUND(I)%EVALMIN,TSFOUND(I)%VECS)532:                   DEALLOCATE(TSFOUND(I)%E,TSFOUND(I)%COORD,TSFOUND(I)%EVALMIN,TSFOUND(I)%VECS)
534:                ELSEIF (TSFOUND(I)%E.GT.MAXTSENERGY) THEN533:                ELSEIF (TSFOUND(I)%E.GT.MAXTSENERGY) THEN
535:                   PRINT '(A,G20.10,A)',' tryconnect> Transition state with energy ',TSfound(i)%E,' ignored'534:                   PRINT '(A,G20.10,A)',' tryconnect> Transition state with energy ',TSfound(i)%E,' ignored'
556:                         TS(NTS)%DATA%BAD=.FALSE.555:                         TS(NTS)%DATA%BAD=.FALSE.
557:                         TS(NTS)%DATA%HITS=0556:                         TS(NTS)%DATA%HITS=0
558:                         NULLIFY(TSFOUND(I)%E,TSFOUND(I)%COORD,TSFOUND(I)%EVALMIN,TSFOUND(I)%VECS)557:                         NULLIFY(TSFOUND(I)%E,TSFOUND(I)%COORD,TSFOUND(I)%EVALMIN,TSFOUND(I)%VECS)
559:                      ELSE558:                      ELSE
560:                         PRINT '(2(A,I6))',' tryconnect> Will not repeat search for TS ',I, &559:                         PRINT '(2(A,I6))',' tryconnect> Will not repeat search for TS ',I, &
561:   &                                       ' same as TS ',SAMEAS560:   &                                       ' same as TS ',SAMEAS
562:                         DEALLOCATE(TSFOUND(I)%E,TSFOUND(I)%COORD,TSFOUND(I)%EVALMIN,TSFOUND(I)%VECS)561:                         DEALLOCATE(TSFOUND(I)%E,TSFOUND(I)%COORD,TSFOUND(I)%EVALMIN,TSFOUND(I)%VECS)
563:                      ENDIF562:                      ENDIF
564:                   ELSE563:                   ELSE
565:                      IF (NTS==TSRACKSIZE) CALL REALLOCATETSRACK564:                      IF (NTS==TSRACKSIZE) CALL REALLOCATETSRACK
566:                      NTS=NTS+1; UNIQUE=UNIQUE+1; NTSGOOD=NTSGOOD+1565:                      NTS=NTS+1; UNIQUE=UNIQUE+1
567:                      TS(NTS)%DATA%E => TSFOUND(I)%E566:                      TS(NTS)%DATA%E => TSFOUND(I)%E
568:                      TS(NTS)%DATA%X => TSFOUND(I)%COORD567:                      TS(NTS)%DATA%X => TSFOUND(I)%COORD
569:                      TS(NTS)%DATA%EVALMIN => TSFOUND(I)%EVALMIN568:                      TS(NTS)%DATA%EVALMIN => TSFOUND(I)%EVALMIN
570:                      TS(NTS)%DATA%VECS => TSFOUND(I)%VECS569:                      TS(NTS)%DATA%VECS => TSFOUND(I)%VECS
571:                      TS(NTS)%DATA%BAD=.FALSE.570:                      TS(NTS)%DATA%BAD=.FALSE.
572:                      TS(NTS)%DATA%HITS=0571:                      TS(NTS)%DATA%HITS=0
573:                      NULLIFY(TSFOUND(I)%E,TSFOUND(I)%COORD,TSFOUND(I)%EVALMIN,TSFOUND(I)%VECS)572:                      NULLIFY(TSFOUND(I)%E,TSFOUND(I)%COORD,TSFOUND(I)%EVALMIN,TSFOUND(I)%VECS)
574:                   ENDIF573:                   ENDIF
575: !              ELSE574: !              ELSE
576: !                 IF (NCONDONE==1) PRINT *, 'Discarded TS #',i575: !                 IF (NCONDONE==1) PRINT *, 'Discarded TS #',i
676: ! Check for chiral inversions in DNA/RNA, since cis/trans refers to the substituents on the ribose rings.675: ! Check for chiral inversions in DNA/RNA, since cis/trans refers to the substituents on the ribose rings.
677:                  IF(NOCISTRANSRNA.OR.NOCISTRANSDNA) THEN676:                  IF(NOCISTRANSRNA.OR.NOCISTRANSDNA) THEN
678:                    CALL CHIRALITY_CHECK(QPLUS, GOODSTRUCTURE1)677:                    CALL CHIRALITY_CHECK(QPLUS, GOODSTRUCTURE1)
679:                    CALL CHIRALITY_CHECK(QMINUS, GOODSTRUCTURE2)678:                    CALL CHIRALITY_CHECK(QMINUS, GOODSTRUCTURE2)
680:                    IF((.NOT.GOODSTRUCTURE1).OR.(.NOT.GOODSTRUCTURE2)) THEN679:                    IF((.NOT.GOODSTRUCTURE1).OR.(.NOT.GOODSTRUCTURE2)) THEN
681:                     PRINT '(A,G20.10,A)',' tryconnect> Transition state with energy ',TS(I)%DATA%E, &680:                     PRINT '(A,G20.10,A)',' tryconnect> Transition state with energy ',TS(I)%DATA%E, &
682:   &                                     ' ignored, cis-trans isomerisation in (deoxy)ribose ring or chirality inversion detected.'681:   &                                     ' ignored, cis-trans isomerisation in (deoxy)ribose ring or chirality inversion detected.'
683:                     DEALLOCATE(TS(I)%DATA%EVALMIN)682:                     DEALLOCATE(TS(I)%DATA%EVALMIN)
684:                     DEALLOCATE(QPLUS,QMINUS,EPLUS,EMINUS)683:                     DEALLOCATE(QPLUS,QMINUS,EPLUS,EMINUS)
685:                     TS(I)%DATA%BAD=.TRUE.684:                     TS(I)%DATA%BAD=.TRUE.
686:                     NTSGOOD=NTSGOOD-1 
687:                     CYCLE685:                     CYCLE
688:                    END IF686:                    END IF
689:                  ELSE687:                  ELSE
690: ! Otherwise, check for cis/trans flips of peptide bonds688: ! Otherwise, check for cis/trans flips of peptide bonds
691:                    CALL CIS_TRANS_CHECK(QMINUS, GOODSTRUCTURE1)689:                    CALL CIS_TRANS_CHECK(QMINUS, GOODSTRUCTURE1)
692:                    CALL CIS_TRANS_CHECK(QPLUS, GOODSTRUCTURE2)690:                    CALL CIS_TRANS_CHECK(QPLUS, GOODSTRUCTURE2)
693: 691: 
694:                    IF((.NOT.GOODSTRUCTURE1).OR.(.NOT.GOODSTRUCTURE2)) THEN692:                    IF((.NOT.GOODSTRUCTURE1).OR.(.NOT.GOODSTRUCTURE2)) THEN
695:                       WRITE(*,'(A)') ' tryconnect> Cis-trans isomerisation of a peptide bond detected '//&693:                       WRITE(*,'(A)') ' tryconnect> Cis-trans isomerisation of a peptide bond detected '//&
696:   &                                                '(wrt. the original structure), rejecting'694:   &                                                '(wrt. the original structure), rejecting'
697:                     PRINT '(A,G20.10,A)',' tryconnect> Transition state with energy ',TS(I)%DATA%E, &695:                     PRINT '(A,G20.10,A)',' tryconnect> Transition state with energy ',TS(I)%DATA%E, &
698:   &                                     ' ignored, cis-trans isomerisation detected in one or more peptide bonds.'696:   &                                     ' ignored, cis-trans isomerisation detected in one or more peptide bonds.'
699:                     DEALLOCATE(TS(I)%DATA%EVALMIN)697:                     DEALLOCATE(TS(I)%DATA%EVALMIN)
700:                     DEALLOCATE(QPLUS,QMINUS,EPLUS,EMINUS)698:                     DEALLOCATE(QPLUS,QMINUS,EPLUS,EMINUS)
701:                     TS(I)%DATA%BAD=.TRUE.699:                     TS(I)%DATA%BAD=.TRUE.
702:                     NTSGOOD=NTSGOOD-1 
703:                     CYCLE700:                     CYCLE
704:                    END IF701:                    END IF
705:                  END IF702:                  END IF
706:                END IF703:                END IF
707:                IF ((CHECKCHIRALT.OR.SETCHIRAL).AND.AMBER12T) THEN704:                IF ((CHECKCHIRALT.OR.SETCHIRAL).AND.AMBER12T) THEN
708:                   GOODSTRUCTURE1=.TRUE.705:                   GOODSTRUCTURE1=.TRUE.
709:                   GOODSTRUCTURE2=.TRUE.706:                   GOODSTRUCTURE2=.TRUE.
710:                   CALL CHIRALITY_CHECK(QMINUS, GOODSTRUCTURE1)707:                   CALL CHIRALITY_CHECK(QMINUS, GOODSTRUCTURE1)
711:                   CALL CHIRALITY_CHECK(QPLUS, GOODSTRUCTURE2)708:                   CALL CHIRALITY_CHECK(QPLUS, GOODSTRUCTURE2)
712:                   IF ((.NOT.GOODSTRUCTURE1).OR.(.NOT.GOODSTRUCTURE2)) THEN709:                   IF ((.NOT.GOODSTRUCTURE1).OR.(.NOT.GOODSTRUCTURE2)) THEN
713:                     WRITE(*,'(A)') ' tryconnect> Chirality inversion detected in at least one of the carbon centres, rejecting'710:                     WRITE(*,'(A)') ' tryconnect> Chirality inversion detected in at least one of the carbon centres, rejecting'
714:                     DEALLOCATE(TS(I)%DATA%EVALMIN)711:                     DEALLOCATE(TS(I)%DATA%EVALMIN)
715:                     DEALLOCATE(QPLUS,QMINUS,EPLUS,EMINUS)712:                     DEALLOCATE(QPLUS,QMINUS,EPLUS,EMINUS)
716:                     TS(I)%DATA%BAD=.TRUE.713:                     TS(I)%DATA%BAD=.TRUE.
717:                     NTSGOOD=NTSGOOD-1 
718:                     CYCLE714:                     CYCLE
719:                   ENDIF715:                   ENDIF
720:                ENDIF716:                ENDIF
721: ! AMBER 9717: ! AMBER 9
722:                IF ((AMBERT.OR.NABT).AND.NOCISTRANS) THEN718:                IF ((AMBERT.OR.NABT).AND.NOCISTRANS) THEN
723:                  IF(NOCISTRANSRNA) THEN719:                  IF(NOCISTRANSRNA) THEN
724:                    CALL CHECK_CISTRANS_RNA(QPLUS,NATOMS,ZSYM,GOODSTRUCTURE1)720:                    CALL CHECK_CISTRANS_RNA(QPLUS,NATOMS,ZSYM,GOODSTRUCTURE1)
725:                    CALL CHECK_CISTRANS_RNA(QMINUS,NATOMS,ZSYM,GOODSTRUCTURE2)721:                    CALL CHECK_CISTRANS_RNA(QMINUS,NATOMS,ZSYM,GOODSTRUCTURE2)
726:                    IF(.NOT.GOODSTRUCTURE1.OR..NOT.GOODSTRUCTURE2) THEN722:                    IF(.NOT.GOODSTRUCTURE1.OR..NOT.GOODSTRUCTURE2) THEN
727:                     PRINT '(A,G20.10,A)',' tryconnect> Transition state with energy ',TS(I)%DATA%E, &723:                     PRINT '(A,G20.10,A)',' tryconnect> Transition state with energy ',TS(I)%DATA%E, &
728:   &                                     ' ignored, cis-trans isomerisation detected in the RNA ribose ring.'724:   &                                     ' ignored, cis-trans isomerisation detected in the RNA ribose ring.'
729:                     DEALLOCATE(TS(I)%DATA%EVALMIN)725:                     DEALLOCATE(TS(I)%DATA%EVALMIN)
730:                     DEALLOCATE(QPLUS,QMINUS,EPLUS,EMINUS)726:                     DEALLOCATE(QPLUS,QMINUS,EPLUS,EMINUS)
731:                     TS(I)%DATA%BAD=.TRUE.727:                     TS(I)%DATA%BAD=.TRUE.
732:                     NTSGOOD=NTSGOOD-1 
733:                     CYCLE728:                     CYCLE
734:                    END IF729:                    END IF
735:                  ELSE IF(NOCISTRANSDNA) THEN730:                  ELSE IF(NOCISTRANSDNA) THEN
736:                    CALL CHECK_CISTRANS_DNA(QPLUS,NATOMS,ZSYM,GOODSTRUCTURE1)731:                    CALL CHECK_CISTRANS_DNA(QPLUS,NATOMS,ZSYM,GOODSTRUCTURE1)
737:                    CALL CHECK_CISTRANS_DNA(QMINUS,NATOMS,ZSYM,GOODSTRUCTURE2)732:                    CALL CHECK_CISTRANS_DNA(QMINUS,NATOMS,ZSYM,GOODSTRUCTURE2)
738:                    IF(.NOT.GOODSTRUCTURE1.OR..NOT.GOODSTRUCTURE2) THEN733:                    IF(.NOT.GOODSTRUCTURE1.OR..NOT.GOODSTRUCTURE2) THEN
739:                     PRINT '(A,G20.10,A)',' tryconnect> Transition state with energy ',TS(I)%DATA%E, &734:                     PRINT '(A,G20.10,A)',' tryconnect> Transition state with energy ',TS(I)%DATA%E, &
740:   &                                     ' ignored, cis-trans isomerisation detected in the DNA deoxyribose ring.'735:   &                                     ' ignored, cis-trans isomerisation detected in the DNA deoxyribose ring.'
741:                     DEALLOCATE(TS(I)%DATA%EVALMIN)736:                     DEALLOCATE(TS(I)%DATA%EVALMIN)
742:                     DEALLOCATE(QPLUS,QMINUS,EPLUS,EMINUS)737:                     DEALLOCATE(QPLUS,QMINUS,EPLUS,EMINUS)
743:                     TS(I)%DATA%BAD=.TRUE.738:                     TS(I)%DATA%BAD=.TRUE.
744:                     NTSGOOD=NTSGOOD-1 
745:                     CYCLE739:                     CYCLE
746:                    END IF740:                    END IF
747:                  ELSE741:                  ELSE
748:                    CALL CHECK_CISTRANS_PROTEIN(MI(1)%DATA%X(1:3*NATOMS),NATOMS,GOODSTRUCTURE1,MINOMEGA,CISARRAY2)742:                    CALL CHECK_CISTRANS_PROTEIN(MI(1)%DATA%X(1:3*NATOMS),NATOMS,GOODSTRUCTURE1,MINOMEGA,CISARRAY2)
749:                    CALL CHECK_CISTRANS_PROTEIN(QMINUS,NATOMS,GOODSTRUCTURE2,MINOMEGA,CISARRAY1)743:                    CALL CHECK_CISTRANS_PROTEIN(QMINUS,NATOMS,GOODSTRUCTURE2,MINOMEGA,CISARRAY1)
750:                    CISARRAY1=CISARRAY1-CISARRAY2744:                    CISARRAY1=CISARRAY1-CISARRAY2
751:                    GOODSTRUCTURE1=.TRUE.745:                    GOODSTRUCTURE1=.TRUE.
752:                    DO J1=1,NATOMS746:                    DO J1=1,NATOMS
753:                     IF(CISARRAY1(J1)/=0) THEN747:                     IF(CISARRAY1(J1)/=0) THEN
754:                       GOODSTRUCTURE1=.FALSE.748:                       GOODSTRUCTURE1=.FALSE.
768:                     END IF762:                     END IF
769:                    END DO763:                    END DO
770:                    IF(.NOT.GOODSTRUCTURE1.OR..NOT.GOODSTRUCTURE2) THEN764:                    IF(.NOT.GOODSTRUCTURE1.OR..NOT.GOODSTRUCTURE2) THEN
771:                       WRITE(*,'(A)') ' tryconnect> Cis-trans isomerisation of a peptide bond detected '//&765:                       WRITE(*,'(A)') ' tryconnect> Cis-trans isomerisation of a peptide bond detected '//&
772:   &                                                '(wrt. the original structure), rejecting'766:   &                                                '(wrt. the original structure), rejecting'
773:                     PRINT '(A,G20.10,A)',' tryconnect> Transition state with energy ',TS(I)%DATA%E, &767:                     PRINT '(A,G20.10,A)',' tryconnect> Transition state with energy ',TS(I)%DATA%E, &
774:   &                                     ' ignored, cis-trans isomerisation detected in one or more peptide bonds.'768:   &                                     ' ignored, cis-trans isomerisation detected in one or more peptide bonds.'
775:                     DEALLOCATE(TS(I)%DATA%EVALMIN)769:                     DEALLOCATE(TS(I)%DATA%EVALMIN)
776:                     DEALLOCATE(QPLUS,QMINUS,EPLUS,EMINUS)770:                     DEALLOCATE(QPLUS,QMINUS,EPLUS,EMINUS)
777:                     TS(I)%DATA%BAD=.TRUE.771:                     TS(I)%DATA%BAD=.TRUE.
778:                     NTSGOOD=NTSGOOD-1 
779:                     CYCLE772:                     CYCLE
780:                    END IF773:                    END IF
781:                  END IF774:                  END IF
782:                END IF775:                END IF
783:                IF (CHECKCHIRALT.AND.(AMBERT.OR.NABT)) THEN776:                IF (CHECKCHIRALT.AND.(AMBERT.OR.NABT)) THEN
784:                   CALL CHECK_CHIRALITY(QMINUS,NATOMS,GOODSTRUCTURE1)777:                   CALL CHECK_CHIRALITY(QMINUS,NATOMS,GOODSTRUCTURE1)
785:                   CALL CHECK_CHIRALITY(QPLUS,NATOMS,GOODSTRUCTURE2)778:                   CALL CHECK_CHIRALITY(QPLUS,NATOMS,GOODSTRUCTURE2)
786:                   IF (.NOT.GOODSTRUCTURE1.OR..NOT.GOODSTRUCTURE2) THEN779:                   IF (.NOT.GOODSTRUCTURE1.OR..NOT.GOODSTRUCTURE2) THEN
787:                     WRITE(*,'(A)') ' tryconnect> Chirality inversion detected in at least one of the carbon centres, rejecting'780:                     WRITE(*,'(A)') ' tryconnect> Chirality inversion detected in at least one of the carbon centres, rejecting'
788:                     DEALLOCATE(TS(I)%DATA%EVALMIN)781:                     DEALLOCATE(TS(I)%DATA%EVALMIN)
789:                     DEALLOCATE(QPLUS,QMINUS,EPLUS,EMINUS)782:                     DEALLOCATE(QPLUS,QMINUS,EPLUS,EMINUS)
790:                     TS(I)%DATA%BAD=.TRUE.783:                     TS(I)%DATA%BAD=.TRUE.
791:                     NTSGOOD=NTSGOOD-1 
792:                     CYCLE784:                     CYCLE
793:                   ENDIF785:                   ENDIF
794:                ENDIF786:                ENDIF
795: !mo361> Discard transition state if any chiral atoms are inverted compared to finish structure. 787: !mo361> Discard transition state if any chiral atoms are inverted compared to finish structure. 
796:                IF (SETCHIRAL.AND.(AMBERT .OR. NABT)) THEN788:                IF (SETCHIRAL.AND.(AMBERT .OR. NABT)) THEN
797:                   CALL SET_CHECK_CHIRAL(QPLUS,NATOMS,GOODSTRUCTURE1,CHIARRAY2)789:                   CALL SET_CHECK_CHIRAL(QPLUS,NATOMS,GOODSTRUCTURE1,CHIARRAY2)
798:                   CHIARRAY2=CHIARRAY1-CHIARRAY2790:                   CHIARRAY2=CHIARRAY1-CHIARRAY2
799:                   GOODSTRUCTURE1=.TRUE.791:                   GOODSTRUCTURE1=.TRUE.
800:                   DO J1=1,NATOMS792:                   DO J1=1,NATOMS
801:                      IF (CHIARRAY2(J1)/=0) THEN793:                      IF (CHIARRAY2(J1)/=0) THEN
811:                      IF (CHIARRAY2(J1)/=0) THEN803:                      IF (CHIARRAY2(J1)/=0) THEN
812:                         GOODSTRUCTURE1=.FALSE.804:                         GOODSTRUCTURE1=.FALSE.
813:                         WRITE(*,'(A,I6)') ' tryconnect> chirality inversion at ', J1805:                         WRITE(*,'(A,I6)') ' tryconnect> chirality inversion at ', J1
814:                      ENDIF806:                      ENDIF
815:                   ENDDO807:                   ENDDO
816:                   IF (.NOT.GOODSTRUCTURE1.OR..NOT.GOODSTRUCTURE2) THEN808:                   IF (.NOT.GOODSTRUCTURE1.OR..NOT.GOODSTRUCTURE2) THEN
817:                     WRITE(*,'(A)') ' tryconnect> Chirality inversion detected in at least one of the carbon centres, rejecting'809:                     WRITE(*,'(A)') ' tryconnect> Chirality inversion detected in at least one of the carbon centres, rejecting'
818:                     DEALLOCATE(TS(I)%DATA%EVALMIN)810:                     DEALLOCATE(TS(I)%DATA%EVALMIN)
819:                     DEALLOCATE(QPLUS,QMINUS,EPLUS,EMINUS)811:                     DEALLOCATE(QPLUS,QMINUS,EPLUS,EMINUS)
820:                     TS(I)%DATA%BAD=.TRUE.812:                     TS(I)%DATA%BAD=.TRUE.
821:                     NTSGOOD=NTSGOOD-1 
822:                     CYCLE813:                     CYCLE
823:                   ENDIF814:                   ENDIF
824:                ENDIF815:                ENDIF
825: 816: 
826: ! hk286 - QPLUS already in atom coordinates817: ! hk286 - QPLUS already in atom coordinates
827: ! hk286 - QMINUS already in atom coordinates818: ! hk286 - QMINUS already in atom coordinates
828:                AMIDEFAIL=.FALSE.819:                AMIDEFAIL=.FALSE.
829:                IF (CHRMMT .AND. CHECKOMEGAT) &820:                IF (CHRMMT .AND. CHECKOMEGAT) &
830:                   CALL CHECKOMEGA(QPLUS,AMIDEFAIL)821:                   CALL CHECKOMEGA(QPLUS,AMIDEFAIL)
831:                IF (CHRMMT .AND. CHECKOMEGAT .AND. .NOT.AMIDEFAIL) &822:                IF (CHRMMT .AND. CHECKOMEGAT .AND. .NOT.AMIDEFAIL) &
834:                IF (CHRMMT .AND. CHECKCHIRALT) &825:                IF (CHRMMT .AND. CHECKCHIRALT) &
835:                   CALL CHECKCHIRAL(QPLUS,CHIRALFAIL)826:                   CALL CHECKCHIRAL(QPLUS,CHIRALFAIL)
836:                IF (CHRMMT .AND. CHECKCHIRALT .AND. .NOT.CHIRALFAIL) &827:                IF (CHRMMT .AND. CHECKCHIRALT .AND. .NOT.CHIRALFAIL) &
837:                   CALL CHECKCHIRAL(QMINUS,CHIRALFAIL)828:                   CALL CHECKCHIRAL(QMINUS,CHIRALFAIL)
838:                IF (CHRMMT .AND. AMIDEFAIL) THEN829:                IF (CHRMMT .AND. AMIDEFAIL) THEN
839:                   PRINT '(A,G20.10,A)',' tryconnect> Transition state with energy ',TS(I)%DATA%E, &830:                   PRINT '(A,G20.10,A)',' tryconnect> Transition state with energy ',TS(I)%DATA%E, &
840:   &                                     ' ignored, cis-trans isomerisation of an amide-bond detected.'831:   &                                     ' ignored, cis-trans isomerisation of an amide-bond detected.'
841:                   DEALLOCATE(TS(I)%DATA%EVALMIN)832:                   DEALLOCATE(TS(I)%DATA%EVALMIN)
842:                   DEALLOCATE(QPLUS,QMINUS,EPLUS,EMINUS)833:                   DEALLOCATE(QPLUS,QMINUS,EPLUS,EMINUS)
843:                   TS(I)%DATA%BAD=.TRUE.834:                   TS(I)%DATA%BAD=.TRUE.
844:                   NTSGOOD=NTSGOOD-1 
845:                   CYCLE835:                   CYCLE
846:                ELSEIF (CHRMMT .AND. CHIRALFAIL) THEN836:                ELSEIF (CHRMMT .AND. CHIRALFAIL) THEN
847:                   PRINT '(A,G20.10,A)',' tryconnect> Transition state with energy ',TS(I)%DATA%E, &837:                   PRINT '(A,G20.10,A)',' tryconnect> Transition state with energy ',TS(I)%DATA%E, &
848:   &                                        ' ignored, inversion of a chiral CA center detected.'838:   &                                        ' ignored, inversion of a chiral CA center detected.'
849:                   DEALLOCATE(TS(I)%DATA%EVALMIN)839:                   DEALLOCATE(TS(I)%DATA%EVALMIN)
850:                   DEALLOCATE(QPLUS,QMINUS,EPLUS,EMINUS)840:                   DEALLOCATE(QPLUS,QMINUS,EPLUS,EMINUS)
851:                   TS(I)%DATA%BAD=.TRUE.841:                   TS(I)%DATA%BAD=.TRUE.
852:                   NTSGOOD=NTSGOOD-1 
853:                   CYCLE842:                   CYCLE
854:                ELSEIF (PATHFAILT) THEN843:                ELSEIF (PATHFAILT) THEN
855:                     DEALLOCATE(TS(I)%DATA%EVALMIN)844:                     DEALLOCATE(TS(I)%DATA%EVALMIN)
856:                     DEALLOCATE(QPLUS,QMINUS,EPLUS,EMINUS)845:                     DEALLOCATE(QPLUS,QMINUS,EPLUS,EMINUS)
857:                     WRITE(*,*) ' tryconnect> path failed for ts ', I, TS(I)%DATA%E, ', ts ignored' 846:                     WRITE(*,*) ' tryconnect> path failed for ts ', I, TS(I)%DATA%E 
858:                     TS(I)%DATA%BAD=.TRUE.847:                     TS(I)%DATA%BAD=.TRUE.
859:                     NTSGOOD=NTSGOOD-1 
860:                     CYCLE848:                     CYCLE
861:                ELSEIF (TS(I)%DATA%E-MIN(EPLUS,EMINUS).GT.MAXMAXBARRIER) THEN849:                ELSEIF (TS(I)%DATA%E-MIN(EPLUS,EMINUS).GT.MAXMAXBARRIER) THEN
862:                   PRINT '(2(A,G20.10))',' tryconnect> Transition state with energy ',TS(I)%DATA%E,' ignored, maximum barrier=', &850:                   PRINT '(2(A,G20.10))',' tryconnect> Transition state with energy ',TS(I)%DATA%E,' ignored, maximum barrier=', &
863:   &                                      TS(I)%DATA%E-MIN(EPLUS,EMINUS)851:   &                                      TS(I)%DATA%E-MIN(EPLUS,EMINUS)
864:                   DEALLOCATE(TS(I)%DATA%EVALMIN)852:                   DEALLOCATE(TS(I)%DATA%EVALMIN)
865:                   DEALLOCATE(QPLUS,QMINUS,EPLUS,EMINUS)853:                   DEALLOCATE(QPLUS,QMINUS,EPLUS,EMINUS)
866:                   TS(I)%DATA%BAD=.TRUE.854:                   TS(I)%DATA%BAD=.TRUE.
867:                   NTSGOOD=NTSGOOD-1 
868: !                 STOP !!! DJW855: !                 STOP !!! DJW
869:                   CYCLE856:                   CYCLE
870:                ELSEIF (TS(I)%DATA%E-MAX(EPLUS,EMINUS).GT.MAXBARRIER) THEN857:                ELSEIF (TS(I)%DATA%E-MAX(EPLUS,EMINUS).GT.MAXBARRIER) THEN
871:                   PRINT '(2(A,G20.10))',' tryconnect> Transition state with energy ',TS(I)%DATA%E,' ignored, minimum barrier=', &858:                   PRINT '(2(A,G20.10))',' tryconnect> Transition state with energy ',TS(I)%DATA%E,' ignored, minimum barrier=', &
872:   &                                      TS(I)%DATA%E-MAX(EPLUS,EMINUS)859:   &                                      TS(I)%DATA%E-MAX(EPLUS,EMINUS)
873:                   DEALLOCATE(TS(I)%DATA%EVALMIN)860:                   DEALLOCATE(TS(I)%DATA%EVALMIN)
874:                   DEALLOCATE(QPLUS,QMINUS,EPLUS,EMINUS)861:                   DEALLOCATE(QPLUS,QMINUS,EPLUS,EMINUS)
875:                   TS(I)%DATA%BAD=.TRUE.862:                   TS(I)%DATA%BAD=.TRUE.
876:                   NTSGOOD=NTSGOOD-1 
877:                   CYCLE863:                   CYCLE
878:                ELSE864:                ELSE
879:                   IF (UNRST) CALL TESTSAMEMIN(EPLUS,QPLUS,EMINUS,QMINUS,PATHFAILT)865:                   IF (UNRST) CALL TESTSAMEMIN(EPLUS,QPLUS,EMINUS,QMINUS,PATHFAILT)
880:                   IF (PATHFAILT) THEN866:                   IF (PATHFAILT) THEN
881:                       DEALLOCATE(TS(I)%DATA%EVALMIN)867:                       DEALLOCATE(TS(I)%DATA%EVALMIN)
882:                       DEALLOCATE(QPLUS,QMINUS,EPLUS,EMINUS)868:                       DEALLOCATE(QPLUS,QMINUS,EPLUS,EMINUS)
883:                     WRITE(*,*) ' tryconnect1> path failed for ts ', I, TS(I)%DATA%E, ', ts ignored'869:                     WRITE(*,*) ' tryconnect1> path failed for ts ', I, TS(I)%DATA%E 
884:                       TS(I)%DATA%BAD=.TRUE.870:                       TS(I)%DATA%BAD=.TRUE.
885:                       NTSGOOD=NTSGOOD-1 
886:                       CYCLE 871:                       CYCLE 
887:                   ENDIF872:                   ENDIF
888:                ENDIF873:                ENDIF
889: 874: 
890: 333            CONTINUE875: 333            CONTINUE
891: !              IF (I.EQ.195) DEBUG=.TRUE.876: !              IF (I.EQ.195) DEBUG=.TRUE.
892: !              PRINT *,'tryconnect>  plus min'877: !              PRINT *,'tryconnect>  plus min'
893:                CALL ISNEWMIN(EPLUS,QPLUS,MINPLUSPOS,PLUSNEW,REDOPATH,PERMUTE,INVERT,INDEX,IMATCH)878:                CALL ISNEWMIN(EPLUS,QPLUS,MINPLUSPOS,PLUSNEW,REDOPATH,PERMUTE,INVERT,INDEX,IMATCH)
894: !              PRINT *,'tryconnect>  minus min'879: !              PRINT *,'tryconnect>  minus min'
895:                CALL ISNEWMIN(EMINUS,QMINUS,MINMINUSPOS,MINUSNEW,REDOPATH,PERMUTE,INVERT,INDEX,IMATCH)880:                CALL ISNEWMIN(EMINUS,QMINUS,MINMINUSPOS,MINUSNEW,REDOPATH,PERMUTE,INVERT,INDEX,IMATCH)


legend
Lines Added 
Lines changed
 Lines Removed

hdiff - version: 2.1.0