hdiff output

r33351/amber12_interface.F90 2017-09-25 17:30:12.527847204 +0100 r33350/amber12_interface.F90 2017-09-25 17:30:13.795861090 +0100
399: ! Allocate the atoms and residues arrays and populate them. 399: ! Allocate the atoms and residues arrays and populate them. 
400:   call populate_atom_data(amber12_atoms, amber12_residues)400:   call populate_atom_data(amber12_atoms, amber12_residues)
401: 401: 
402: #else /* DUMMY_AMBER12 */402: #else /* DUMMY_AMBER12 */
403: ! If we haven't compiled AMBER12, set natoms to 0.403: ! If we haven't compiled AMBER12, set natoms to 0.
404:   natoms = 0404:   natoms = 0
405: 405: 
406: #endif /* DUMMY_AMBER12 */406: #endif /* DUMMY_AMBER12 */
407: end subroutine amber12_setup407: end subroutine amber12_setup
408: 408: 
409: subroutine amber12_get_atomdata(atoms,natoms) 
410:   implicit none 
411:   integer :: natoms 
412:   type(amber12_atom), intent(out)     :: atoms(natoms) 
413:  
414:   atoms = amber12_atoms 
415: end subroutine amber12_get_atomdata 
416:  
417: subroutine amber12_get_resdata(residues,nres) 
418:   implicit none 
419:   integer :: nres 
420:   type(amber12_residue), intent(out)     :: residues(nres) 
421:  
422:   residues = amber12_residues 
423: end subroutine amber12_get_resdata 
424:  
425: subroutine amber12_atomstores(atomstores,natoms) 
426:   implicit none 
427:   integer, intent(in) :: natoms 
428:   integer, intent(out) :: atomstores(natoms) 
429:   integer :: j1, nres 
430:    
431:   nres = 1 
432:   do j1=1,natoms 
433:      if ((amber12_residues(nres)%end_index).le.j1) then 
434:         atomstores(j1) = nres 
435:      else 
436:         nres = nres + 1 
437:         atomstores(j1) =nres 
438:      end if 
439:   end do 
440: end subroutine amber12_atomstores 
441:  
442: subroutine amber12_get_coords(natoms, coords) bind(C, name='amber12_get_coords')409: subroutine amber12_get_coords(natoms, coords) bind(C, name='amber12_get_coords')
443: !410: !
444: ! Places the coordinates detected by AMBER12 into the coords array provided.411: ! Places the coordinates detected by AMBER12 into the coords array provided.
445: !412: !
446: ! Arguments413: ! Arguments
447: ! ---------414: ! ---------
448: !415: !
449: ! natoms(in): number of atoms416: ! natoms(in): number of atoms
450: ! coords(out): array into which to write coords417: ! coords(out): array into which to write coords
451: !418: !


r33351/amber_mutations.F90 2017-09-25 17:30:12.779849961 +0100 r33350/amber_mutations.F90 2017-09-25 17:30:14.051863895 +0100
 16:      INTEGER                           :: NENTRIES        !number of possible residues 16:      INTEGER                           :: NENTRIES        !number of possible residues
 17:      CHARACTER(LEN=4)                  :: CURRENT_RES     !current residue 17:      CHARACTER(LEN=4)                  :: CURRENT_RES     !current residue
 18:      CHARACTER(LEN=4) , DIMENSION(:) , ALLOCATABLE :: RESCHOICE       !residues to choose for mutations 18:      CHARACTER(LEN=4) , DIMENSION(:) , ALLOCATABLE :: RESCHOICE       !residues to choose for mutations
 19:      DOUBLE PRECISION , DIMENSION(:) , ALLOCATABLE :: PROBABILITIES   !selection probability for selection 19:      DOUBLE PRECISION , DIMENSION(:) , ALLOCATABLE :: PROBABILITIES   !selection probability for selection
 20:   END TYPE RESIDUE_MUTATION 20:   END TYPE RESIDUE_MUTATION
 21:  21: 
 22:   CHARACTER(LEN=4), ALLOCATABLE , SAVE :: AMBER12_RESNAME(:) 22:   CHARACTER(LEN=4), ALLOCATABLE , SAVE :: AMBER12_RESNAME(:)
 23:   INTEGER , SAVE :: NRESIDUES , NRESMUT , MUNIT 23:   INTEGER , SAVE :: NRESIDUES , NRESMUT , MUNIT
 24:   INTEGER , ALLOCATABLE , SAVE :: TERMINI_RES(:), AMBER12_RESSTART(:), AMBER12_RESEND(:), AMBER12_RESNATOM(:) 24:   INTEGER , ALLOCATABLE , SAVE :: TERMINI_RES(:), AMBER12_RESSTART(:), AMBER12_RESEND(:), AMBER12_RESNATOM(:)
 25:   TYPE(RESIDUE_MUTATION) , DIMENSION(:) , ALLOCATABLE ,SAVE :: MUTATION_INFO , PREVIOUS_MUTATION 25:   TYPE(RESIDUE_MUTATION) , DIMENSION(:) , ALLOCATABLE ,SAVE :: MUTATION_INFO , PREVIOUS_MUTATION
 26:   DOUBLE PRECISION, ALLOCATABLE, SAVE :: CA_REFERENCE(:) 
 27:  26: 
 28:   CONTAINS 27:   CONTAINS
 29:   !setup mutational system, initialise coordinates correctly, and according to the right size 28:   !setup mutational system, initialise coordinates correctly, and according to the right size
 30:   SUBROUTINE AMBERMUTATION_SETUP()   29:   SUBROUTINE AMBERMUTATION_SETUP()  
 31:      IMPLICIT NONE 30:      IMPLICIT NONE
 32:      INTEGER :: MIUNIT,GETUNIT,J1,J2,NENTRIES,NTERMINI,TESTINT 31:      INTEGER :: MIUNIT,GETUNIT,J1,J2,NENTRIES,NTERMINI,TESTINT
 33:      LOGICAL :: YESNO , NTERT 32:      LOGICAL :: YESNO , NTERT
 34:      CHARACTER(200) ENTRY_ 33:      CHARACTER(200) ENTRY_
 35:      CHARACTER(25) , DIMENSION(:) , ALLOCATABLE :: ENTRIES 34:      CHARACTER(25) , DIMENSION(:) , ALLOCATABLE :: ENTRIES
 36:  35: 
601:         DO600:         DO
602:           ENTRIES(:)=''601:           ENTRIES(:)=''
603:           READ(PARMEDUNIT,'(A)',END=588) ENTRY_602:           READ(PARMEDUNIT,'(A)',END=588) ENTRY_
604:           CALL READ_LINE(ENTRY_,NWORDS,ENTRIES)603:           CALL READ_LINE(ENTRY_,NWORDS,ENTRIES)
605:           IF (ENTRIES(1).EQ.'TOTAL') THEN604:           IF (ENTRIES(1).EQ.'TOTAL') THEN
606:              READ(ENTRIES(3),'(F20.10)') SCORE605:              READ(ENTRIES(3),'(F20.10)') SCORE
607:              GOTO 588606:              GOTO 588
608:           ENDIF607:           ENDIF
609:         ENDDO608:         ENDDO
610: 588     CONTINUE609: 588     CONTINUE
611:         CLOSE(PARMEDUNIT) 
612:         CALL SYSTEM('rm current.inpcrd parmed_in parmed_out')      610:         CALL SYSTEM('rm current.inpcrd parmed_in parmed_out')      
613:      ELSE IF (MODE.EQ.4) THEN 
614:          IF (.NOT.(ALLOCATED(CA_REFERENCE))) THEN 
615:             ALLOCATE(CA_REFERENCE(3*NRESIDUES)) 
616:             CALL CREATE_CA_REF(TERMID) 
617:          END IF 
618:          CALL CALPHA_RMSD(SCORE,COORDS) 
619:      !helical optimisation for alpha helix 
620:      ELSE IF (MODE.EQ.5) THEN 
621:          CALL HELICAL_DSSP(SCORE,COORDS,1) 
622:      !helical optimisation for 3-10 helix 
623:      ELSE IF (MODE.EQ.6) THEN 
624:          CALL HELICAL_DSSP(SCORE,COORDS,2) 
625:      !helical optimisation for pi helix 
626:      ELSE IF (MODE.EQ.7) THEN 
627:          CALL HELICAL_DSSP(SCORE,COORDS,3) 
628:      ENDIF611:      ENDIF
629:   END SUBROUTINE MUTATION_E612:   END SUBROUTINE MUTATION_E
630: 613: 
631:   SUBROUTINE AMBERMUT_CURR_LOWEST()614:   SUBROUTINE AMBERMUT_CURR_LOWEST()
632:      CHARACTER(LEN=6) :: J1_STRING, NMUT_STRING615:      CHARACTER(LEN=6) :: J1_STRING, NMUT_STRING
633:      INTEGER :: J1    616:      INTEGER :: J1    
634:  617:  
635:      !to save the previous best strutures 618:      !to save the previous best strutures 
636:      DO J1=1,NSAVE619:      DO J1=1,NSAVE
637:         WRITE(J1_STRING,'(I6)') J1620:         WRITE(J1_STRING,'(I6)') J1
692: 675: 
693:   SUBROUTINE PRINT_CURRENT_SEQ()676:   SUBROUTINE PRINT_CURRENT_SEQ()
694:      INTEGER J677:      INTEGER J
695:      678:      
696:      DO J=1,NRESIDUES-1679:      DO J=1,NRESIDUES-1
697:         WRITE(MYUNIT, '(A)',ADVANCE='NO') AMBER12_RESNAME(J)680:         WRITE(MYUNIT, '(A)',ADVANCE='NO') AMBER12_RESNAME(J)
698:      END DO681:      END DO
699:      WRITE(MYUNIT, '(A)')  AMBER12_RESNAME(NRESIDUES)682:      WRITE(MYUNIT, '(A)')  AMBER12_RESNAME(NRESIDUES)
700:   END SUBROUTINE PRINT_CURRENT_SEQ683:   END SUBROUTINE PRINT_CURRENT_SEQ
701: 684: 
702:   SUBROUTINE CREATE_CA_REF(HELTYPE) 
703:     INTEGER, INTENT(IN) :: HELTYPE 
704:     DOUBLE PRECISION, PARAMETER :: HBOND=5.40D0 
705:     DOUBLE PRECISION, PARAMETER :: PI=3.14159265358979D0 
706:     DOUBLE PRECISION :: CA_DIST, CA_AXIS, CA_ANGLE, XYZ_OLD(3), XYZ_NEW(3), RMAT(3,3) 
707:     INTEGER :: J1, REFUNIT, GETUNIT 
708:  
709:     IF (HELTYPE.EQ.1) THEN !alpha helix 
710:       CA_ANGLE = 100.0D0 
711:     ELSE IF (HELTYPE.EQ.2) THEN !3-10 helix 
712:       CA_ANGLE = 120.0D0 
713:     ELSE IF (HELTYPE.EQ.3) THEN !pi helix 
714:       CA_ANGLE = 87.0D0 
715:     END IF 
716:     CA_DIST = 2.5D0 
717:     CA_AXIS = HBOND/(360.0D0/CA_ANGLE) 
718:     CA_ANGLE = (CA_ANGLE/180.0D0)*PI 
719:     !set firsat atom on x-axis, and have helical axis along z-axis, and set RMAT  
720:     CA_REFERENCE(1) = CA_DIST 
721:     CA_REFERENCE(2) = 0.0D0 
722:     CA_REFERENCE(3) = 0.0D0 
723:     RMAT = RESHAPE((/ COS(CA_ANGLE),SIN(CA_ANGLE),0.0D0,-SIN(CA_ANGLE),COS(CA_ANGLE),0.0D0,0.0D0,0.0D0,1.0D0 /),(/ 3,3 /)) 
724:     !now create the new coordinates 
725:     DO J1=2,NRESIDUES 
726:       XYZ_OLD=(/ CA_REFERENCE(3*(J1-1)-2),CA_REFERENCE(3*(J1-1)-1),CA_REFERENCE(3*(J1-1)) /) 
727:       XYZ_NEW=MATMUL(RMAT,XYZ_OLD) 
728:       CA_REFERENCE(3*J1-2) = XYZ_NEW(1)  
729:       CA_REFERENCE(3*J1-1) = XYZ_NEW(2) 
730:       CA_REFERENCE(3*J1)   = XYZ_NEW(3) + CA_AXIS 
731:     ENDDO 
732:     REFUNIT = GETUNIT() 
733:     OPEN(UNIT=REFUNIT , FILE='reference.CA' , STATUS='NEW') 
734:      DO J1 = 1,NRESIDUES 
735:         WRITE(REFUNIT,'(3F20.10)') CA_REFERENCE(3*J1-2),CA_REFERENCE(3*J1-1),CA_REFERENCE(3*J1) 
736:      ENDDO 
737:      CLOSE(REFUNIT) 
738:  
739:   END SUBROUTINE CREATE_CA_REF 
740:  
741:   SUBROUTINE CALPHA_RMSD(SCORE,COORDS) 
742:     DOUBLE PRECISION, INTENT(OUT) :: SCORE 
743:     DOUBLE PRECISION, INTENT(IN) :: COORDS(3*NATOMS) 
744:     DOUBLE PRECISION :: CA_COORDS(3*NRESIDUES), DIST, RMAT(3,3) 
745:     TYPE(AMBER12_ATOM) :: ATOMDATA(NATOMS) 
746:     INTEGER :: J1, NDUMMY, CA_POS(NRESIDUES) 
747:   
748:     CALL AMBER12_GET_ATOMDATA(ATOMDATA,NATOMS) 
749:     !get the positions of the C alpha atoms (as they change with the mutations this is the easiest way) 
750:     NDUMMY = 0 
751:     DO J1=1,NATOMS 
752:        IF (ATOMDATA(J1)%NAME.EQ.'C') THEN 
753:           NDUMMY = NDUMMY + 1 
754:           CA_POS(NDUMMY) = J1 
755:        END IF 
756:        IF (NDUMMY.EQ.NRESIDUES) GOTO 713 
757:     END DO 
758:     !now create a new array of coordinates just containing the C alpha coordinates 
759: 713 CONTINUE 
760:     DO J1=1,NRESIDUES 
761:        CA_COORDS(3*J1-2) = COORDS(3*CA_POS(J1)-2) 
762:        CA_COORDS(3*J1-1) = COORDS(3*CA_POS(J1)-1) 
763:        CA_COORDS(3*J1)   = COORDS(3*CA_POS(J1)) 
764:     END DO 
765:     !now compare CA_COORDS and CA_REFERENCE 
766:     CALL NEWMINDIST(CA_REFERENCE,CA_COORDS,NRESIDUES,DIST,.FALSE.,.FALSE.,'     ',.FALSE.,.FALSE.,DEBUG,RMAT) 
767:     SCORE = DIST 
768:   END SUBROUTINE CALPHA_RMSD 
769:  
770:   SUBROUTINE HELICAL_DSSP(SCORE,COORDS,MODE) 
771:      INTEGER, INTENT(IN) :: MODE                     !1 - alpha helix, 2 - 3-10 helix, 3 -pi 
772:      DOUBLE PRECISION, INTENT(IN) :: COORDS(3*NATOMS) 
773:      DOUBLE PRECISION, INTENT(OUT) :: SCORE 
774:      LOGICAL :: HBOND(NRESIDUES,NRESIDUES) 
775:      TYPE(AMBER12_ATOM) :: ATOMDATA(NATOMS) 
776:      TYPE(AMBER12_RESIDUE) :: RESDATA(NRESIDUES) 
777:      INTEGER :: J1, J2, J3, N_ID, H_ID, C_ID, O_ID 
778:      DOUBLE PRECISION :: R_ON, R_CH, R_OH, R_CN, NX(3), HX(3), CX(3), OX(3), EHBOND 
779:      INTEGER :: NIDEAL, NACTUAL, NOTHER 
780:  
781:      HBOND(:,:) = .FALSE. 
782:      CALL AMBER12_GET_ATOMDATA(ATOMDATA,NATOMS) 
783:      CALL AMBER12_GET_RESDATA(RESDATA,NRESIDUES) 
784:      !test for the existance of H bonds 
785:      !ignore terminal residues NH3+ and COO- 
786:      DO J1=2,NRESIDUES           !N-H 
787:        DO J2=1,NRESIDUES-1       !C-O 
788:          IF (.NOT.(J1.EQ.J2)) THEN 
789:            DO J3=RESDATA(J1)%START_INDEX,RESDATA(J1)%END_INDEX 
790:               IF (ATOMDATA(J3)%NAME.EQ.'N') N_ID = J3 
791:               IF (ATOMDATA(J3)%NAME.EQ.'H') H_ID = J3 
792:            END DO 
793:            DO J3=RESDATA(J1)%START_INDEX,RESDATA(J1)%END_INDEX 
794:               IF (ATOMDATA(J3)%NAME.EQ.'C') C_ID = J3 
795:               IF (ATOMDATA(J3)%NAME.EQ.'O') O_ID = J3 
796:            END DO 
797:            NX = (/ COORDS(3*N_ID-2),COORDS(3*N_ID-1),COORDS(3*N_ID) /) 
798:            HX = (/ COORDS(3*H_ID-2),COORDS(3*H_ID-1),COORDS(3*H_ID) /) 
799:            CX = (/ COORDS(3*C_ID-2),COORDS(3*C_ID-1),COORDS(3*C_ID) /) 
800:            OX = (/ COORDS(3*O_ID-2),COORDS(3*O_ID-1),COORDS(3*O_ID) /) 
801:            CALL DISTANCE(OX,NX,R_ON) 
802:            CALL DISTANCE(CX,HX,R_CH) 
803:            CALL DISTANCE(OX,HX,R_OH) 
804:            CALL DISTANCE(CX,NX,R_CN) 
805:            EHBOND = 0.084*332*(1/R_ON + 1/R_CH - 1/R_OH - 1/R_CH) 
806:            IF (EHBOND.LT.-0.5) HBOND(J1,J2) = .TRUE. 
807:          ENDIF 
808:        ENDDO 
809:      ENDDO 
810:      !check all entries to identify secondary structure patterns 
811:      NIDEAL = 0 
812:      NACTUAL = 0 
813:      NOTHER = 0 
814:      IF (MODE.EQ.1) THEN 
815:         NIDEAL = NRESIDUES - 4 
816:      ELSE IF (MODE.EQ.2) THEN 
817:         NIDEAL = NRESIDUES - 3 
818:      ELSE IF (MODE.EQ.3) THEN 
819:         NIDEAL = NRESIDUES - 5 
820:      ENDIF 
821:      DO J1=1,NRESIDUES 
822:        DO J2=1,NRESIDUES 
823:          IF (HBOND(J1,J2)) THEN 
824:            IF (MODE.EQ.1) THEN 
825:              IF ((J1-4).EQ.J2) THEN 
826:                 NACTUAL = NACTUAL + 1 
827:              ELSE 
828:                 NOTHER = NOTHER + 1 
829:              END IF 
830:            ELSE IF (MODE.EQ.2) THEN 
831:              IF ((J1-3).EQ.J2) THEN 
832:                 NACTUAL = NACTUAL + 1 
833:              ELSE 
834:                 NOTHER = NOTHER + 1 
835:              END IF 
836:            ELSE IF (MODE.EQ.3) THEN 
837:              IF ((J1-5).EQ.J2) THEN 
838:                 NACTUAL = NACTUAL + 1 
839:              ELSE 
840:                 NOTHER = NOTHER 
841:              END IF 
842:            END IF 
843:          END IF 
844:        ENDDO 
845:      ENDDO 
846:      SCORE = (NACTUAL - NOTHER)/NIDEAL  
847:   END SUBROUTINE HELICAL_DSSP 
848:  
849:   SUBROUTINE MUT_SETUP_GROUPROTATION(GROUPROTFREQ,GR_SCALEROT,GR_SCALEPROB,GROUPOFFSET)685:   SUBROUTINE MUT_SETUP_GROUPROTATION(GROUPROTFREQ,GR_SCALEROT,GR_SCALEPROB,GROUPOFFSET)
850:      INTEGER, INTENT(IN) :: GROUPROTFREQ , GROUPOFFSET686:      INTEGER, INTENT(IN) :: GROUPROTFREQ , GROUPOFFSET
851:      LOGICAL, INTENT(IN) :: GR_SCALEROT , GR_SCALEPROB687:      LOGICAL, INTENT(IN) :: GR_SCALEROT , GR_SCALEPROB
852:      INTEGER ::  GROUPSIZE , GROUPATOM , AXIS1 , AXIS2 , IOSTATUS, J1,J2688:      INTEGER ::  GROUPSIZE , GROUPATOM , AXIS1 , AXIS2 , IOSTATUS, J1,J2
853:      CHARACTER(LEN=10) :: CHECK1689:      CHARACTER(LEN=10) :: CHECK1
854:      LOGICAL :: YESNO690:      LOGICAL :: YESNO
855: 691: 
856:      !check we actually have a grouprotation file!692:      !check we actually have a grouprotation file!
857:      YESNO=.FALSE.693:      YESNO=.FALSE.
858:      INQUIRE(FILE='atomgroups',EXIST=YESNO)694:      INQUIRE(FILE='atomgroups',EXIST=YESNO)
1071:                 J2=J2+1907:                 J2=J2+1
1072:                 WORD=LINE(START_IND:END_IND)908:                 WORD=LINE(START_IND:END_IND)
1073:                 WORDSOUT(J2)=TRIM(WORD)909:                 WORDSOUT(J2)=TRIM(WORD)
1074:                 START_IND=0910:                 START_IND=0
1075:                 END_IND=0911:                 END_IND=0
1076:              ENDIF912:              ENDIF
1077:           ENDIF913:           ENDIF
1078:           J1=J1+1914:           J1=J1+1
1079:       ENDDO915:       ENDDO
1080:   END SUBROUTINE READ_LINE916:   END SUBROUTINE READ_LINE
1081:   
1082:   SUBROUTINE DISTANCE(A1,A2,DIST) 
1083:      DOUBLE PRECISION, INTENT(IN) :: A1(3), A2(3) 
1084:      DOUBLE PRECISION, INTENT(OUT) :: DIST 
1085:  
1086:      DIST = SQRT((A1(1)-A2(1))**2+(A1(2)-A2(2))**2+(A1(3)-A2(3))**2) 
1087:   END SUBROUTINE DISTANCE 
1088: 917: 
1089: END MODULE AMBER12_MUTATIONS918: END MODULE AMBER12_MUTATIONS


r33351/key.f90 2017-09-25 17:30:13.287855522 +0100 r33350/key.f90 2017-09-25 17:30:14.555869417 +0100
318:       INTEGER :: MIEF_NSITES,MIEF_N,MIEF_M318:       INTEGER :: MIEF_NSITES,MIEF_N,MIEF_M
319:       DOUBLE PRECISION :: MIEF_BOX(3), MIEF_RCUT319:       DOUBLE PRECISION :: MIEF_BOX(3), MIEF_RCUT
320:       DOUBLE PRECISION, ALLOCATABLE :: MIEF_EPS(:), MIEF_SIG(:), &320:       DOUBLE PRECISION, ALLOCATABLE :: MIEF_EPS(:), MIEF_SIG(:), &
321:            MIEF_SITES(:,:), MIEF_U_RCUT(:), MIEF_DUDR_RCUT(:)321:            MIEF_SITES(:,:), MIEF_U_RCUT(:), MIEF_DUDR_RCUT(:)
322:       322:       
323:       DOUBLE PRECISION, ALLOCATABLE ::  QCIXYZ(:)323:       DOUBLE PRECISION, ALLOCATABLE ::  QCIXYZ(:)
324: ! AMBER 12 variables324: ! AMBER 12 variables
325:       LOGICAL :: AMBER12T325:       LOGICAL :: AMBER12T
326:       LOGICAL :: CHIRALENDPOINTS326:       LOGICAL :: CHIRALENDPOINTS
327:       INTEGER, DIMENSION(:,:), ALLOCATABLE :: BONDS327:       INTEGER, DIMENSION(:,:), ALLOCATABLE :: BONDS
328:       INTEGER, DIMENSION(:), ALLOCATABLE :: ATOMSTORES 
329: 328: 
330:       DOUBLE PRECISION, ALLOCATABLE ::  MLPDAT(:,:)329:       DOUBLE PRECISION, ALLOCATABLE ::  MLPDAT(:,:)
331:       INTEGER, ALLOCATABLE ::  MLPOUTCOME(:)330:       INTEGER, ALLOCATABLE ::  MLPOUTCOME(:)
332:       DOUBLE PRECISION, ALLOCATABLE ::  MLQDAT(:,:)331:       DOUBLE PRECISION, ALLOCATABLE ::  MLQDAT(:,:)
333:       INTEGER, ALLOCATABLE ::  MLQOUTCOME(:)332:       INTEGER, ALLOCATABLE ::  MLQOUTCOME(:)
334:       INTEGER, ALLOCATABLE ::  LJADDNN(:,:)333:       INTEGER, ALLOCATABLE ::  LJADDNN(:,:)
335: 334: 
336: ! OPEP variables335: ! OPEP variables
337:       LOGICAL :: OPEPT, OPEP_RNAT336:       LOGICAL :: OPEPT, OPEP_RNAT
338: 337: 


r33351/keywords.f 2017-09-25 17:30:13.547858373 +0100 r33350/keywords.f 2017-09-25 17:30:14.815872265 +0100
 58:          USE BGUPMOD 58:          USE BGUPMOD
 59:          ! hk286 59:          ! hk286
 60:          USE GENRIGID 60:          USE GENRIGID
 61:          USE MULTIPOT 61:          USE MULTIPOT
 62:          ! includes toggle for switching frames - required for RBAA 62:          ! includes toggle for switching frames - required for RBAA
 63:          USE MODHESS, ONLY : RBAANORMALMODET 63:          USE MODHESS, ONLY : RBAANORMALMODET
 64:          ! jdf43> for MMEINITWRAPPER 64:          ! jdf43> for MMEINITWRAPPER
 65:          USE ISO_C_BINDING, ONLY: C_NULL_CHAR 65:          USE ISO_C_BINDING, ONLY: C_NULL_CHAR
 66: ! AMBER12 66: ! AMBER12
 67:          USE AMBER12_INTERFACE_MOD, ONLY: AMBER12_ATOM, AMBER12_RESIDUE, AMBER12_ATOMS, 67:          USE AMBER12_INTERFACE_MOD, ONLY: AMBER12_ATOM, AMBER12_RESIDUE, AMBER12_ATOMS,
 68:      &                                    AMBER12_RESIDUES, AMBER12_GET_COORDS, AMBER12_ATOMSTORES 68:      &                                    AMBER12_RESIDUES, AMBER12_GET_COORDS
 69:          USE CHIRALITY 69:          USE CHIRALITY
 70:          USE OPEP_INTERFACE_MOD, ONLY : OPEP_INIT 70:          USE OPEP_INTERFACE_MOD, ONLY : OPEP_INIT
 71:          USE ORBITALS_MOD, ONLY: ORBITALS_INIT 71:          USE ORBITALS_MOD, ONLY: ORBITALS_INIT
 72:          use sandbox_module, only : num_atoms 72:          use sandbox_module, only : num_atoms
 73:  73: 
 74:          IMPLICIT NONE 74:          IMPLICIT NONE
 75:  75: 
 76:          DOUBLE PRECISION ::  Q(3*NATOMS) 76:          DOUBLE PRECISION ::  Q(3*NATOMS)
 77:  77: 
 78:          INTEGER NDUM, LUNIT, FUNIT, GETUNIT, MLPDATSTART, MLQDATSTART, NTYEPA 78:          INTEGER NDUM, LUNIT, FUNIT, GETUNIT, MLPDATSTART, MLQDATSTART, NTYEPA
1290:             IF (DUMMY_FRQCONV .EQ. 0.0D0) THEN1290:             IF (DUMMY_FRQCONV .EQ. 0.0D0) THEN
1291:                 FRQCONV = 2.045483D131291:                 FRQCONV = 2.045483D13
1292:                 WRITE(*,*) "keywords> Set frequency conversion factor to the AMBER default value: ", FRQCONV1292:                 WRITE(*,*) "keywords> Set frequency conversion factor to the AMBER default value: ", FRQCONV
1293:                 WRITE(*,*) "keywords> This corresponds to frequencies being given in radians/s"1293:                 WRITE(*,*) "keywords> This corresponds to frequencies being given in radians/s"
1294:             ELSE1294:             ELSE
1295:                 FRQCONV = DUMMY_FRQCONV1295:                 FRQCONV = DUMMY_FRQCONV
1296:                 WRITE(*,*) "keywords> Set frequency conversion factor to the user-specified value: ", FRQCONV1296:                 WRITE(*,*) "keywords> Set frequency conversion factor to the user-specified value: ", FRQCONV
1297:             ENDIF1297:             ENDIF
1298:             FRQCONV2 = FRQCONV*FRQCONV1298:             FRQCONV2 = FRQCONV*FRQCONV
1299: 1299: 
1300:             ALLOCATE(ATOMSTORES(NATOMS)) 
1301:             CALL AMBER12_ATOMSTORES(ATOMSTORES,NATOMS) 
1302:  
1303:             WRITE (*,'(A)') 'Warning: AMBER12 keyword must come last in odata'1300:             WRITE (*,'(A)') 'Warning: AMBER12 keyword must come last in odata'
1304:             RETURN1301:             RETURN
1305: 1302: 
1306: ! sf344> start of AMBER 9 keywords1303: ! sf344> start of AMBER 9 keywords
1307:          ELSE IF (WORD.EQ.'AMBER9') THEN1304:          ELSE IF (WORD.EQ.'AMBER9') THEN
1308:             AMBERT=.TRUE.1305:             AMBERT=.TRUE.
1309: ! jmc49> make sure that chirality and cis/trans isomerization checks are on by default1306: ! jmc49> make sure that chirality and cis/trans isomerization checks are on by default
1310:             IF (.NOT.TURNOFFCHECKCHIRALITY) CHECKCHIRALT=.TRUE.1307:             IF (.NOT.TURNOFFCHECKCHIRALITY) CHECKCHIRALT=.TRUE.
1311:             IF (.NOT.CISTRANS) NOCISTRANS=.TRUE.1308:             IF (.NOT.CISTRANS) NOCISTRANS=.TRUE.
1312: ! 1309: ! 


legend
Lines Added 
Lines changed
 Lines Removed

hdiff - version: 2.1.0