hdiff output

r10131/amber9dummy.f90 2017-01-21 10:39:52.946577476 +0000 r10130/amber9dummy.f90 2017-01-21 10:39:57.538845389 +0000
 59: implicit none 59: implicit none
 60:  60: 
 61: character       :: prmtop 61: character       :: prmtop
 62: integer         :: igb 62: integer         :: igb
 63: double precision :: saltcon,rgbmax,cut 63: double precision :: saltcon,rgbmax,cut
 64:  64: 
 65: END SUBROUTINE MMEINITWRAPPER 65: END SUBROUTINE MMEINITWRAPPER
 66:  66: 
 67: MODULE MODAMBER9 67: MODULE MODAMBER9
 68:  68: 
 69: LOGICAL NOCISTRANSRNA, GOODSTRUCTURE1, GOODSTRUCTURE2, CHECKCISTRANSALWAYS 69: LOGICAL NOCISTRANSRNA, GOODSTRUCTURE1, GOODSTRUCTURE2
 70: CHARACTER(LEN=80) amberstr,amberstr1,inpcrd, prmtop 70: CHARACTER(LEN=80) amberstr,amberstr1,inpcrd, prmtop
 71: DOUBLE PRECISION saltcon, cut,rgbmax 71: DOUBLE PRECISION saltcon, cut,rgbmax
 72: INTEGER m04,igb,NRESPA2, IRESPA2, ifswitch, irespa 72: INTEGER m04,igb,NRESPA2, IRESPA2, ifswitch, irespa
 73: INTEGER, dimension(:), ALLOCATABLE :: cisarray1, cisarray2 
 74: DOUBLE PRECISION, ALLOCATABLE :: atmass1(:), COORDS1(:) 73: DOUBLE PRECISION, ALLOCATABLE :: atmass1(:), COORDS1(:)
 75: CHARACTER(LEN=5), ALLOCATABLE :: ih(:) 74: CHARACTER(LEN=5), ALLOCATABLE :: ih(:)
 76:  75: 
 77: END MODULE MODAMBER9 76: END MODULE MODAMBER9
 78:  
 79: SUBROUTINE CHECK_CISTRANS_PROTEIN(coords,natoms,goodstructure,minomega,cisarray) 
 80: implicit none 
 81:  
 82: ! stuff for detecting cis-trans isomerisation of omega angles in peptide bonds 
 83: logical,intent(out) :: goodstructure 
 84: integer,intent(in) :: natoms 
 85: double precision,intent(in) :: coords(3*natoms),minomega 
 86: integer :: cisarray(natoms) 
 87:  
 88: END SUBROUTINE CHECK_CISTRANS_PROTEIN 
 89:  
 90: subroutine check_chirality(coords,natoms,goodstructure) 
 91: implicit none 
 92:  
 93: integer,intent(in) :: natoms 
 94: double precision,intent(in) :: coords(3*natoms) 
 95: logical :: goodstructure 
 96: end subroutine check_chirality 


r10131/amberinterface.f 2017-01-21 10:39:50.126410697 +0000 r10130/amberinterface.f 2017-01-21 10:39:55.246712226 +0000
103:       write(MYUNITNEW,'(a,5x,a,i14)') '|', 'Integer   ', lasti103:       write(MYUNITNEW,'(a,5x,a,i14)') '|', 'Integer   ', lasti
104:       write(MYUNITNEW,'(a,5x,a,i14)') '|', 'Max Pairs ', lastpr104:       write(MYUNITNEW,'(a,5x,a,i14)') '|', 'Max Pairs ', lastpr
105: end if105: end if
106:       !     --- dynamic memory allocation:106:       !     --- dynamic memory allocation:
107: 107: 
108: ! sf344> inserted if(.not.allocated())108: ! sf344> inserted if(.not.allocated())
109:       if(.not.allocated(x)) allocate(x(lastr), stat = ier)109:       if(.not.allocated(x)) allocate(x(lastr), stat = ier)
110:       if(.not.allocated(ix)) allocate(ix(lasti), stat = ier)110:       if(.not.allocated(ix)) allocate(ix(lasti), stat = ier)
111:       if(.not.allocated(ipairs)) allocate(ipairs(lastpr), stat = ier)111:       if(.not.allocated(ipairs)) allocate(ipairs(lastpr), stat = ier)
112:       if(.not.allocated(ih)) allocate(ih(lasth), stat = ier)112:       if(.not.allocated(ih)) allocate(ih(lasth), stat = ier)
113:       if(.not.allocated(cisarray1)) allocate(cisarray1(natom), stat = ier) 
114:       if(.not.allocated(cisarray2)) allocate(cisarray2(natom), stat = ier) 
115: 113: 
116:       if(igb /= 0 .and. igb /= 10 .and. ncalls == 2) call allocate_gb( natom, ncopy )114:       if(igb /= 0 .and. igb /= 10 .and. ncalls == 2) call allocate_gb( natom, ncopy )
117: 115: 
118:       if( idecomp > 0 .and. ncalls == 2) then116:       if( idecomp > 0 .and. ncalls == 2) then
119:          call allocate_int_decomp(natom, nres)117:          call allocate_int_decomp(natom, nres)
120:       else if (ncalls == 2) then118:       else if (ncalls == 2) then
121:          call allocate_int_decomp(1, 1)119:          call allocate_int_decomp(1, 1)
122:       endif120:       endif
123:      121: 
124: IF(ncalls==1) GOTO 999122: IF(ncalls==1) GOTO 999
125: if(master) then123: if(master) then
126:       write(MYUNITNEW,'(a,5x,a,i14)') '|', 'nblistReal', nblist_allreal124:       write(MYUNITNEW,'(a,5x,a,i14)') '|', 'nblistReal', nblist_allreal
127:       write(MYUNITNEW,'(a,5x,a,i14)') '|', 'nblist Int', nblist_allint125:       write(MYUNITNEW,'(a,5x,a,i14)') '|', 'nblist Int', nblist_allint
128:       write(MYUNITNEW,'(a,5x,a,i14,a)') '|', '  Total   ', &126:       write(MYUNITNEW,'(a,5x,a,i14,a)') '|', '  Total   ', &
129:             (8*(lastr+lastrst+nblist_allreal)  &127:             (8*(lastr+lastrst+nblist_allreal)  &
130:            + 4*(lasth+lasti+lastpr+lastist+nblist_allint))/1024, &128:            + 4*(lasth+lasti+lastpr+lastist+nblist_allint))/1024, &
131:            ' kbytes'129:            ' kbytes'
132: end if130: end if
133:       !        --- finish reading the prmtop file and other user input:131:       !        --- finish reading the prmtop file and other user input:
168:       end if166:       end if
169: 167: 
170:       if (ntp > 0.and.iabs(ntb) /= 2) then168:       if (ntp > 0.and.iabs(ntb) /= 2) then
171:          write(MYUNITNEW,*) 'Input of NTP/NTB inconsistent'169:          write(MYUNITNEW,*) 'Input of NTP/NTB inconsistent'
172:          call mexit(MYUNITNEW, 1)170:          call mexit(MYUNITNEW, 1)
173:       end if171:       end if
174: 172: 
175:       !        ----- READ COORDINATES AND VELOCITIES -----173:       !        ----- READ COORDINATES AND VELOCITIES -----
176: 174: 
177: 175: 
178:       call AMOEBA_check_newstyle_inpcrd(trim(adjustl(inpcrd)),newstyle)176:       call AMOEBA_check_newstyle_inpcrd(inpcrd,newstyle)
179:       if ( newstyle )then177:       if ( newstyle )then
180:          call AM_RUNMD_get_coords(natom,t,irest,ntb,x(lcrd),x(lvel))178:          call AM_RUNMD_get_coords(natom,t,irest,ntb,x(lcrd),x(lvel))
181:       else179:       else
182:          call getcor(nr,x(lcrd),x(lvel),x(lforce),ntx,box,irest,t,temp0,.TRUE.)180:          call getcor(nr,x(lcrd),x(lvel),x(lforce),ntx,box,irest,t,temp0,.TRUE.)
183:       endif181:       endif
184: 182: 
185: 183: 
186:       if( igb == 0 .and. induced == 1 ) call get_dips(x,nr)184:       if( igb == 0 .and. induced == 1 ) call get_dips(x,nr)
187: 185: 
188:       !        ----- SET THE INITIAL VELOCITIES -----186:       !        ----- SET THE INITIAL VELOCITIES -----
968: !            goodstructure(k)=.false.966: !            goodstructure(k)=.false.
969: !        end if967: !        end if
970:        end if968:        end if
971:       end do969:       end do
972:         if (goodstructure) then970:         if (goodstructure) then
973:             write(MYUNITNEW,'(A)') 'structure OK'971:             write(MYUNITNEW,'(A)') 'structure OK'
974:         end if972:         end if
975: 973: 
976: end subroutine check_cistrans_rna974: end subroutine check_cistrans_rna
977: 975: 
978: subroutine check_cistrans_protein(coords,natoms,goodstructure,minomega,cisarray) 
979: use modamber9,only : myunitnew,i02,m02,m04,ih,ix 
980: implicit none 
981:  
982: ! stuff for detecting cis-trans isomerisation of omega angles in peptide bonds  
983: logical,intent(out) :: goodstructure 
984: integer,intent(in) :: natoms 
985: double precision,intent(in) :: coords(3*natoms),minomega 
986: integer :: i,i1,j,dihed(1,4),currentresidue,resnumber 
987: double precision :: angle(4) 
988: integer :: cisarray(natoms) 
989:  
990:  
991: currentresidue=1 
992: resnumber = 1 
993: dihed(:,:) = 0 
994: angle(:) = 0.0D0 
995: goodstructure=.true. 
996: cisarray(:)=0 
997: DO i1=1,natoms 
998:  
999:  IF(ix(resnumber+i02-1)==i1) THEN 
1000:     currentresidue=resnumber 
1001:     resnumber = resnumber + 1 
1002:  END IF 
1003:  
1004:  IF(ih(m04+i1-1)=='C   '.and.ih(m04+i1)=='O   '.and.ih(m04+i1+1)=='N   '.and.ih(m04+i1+2)=='H   ') THEN 
1005:       dihed(1,2)=i1 
1006:  ELSE IF(ih(m04+i1-1)=='O   '.and.ih(m04+i1-2)=='C   '.and.ih(m04+i1)=='N   '.and.ih(m04+i1+1)=='H   ') THEN 
1007:       dihed(1,1)=i1 
1008:  ELSE IF     (ih(m04+i1-1)=='N   '.and.ih(m04+i1-2)=='O   '.and.ih(m04+i1-3)=='C   '.and.ih(m04+i1)=='H   ') THEN 
1009:       dihed(1,3)=i1 
1010:  ELSE IF((ih(m04+i1-1)=='H   '.OR.ih(m04+i1-1)=='CD  ').AND.& 
1011:         & ih(m04+i1-2)=='N   '.AND.ih(m04+i1-3)=='O   '.AND.ih(m04+i1-4)=='C   ') THEN  
1012: ! this is the last atom in one peptide bond in the topology file, so now 
1013:                                     ! we can calculate the dihedral 
1014:         dihed(1,4)=i1 
1015: !        write(*,*) dihed(1,:) 
1016:         call calc_dihedral(dihed(1,:),angle(1),coords,natoms) 
1017: !        currentresidue=currentresidue+1 
1018:         IF(abs(angle(1))<MINOMEGA.and.& 
1019: &               .not.(ih(currentresidue-1+m02-1)=='PRO '.or.ih(currentresidue+m02-1)=='PRO ')) THEN  
1020:          goodstructure=.false. 
1021:          cisarray(i1)=1 
1022:          WRITE(MYUNITNEW,'(A,2I6)') 'check_cistrans_protein> WARNING -- cis (or deformed) peptide bond detected between residues ', & 
1023:                 & currentresidue-1, currentresidue 
1024:         END IF 
1025:  
1026: !         WRITE(*,*) currentresidue-1,ih(currentresidue-1+m02-1), angle(1), minomega 
1027:  END IF 
1028:  
1029: END DO 
1030: end subroutine check_cistrans_protein 
1031:  
1032: subroutine check_chirality(coords,natoms,goodstructure) 
1033: use modamber9,only : myunitnew,i02,m02,m04,ih,ix 
1034: implicit none 
1035:  
1036: integer,intent(in) :: natoms 
1037: double precision,intent(in) :: coords(3*natoms) 
1038: integer :: i,i1,j,dihed(3,4),currentresidue,resnumber 
1039: double precision :: angle(4) 
1040: logical :: goodstructure 
1041:  
1042: currentresidue=0 
1043: dihed(:,:) = 0 
1044: angle(:) = 0.0D0 
1045: goodstructure=.true. 
1046: DO i1=1,natoms 
1047: !write(*,*) i1 
1048: !write(i1char,'(I10)') i1 
1049: !    resnumber = currentresidue 
1050:  IF(i1==1) THEN 
1051:     resnumber=1 
1052:  END IF 
1053:  
1054: ! now working within one residue 
1055:  
1056:  IF(ix(resnumber+i02-1)==i1) THEN 
1057:     currentresidue=resnumber 
1058:     resnumber = resnumber + 1 
1059: ! should now be at the next residue, so we can calculate the dihedrals accummulated beforehand 
1060:   IF(i1>1) THEN 
1061:     IF(ih(currentresidue-1+m02-1)=='GLY '.OR.ih(currentresidue-1+m02-1)=='NLGY' & 
1062:         & .OR.ih(currentresidue-1+m02-1)=='CGLY'.OR.dihed(1,1)==0) THEN 
1063: !       skip, GLY C alpha is prochiral only, also skip for non-aminoacid residues 
1064:     ELSE 
1065:         call calc_dihedral(dihed(1,:),angle(1),coords,natoms) 
1066:      IF(ih(currentresidue-1+m02-1)=='ILE '.OR.ih(currentresidue-1+m02-1)=='CILE'.OR.ih(currentresidue-1+m02-1)=='NILE') THEN 
1067:         call calc_dihedral(dihed(2,:),angle(2),coords,natoms) 
1068:      ELSE IF(ih(currentresidue-1+m02-1)=='THR '.OR.ih(currentresidue-1+m02-1)=='CTHR'.OR.ih(currentresidue-1+m02-1)=='NTHR') THEN 
1069:         call calc_dihedral(dihed(3,:),angle(3),coords,natoms) 
1070:      END IF 
1071:        
1072:       DO i=1,3 
1073:         IF(angle(i)<0.0D0) THEN  
1074:          goodstructure=.false. 
1075:          WRITE(MYUNITNEW,'(A,I6)') 'check_chirality> ERROR -- inverted chiral carbon detected in residue ', currentresidue-1 
1076:         END IF 
1077:       END DO 
1078: !     WRITE(*,*) 'dihedrals:' 
1079: !     WRITE(*,*) currentresidue-1,ih(currentresidue-1+m02-1), angle(1) 
1080:      dihed(:,:) = 0 
1081:      angle(:) = 0.0D0 
1082:     END IF 
1083:   END IF  
1084:  END IF 
1085: !write(*,*) ih(m04+i1-1) 
1086: ! alpha carbon chirality  
1087:  IF     (ih(m04+i1-1)=='N   ') THEN 
1088:         dihed(1,1)=i1 
1089:  ELSE IF(ih(m04+i1-1)=='C   ') THEN 
1090:         dihed(1,2)=i1 
1091:  ELSE IF(ih(m04+i1-1)=='HA  ') THEN 
1092:         dihed(1,3)=i1 
1093:  ELSE IF(ih(m04+i1-1)=='CB  ') THEN 
1094:         dihed(1,4)=i1 
1095: ! isoleucine sidechain chiral carbon 
1096:  ELSE IF(ih(m04+i1-1)=='CA  ') THEN 
1097:         dihed(2,1)=i1 
1098:         dihed(3,1)=i1   ! threonine dihedral also contains CA, HB and CG2!!! 
1099:  ELSE IF(ih(m04+i1-1)=='CG2 ') THEN 
1100:         dihed(2,2)=i1 
1101:         dihed(3,2)=i1 
1102:  ELSE IF(ih(m04+i1-1)=='CG1 ') THEN 
1103:         dihed(2,3)=i1 
1104:  ELSE IF(ih(m04+i1-1)=='HB  ') THEN 
1105:         dihed(2,4)=i1 
1106:         dihed(3,4)=i1 
1107:  
1108: ! threonine sidechain chiral carbon 
1109:  ELSE IF(ih(m04+i1-1)=='OG1 ') THEN 
1110:         dihed(3,3)=i1 
1111:  END IF 
1112:  
1113:  
1114: !        write(100,'(A6,I5,1X,A4,A1,A3,1X,A1,I4,A1,3X,3F8.3,F6.2,1X,F6.2,1X,A1)') 'ATOM  ',i1, & 
1115: !&       ih(m04+i1-1),' ', ih(currentresidue+m02-1), 'A', currentresidue, ' ', & 
1116: !&       x(lcrd+3*i1-3),x(lcrd+3*i1-2),x(lcrd+3*i1-1), 1.0, 1.0, ih(m04+i1-1) 
1117: ! IF(trim(adjustl(ih(m04+i1-1)))=='OXT') THEN 
1118: !        write(100,'(A3)') 'TER' 
1119: ! END IF 
1120: !write(MYUNITNEW,*) ix(resnumber+i02-1), i1char 
1121: END DO 
1122:  
1123: end subroutine check_chirality 
1124:  
1125: subroutine calc_distance(i,j,distance,coords,natoms)976: subroutine calc_distance(i,j,distance,coords,natoms)
1126: 977: 
1127: implicit none978: implicit none
1128: 979: 
1129: integer natoms,i,j980: integer natoms,i,j
1130: double precision coords(3*natoms),distance981: double precision coords(3*natoms),distance
1131: 982: 
1132: distance=sqrt((coords(3*i-2)-coords(3*j-2))**2+(coords(3*i-1)-coords(3*j-1))**2+(coords(3*i)-coords(3*j))**2)983: distance=sqrt((coords(3*i-2)-coords(3*j-2))**2+(coords(3*i-1)-coords(3*j-1))**2+(coords(3*i)-coords(3*j))**2)
1133: 984: 
1134: end subroutine calc_distance985: end subroutine calc_distance
1135: 986: 
1136: subroutine calc_dihedral(atoms,angle,coords,natoms) 
1137:  
1138: implicit none 
1139:  
1140: integer i,j,natoms,atoms(4) 
1141: double precision x(4),y(4),z(4),angle,P,Q,d(4,4),sd(4,4),pi,coords(3*natoms),cos_phi,sin_phi 
1142:  
1143: double precision :: r(4,3),p1(3),p2(3),cross1,absr2,absp1,absp2,crossp2p1(3),rij(3),rkj(3),rkl(3) 
1144: double precision :: crossrijrkj(3),crossrkjrkl(3),crosscross(3) 
1145:  
1146:  
1147:  
1148: pi=4.0D0*atan(1.0D0) 
1149: do i=1,4 
1150:         r(i,1)=coords(3*atoms(i)-2) 
1151:         r(i,2)=coords(3*atoms(i)-1) 
1152:         r(i,3)=coords(3*atoms(i)  ) 
1153: !write(*,*) x(i),y(i),z(i) 
1154: end do 
1155:  
1156: rij(:) = r(1,:)-r(2,:) 
1157: rkj(:) = r(3,:)-r(2,:) 
1158: rkl(:) = r(3,:)-r(4,:) 
1159:  
1160: !ABSR2=SQRT(R(2,1)**2+R(2,2)**2+R(2,3)**2) 
1161: !CALL cross2(r(1,:),r(2,:),p1) 
1162: !CALL cross2(r(2,:),r(3,:),p2) 
1163:  
1164: !ABSP1=SQRT(p1(1)**2+p1(2)**2+p1(3)**2) 
1165: !ABSP2=SQRT(p2(1)**2+p2(2)**2+p2(3)**2) 
1166: !CALL cross2(p2,p1,crossp2p1) 
1167: !cos_phi = DOT_PRODUCT(p1,p2) 
1168: !sin_phi = DOT_PRODUCT(r(2,:),crossp2p1)/ABSR2 
1169:  
1170: CALL cross2(rij,rkj,crossrijrkj) 
1171: CALL cross2(rkj,rkl,crossrkjrkl) 
1172: CALL cross2(crossrijrkj,crossrkjrkl,crosscross) 
1173:  
1174: do i=1,4 
1175:         x(i)=coords(3*atoms(i)-2) 
1176:         y(i)=coords(3*atoms(i)-1) 
1177:         z(i)=coords(3*atoms(i)  ) 
1178: !write(*,*) x(i),y(i),z(i) 
1179: end do 
1180: do i=1,4 
1181:  do j=i+1,4 
1182:         sd(i,j)=(x(i)-x(j))**2+(y(i)-y(j))**2+(z(i)-z(j))**2 
1183:          d(i,j)=SQRT(sd(i,j)) 
1184:  end do 
1185: end do 
1186:  
1187:        P = sd(1,2)*( sd(2,3)+sd(3,4)-sd(2,4)) + & 
1188:          & sd(2,3)*(-sd(2,3)+sd(3,4)+sd(2,4)) + & 
1189:          & sd(1,3)*( sd(2,3)-sd(3,4)+sd(2,4)) - & 
1190:          & 2.0D0*sd(2,3)*sd(1,4) 
1191:        Q = ( d(1,2)+d(2,3)+d(1,3))*( d(1,2)+d(2,3)-d(1,3))* & 
1192:          & ( d(1,2)-d(2,3)+d(1,3))*(-d(1,2)+d(2,3)+d(1,3))* & 
1193:          & ( d(2,3)+d(3,4)+d(2,4))*( d(2,3)+d(3,4)-d(2,4))* & 
1194:          & ( d(2,3)-d(3,4)+d(2,4))*(-d(2,3)+d(3,4)+d(2,4)) 
1195: !write(*,*) P,Q 
1196: !write(*,*) d(1,2),d(1,3),d(1,4) 
1197: !write(*,*) d(2,3),d(2,4),d(3,4) 
1198:       if(Q/=0.0D0) then 
1199:         cos_phi=P/SQRT(Q) 
1200:         angle=ACOS(cos_phi) 
1201:         angle=angle*sign(1.0D0,DOT_PRODUCT(rkj,crosscross)) 
1202:  
1203: !        angle=acos(cos_phi) 
1204:         angle=angle*180.0D0/pi 
1205: !        write(*,*) 'calculated dihedral angle is', angle 
1206:       else 
1207:         write(*,*) 'ERROR - Q is 0! Are three atoms on the same line by any chance?' 
1208:         STOP 
1209:       end if 
1210:  
1211: end subroutine calc_dihedral 
1212:  
1213:  
1214:  subroutine cross2(u,v,p) 
1215:  implicit none 
1216:  double precision :: u(3),v(3),p(3) 
1217:   
1218:  p(1) = u(2)*v(3) - u(3)*v(2) 
1219:  p(2) = u(3)*v(1) - u(1)*v(3) 
1220:  p(3) = u(1)*v(2) - u(2)*v(1) 
1221:  
1222:  end subroutine cross2 
1223:  
1224: subroutine amber_deallocate_stacks() 
1225: use stack 
1226: implicit none 
1227: ! this is a fix for the $&*&£ NAG compiler (GMIN compilation), it was not able to see the module stack from libamber.a!!! 
1228:         call deallocate_stacks 
1229:  
1230: end subroutine amber_deallocate_stacks 


r10131/connect.f 2017-01-21 10:39:53.294597923 +0000 r10130/connect.f 2017-01-21 10:39:57.774859049 +0000
962: C     IF (ZSYMSAVE(1:1).EQ.'W') IMUL=3   !  WCOMMENT962: C     IF (ZSYMSAVE(1:1).EQ.'W') IMUL=3   !  WCOMMENT
963:       IF (ZSYMSAVE(1:1).EQ.'W') THEN963:       IF (ZSYMSAVE(1:1).EQ.'W') THEN
964:          NATOMSIMUL=(NATOMS/2)*3  !  number of atoms for water964:          NATOMSIMUL=(NATOMS/2)*3  !  number of atoms for water
965:          ALLOCATE(COORDS(9*(NATOMS/2)),PCOORDS(9*(NATOMS/2)),QW(9*(NATOMS/2)),ZSYML(3*(NATOMS/2)))965:          ALLOCATE(COORDS(9*(NATOMS/2)),PCOORDS(9*(NATOMS/2)),QW(9*(NATOMS/2)),ZSYML(3*(NATOMS/2)))
966:       ELSE966:       ELSE
967:          NATOMSIMUL=NATOMS967:          NATOMSIMUL=NATOMS
968:          ALLOCATE(COORDS(3*NATOMS),PCOORDS(3*NATOMS),ZSYML(NATOMS))968:          ALLOCATE(COORDS(3*NATOMS),PCOORDS(3*NATOMS),ZSYML(NATOMS))
969:          IF (UNRST) ALLOCATE(PEPCOORDS(3*NATOMS))969:          IF (UNRST) ALLOCATE(PEPCOORDS(3*NATOMS))
970:       ENDIF970:       ENDIF
971: 971: 
 972:       PRINT '(A)',' in connect !'
 973: 
972:       WRITE(*,'(A)') 'Connected path found'974:       WRITE(*,'(A)') 'Connected path found'
973:       WRITE(*,'(A)')975:       WRITE(*,'(A)')
974:      1'  ts        E+         Ets - E+          Ets       Ets - E-          E-          S       D' //976:      1'  ts        E+         Ets - E+          Ets       Ets - E-          E-          S       D' //
975:      2 '      gamma   ~N'977:      2 '      gamma   ~N'
976:       IF (FILTH.EQ.0) THEN 978:       IF (FILTH.EQ.0) THEN 
977:          WRITE(ITSTRING,  '(A8)') 'path.xyz'979:          WRITE(ITSTRING,  '(A8)') 'path.xyz'
978:          IF (UNRST) WRITE(ITSTRING3,  '(A12)') 'path.unr.xyz'980:          IF (UNRST) WRITE(ITSTRING3,  '(A12)') 'path.unr.xyz'
979:          WRITE(EOFSSTRING,'(A4)')    'EofS'981:          WRITE(EOFSSTRING,'(A4)')    'EofS'
980:       ELSE982:       ELSE
981:          WRITE(ITSTRING,  '(A)') 'path.xyz.' // TRIM(ADJUSTL(FILTHSTR))983:          WRITE(ITSTRING,  '(A)') 'path.xyz.' // TRIM(ADJUSTL(FILTHSTR))
1165:          CLOSE(84)1167:          CLOSE(84)
1166:          CLOSE(85)1168:          CLOSE(85)
1167:          DO J2=1,3*NATOMSIMUL1169:          DO J2=1,3*NATOMSIMUL
1168:             PCOORDS(J2)=COORDS(J2)1170:             PCOORDS(J2)=COORDS(J2)
1169:          ENDDO1171:          ENDDO
1170:       ENDDO1172:       ENDDO
1171:       CLOSE(82)1173:       CLOSE(82)
1172:       CLOSE(83)1174:       CLOSE(83)
1173:       IF (UNRST) CLOSE(86)1175:       IF (UNRST) CLOSE(86)
1174: 1176: 
 1177:       PRINT '(A,L5)','In connect AMH=',AMH
1175:       IF (DUMPPATH) THEN1178:       IF (DUMPPATH) THEN
1176:          CLOSE(88) ! path.info was opened on unit 88 in keywords.f for DUMPALLPATHS1179:          CLOSE(88) ! path.info was opened on unit 88 in keywords.f for DUMPALLPATHS
1177:          IF (FILTH.EQ.0) THEN1180:          IF (FILTH.EQ.0) THEN
1178:             WRITE(PINFOSTRING,'(A9)') 'path.info'1181:             WRITE(PINFOSTRING,'(A9)') 'path.info'
1179:          ELSE1182:          ELSE
1180:             WRITE(PINFOSTRING,'(A)') 'path.info.'//TRIM(ADJUSTL(FILTHSTR))1183:             WRITE(PINFOSTRING,'(A)') 'path.info.'//TRIM(ADJUSTL(FILTHSTR))
1181:          ENDIF1184:          ENDIF
1182:          OPEN(UNIT=83,FILE=PINFOSTRING,STATUS='UNKNOWN')1185:          OPEN(UNIT=83,FILE=PINFOSTRING,STATUS='UNKNOWN')
1183:          DO J1=1,NMIN1186:          DO J1=1,NMIN
1184:             IF (CHRMMT) THEN1187:             IF (CHRMMT) THEN
1973: CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC1976: CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
1974: C1977: C
1975: C  Subroutine to incorporate new min-saddle-min triple into the path, or reject it.1978: C  Subroutine to incorporate new min-saddle-min triple into the path, or reject it.
1976: C1979: C
1977:       SUBROUTINE ADDMIN(JSTART,JFINISH,FIN,QPLUS,QSTART,Q,NATOMS,BULKT,NTS,NOPT,STPMAX,MXSTPSAVE,REVERSET,1980:       SUBROUTINE ADDMIN(JSTART,JFINISH,FIN,QPLUS,QSTART,Q,NATOMS,BULKT,NTS,NOPT,STPMAX,MXSTPSAVE,REVERSET,
1978:      1                  STOPFIRST,CON,WHICHTS,NMIN,QSAVE,MINFRQDONE,FSAVEMIN,GT10,TSUSED,EMIN,NIMAGE,NIMAGESAVE,1981:      1                  STOPFIRST,CON,WHICHTS,NMIN,QSAVE,MINFRQDONE,FSAVEMIN,GT10,TSUSED,EMIN,NIMAGE,NIMAGESAVE,
1979:      2                  FRQSPLUS,FRQSMINUS,PLUSEN,MINUSEN,NIMAGEMAX,JUSE,JREMOVE,TWOD,REDOPATH,QSAVETS,1982:      2                  FRQSPLUS,FRQSMINUS,PLUSEN,MINUSEN,NIMAGEMAX,JUSE,JREMOVE,TWOD,REDOPATH,QSAVETS,
1980:      3                  IGUESS,UNRST,PATHFAILT,BFGSTST,ITSTRING)1983:      3                  IGUESS,UNRST,PATHFAILT,BFGSTST,ITSTRING)
1981:       use porfuncs1984:       use porfuncs
1982:       USE MODCHARMM1985:       USE MODCHARMM
1983:       use modamber9, only : NOCISTRANSRNA,GOODSTRUCTURE1,GOODSTRUCTURE2,CISARRAY1,CISARRAY21986:       use modamber9, only : NOCISTRANSRNA,GOODSTRUCTURE1,GOODSTRUCTURE2
1984:       use commons, only : ZSYM1987:       use commons, only : ZSYM
1985:       USE KEY,ONLY : DEBUG, RIGIDBODY, EDIFFTOL, GEOMDIFFTOL, AMBERT, NABT1988:       USE KEY,ONLY : DEBUG, RIGIDBODY, EDIFFTOL, GEOMDIFFTOL, AMBERT, NABT
1986:       IMPLICIT NONE1989:       IMPLICIT NONE
1987:       DOUBLE PRECISION RMAT(3,3)1990:       DOUBLE PRECISION RMAT(3,3)
1988:       INTEGER NMAXMIN, J3, NLOST, J1, JUSE, NMAXTS, IGUESS1991:       INTEGER NMAXMIN, J3, NLOST, J1, JUSE, NMAXTS, IGUESS
1989:       PARAMETER (NMAXTS=1000,NMAXMIN=1001)1992:       PARAMETER (NMAXTS=1000,NMAXMIN=1001)
1990:       INTEGER JSTART,JFINISH,NATOMS,NTS,NOPT,WHICHTS(NMAXMIN),NMIN,J2,NIMAGE,NIMAGESAVE,MOVE(NMAXMIN),NIMAGEMAX,NTEMP,1993:       INTEGER JSTART,JFINISH,NATOMS,NTS,NOPT,WHICHTS(NMAXMIN),NMIN,J2,NIMAGE,NIMAGESAVE,MOVE(NMAXMIN),NIMAGEMAX,NTEMP,
1991:      1        JREMOVE, INVERT, INDEX(NATOMS)1994:      1        JREMOVE, INVERT, INDEX(NATOMS)
1992:       DOUBLE PRECISION FIN(3*NATOMS),QPLUS(3*NATOMS),Q(3*NATOMS),DISTPS,DISTPF,DISTMS,DISTMF,STPMAX(3*NATOMS),1995:       DOUBLE PRECISION FIN(3*NATOMS),QPLUS(3*NATOMS),Q(3*NATOMS),DISTPS,DISTPF,DISTMS,DISTMF,STPMAX(3*NATOMS),
1993:      1                 MXSTPSAVE,QSTART(3*NATOMS),QSAVE(3*NATOMS,NMAXMIN),FSAVEMIN(3*NATOMS,NMAXMIN),EMIN(NMAXMIN),1996:      1                 MXSTPSAVE,QSTART(3*NATOMS),QSAVE(3*NATOMS,NMAXMIN),FSAVEMIN(3*NATOMS,NMAXMIN),EMIN(NMAXMIN),
2001:       CHARACTER(LEN=*) ITSTRING2004:       CHARACTER(LEN=*) ITSTRING
2002:       COMMON /SYS/ ZSYMSAVE2005:       COMMON /SYS/ ZSYMSAVE
2003:       DOUBLE PRECISION STOPDISP2006:       DOUBLE PRECISION STOPDISP
2004:       LOGICAL STOPDISPT, SUCCESS2007:       LOGICAL STOPDISPT, SUCCESS
2005:       COMMON /STOPD/ STOPDISP, STOPDISPT2008:       COMMON /STOPD/ STOPDISP, STOPDISPT
2006: 2009: 
2007:       IF (CHRMMT.AND.NOCISTRANS) THEN2010:       IF (CHRMMT.AND.NOCISTRANS) THEN
2008:          CISTRANST=.FALSE.2011:          CISTRANST=.FALSE.
2009:          CALL CHECKCISTRANS(Q,QPLUS,CISTRANST)2012:          CALL CHECKCISTRANS(Q,QPLUS,CISTRANST)
2010:          IF (CISTRANST) THEN2013:          IF (CISTRANST) THEN
2011:             WRITE(*,*) ' connect> Cis-trans isomerisation detected, rejecting this min-sad-min insertion'2014:             WRITE(*,*) 'Cis-trans isomerisation detected, rejecting this min-sad-min insertion'
2012:             NTS=NTS-12015:             NTS=NTS-1
2013:             CALL TRYAGAIN(NATOMS,GUESSTST,TRYNEB,IGUESS,NGUESS,NIMAGE,NIMAGEMAX,NIMAGESAVE,2016:             CALL TRYAGAIN(NATOMS,GUESSTST,TRYNEB,IGUESS,NGUESS,NIMAGE,NIMAGEMAX,NIMAGESAVE,
2014:      1                   JREMOVE,NMIN,NOPT,QSAVE,CON,EMIN,WHICHTS,NMAXMIN,TSUSED,NMAXTS,REVERSET,STOPFIRST)2017:      1                   JREMOVE,NMIN,NOPT,QSAVE,CON,EMIN,WHICHTS,NMAXMIN,TSUSED,NMAXTS,REVERSET,STOPFIRST)
2015:             GT10=.TRUE.2018:             GT10=.TRUE.
2016:             RETURN2019:             RETURN
2017:          ENDIF2020:          ENDIF
2018:       ELSE IF ((AMBERT.OR.NABT).AND.NOCISTRANS) THEN2021:       ELSE IF ((AMBERT.OR.NABT).AND.NOCISTRANS) THEN
2019:         GOODSTRUCTURE1=.TRUE. 
2020:         IF(NOCISTRANSRNA) THEN2022:         IF(NOCISTRANSRNA) THEN
 2023:           CISTRANST=.FALSE.
2021:           CALL CHECK_CISTRANS_RNA(Q,NATOMS,ZSYM,GOODSTRUCTURE1)2024:           CALL CHECK_CISTRANS_RNA(Q,NATOMS,ZSYM,GOODSTRUCTURE1)
2022:           CALL CHECK_CISTRANS_RNA(QPLUS,NATOMS,ZSYM,GOODSTRUCTURE2)2025:           CALL CHECK_CISTRANS_RNA(QPLUS,NATOMS,ZSYM,GOODSTRUCTURE2)
2023:           IF(.NOT.GOODSTRUCTURE1.OR..NOT.GOODSTRUCTURE2) THEN2026:           IF(.NOT.GOODSTRUCTURE1.OR..NOT.GOODSTRUCTURE2) THEN
2024:            WRITE(*,*) ' connect> Cis-trans isomerisation detected in the RNA ring wrt. the original RNA ribose structure, rejecting'2027:             WRITE(*,*) 'Cis-trans isomerisation detected in the RNA ring wrt. the original RNA ribose structure, rejecting'
2025:             NTS=NTS-12028:             NTS=NTS-1
2026:             CALL TRYAGAIN(NATOMS,GUESSTST,TRYNEB,IGUESS,NGUESS,NIMAGE,NIMAGEMAX,NIMAGESAVE,2029:             CALL TRYAGAIN(NATOMS,GUESSTST,TRYNEB,IGUESS,NGUESS,NIMAGE,NIMAGEMAX,NIMAGESAVE,
2027:      1                   JREMOVE,NMIN,NOPT,QSAVE,CON,EMIN,WHICHTS,NMAXMIN,TSUSED,NMAXTS,REVERSET,STOPFIRST)2030:      1                   JREMOVE,NMIN,NOPT,QSAVE,CON,EMIN,WHICHTS,NMAXMIN,TSUSED,NMAXTS,REVERSET,STOPFIRST)
2028:             GT10=.TRUE.2031:             GT10=.TRUE.
2029:             RETURN2032:             RETURN
2030:           END IF2033:           END IF
2031: C      check cis peptide bonds for proteins 
2032:         ELSE 
2033:           CALL CHECK_CISTRANS_PROTEIN(Q,NATOMS,GOODSTRUCTURE1,MINOMEGA,CISARRAY1) 
2034:           CALL CHECK_CISTRANS_PROTEIN(QPLUS,NATOMS,GOODSTRUCTURE2,MINOMEGA,CISARRAY2) 
2035:           CISARRAY1=CISARRAY1-CISARRAY2 
2036:           GOODSTRUCTURE1=.TRUE. 
2037:           DO J1=1,NATOMS 
2038:                 IF(CISARRAY1(J1)/=0) THEN 
2039:                   GOODSTRUCTURE1=.FALSE. 
2040:                   WRITE(*,'(A,I6)') ' connect> cis-trans isomerisation of a peptide bond detected involving atom ', J1  
2041:                 END IF 
2042:           END DO 
2043:           IF(.NOT.GOODSTRUCTURE1) THEN 
2044:             WRITE(*,'(A)') ' connect> Cis-trans isomerisation of a peptide bond detected, rejecting' 
2045:           END IF 
2046:         END IF2034:         END IF
2047:       ENDIF2035:       ENDIF
2048: 2036: 
2049: C       Check chirality for AMBER aminoacid residues  
2050:         IF(CHECKCHIRALT.AND.(AMBERT.OR.NABT)) THEN 
2051:           CALL CHECK_CHIRALITY(Q,NATOMS,GOODSTRUCTURE1) 
2052:           CALL CHECK_CHIRALITY(QPLUS,NATOMS,GOODSTRUCTURE2) 
2053:           IF(.NOT.GOODSTRUCTURE1.OR..NOT.GOODSTRUCTURE2) THEN 
2054:             WRITE(*,'(A)') ' connect> Chirality inversion detected in at least one of the carbon centres, rejecting' 
2055:             NTS=NTS-1 
2056:             CALL TRYAGAIN(NATOMS,GUESSTST,TRYNEB,IGUESS,NGUESS,NIMAGE,NIMAGEMAX,NIMAGESAVE, 
2057:      1                   JREMOVE,NMIN,NOPT,QSAVE,CON,EMIN,WHICHTS,NMAXMIN,TSUSED,NMAXTS,REVERSET,STOPFIRST) 
2058:             GT10=.TRUE. 
2059:             RETURN 
2060:           END IF 
2061:         END IF 
2062:  
2063: C jmc gets here in the case that one side of the path has failed to converge.  Want to try a different ts, rather than 2037: C jmc gets here in the case that one side of the path has failed to converge.  Want to try a different ts, rather than 
2064: C stopping completely...2038: C stopping completely...
2065:       IF (PATHFAILT) THEN2039:       IF (PATHFAILT) THEN
2066:          PATHFAILT=.FALSE.2040:          PATHFAILT=.FALSE.
2067: C        BFGSTST=.TRUE.2041: C        BFGSTST=.TRUE.
2068:          WRITE(*,*) 'One side of the path failed to converge, rejecting this min-sad-min insertion'2042:          WRITE(*,*) 'One side of the path failed to converge, rejecting this min-sad-min insertion'
2069:          NTS=NTS-12043:          NTS=NTS-1
2070:          CALL TRYAGAIN(NATOMS,GUESSTST,TRYNEB,IGUESS,NGUESS,NIMAGE,NIMAGEMAX,NIMAGESAVE,2044:          CALL TRYAGAIN(NATOMS,GUESSTST,TRYNEB,IGUESS,NGUESS,NIMAGE,NIMAGEMAX,NIMAGESAVE,
2071:      1                JREMOVE,NMIN,NOPT,QSAVE,CON,EMIN,WHICHTS,NMAXMIN,TSUSED,NMAXTS,REVERSET,STOPFIRST)2045:      1                JREMOVE,NMIN,NOPT,QSAVE,CON,EMIN,WHICHTS,NMAXMIN,TSUSED,NMAXTS,REVERSET,STOPFIRST)
2072:          GT10=.TRUE.2046:          GT10=.TRUE.


r10131/fetchz.f 2017-01-21 10:39:53.586615068 +0000 r10130/fetchz.f 2017-01-21 10:39:58.002872242 +0000
185:          NOPT=3*NATOMS185:          NOPT=3*NATOMS
186:          WRITE(*,'(A,I4,A,I4,A)') ' fetchz> ',NOPT,' Cartesian coordinates will be optimised for ',NATOMS,' AMBER atoms'186:          WRITE(*,'(A,I4,A,I4,A)') ' fetchz> ',NOPT,' Cartesian coordinates will be optimised for ',NATOMS,' AMBER atoms'
187:          IF (MOVIE) WRITE(*,'(A,I4,A,I4,A)') ' fetchz> movie will be dumped in xyz format'187:          IF (MOVIE) WRITE(*,'(A,I4,A,I4,A)') ' fetchz> movie will be dumped in xyz format'
188:          IF (TWOENDS.OR.CONNECTT.OR.NEBT.OR.NEWNEBT.OR.DRAGT.OR.GUESSPATHT188:          IF (TWOENDS.OR.CONNECTT.OR.NEBT.OR.NEWNEBT.OR.DRAGT.OR.GUESSPATHT
189:      $     .OR.MECCANOT.OR.MORPHT.OR.GREATCIRCLET.OR.GROWSTRINGT.OR.BHINTERPT) THEN189:      $     .OR.MECCANOT.OR.MORPHT.OR.GREATCIRCLET.OR.GROWSTRINGT.OR.BHINTERPT) THEN
190:             OPEN (UNIT=7,FILE=FINSTRING,STATUS='OLD')190:             OPEN (UNIT=7,FILE=FINSTRING,STATUS='OLD')
191:           IF(AMBERT.OR.NABT) THEN      ! read coordinates from file finish (containing only coordinates)191:           IF(AMBERT.OR.NABT) THEN      ! read coordinates from file finish (containing only coordinates)
192:             DO J1=1,NATOMS192:             DO J1=1,NATOMS
193:                READ(7,*)  FIN(3*(J1-1)+1),FIN(3*(J1-1)+2),FIN(3*(J1-1)+3)193:                READ(7,*)  FIN(3*(J1-1)+1),FIN(3*(J1-1)+2),FIN(3*(J1-1)+3)
194:             ENDDO194:             ENDDO
195:             CLOSE(7) 
196:           ELSE195:           ELSE
197:             DO J1=1,NATOMS196:             DO J1=1,NATOMS
198:                READ(7,*) CD1, CD2, IDUM1, IDUM2, FIN(3*(J1-1)+1),FIN(3*(J1-1)+2),FIN(3*(J1-1)+3)197:                READ(7,*) CD1, CD2, IDUM1, IDUM2, FIN(3*(J1-1)+1),FIN(3*(J1-1)+2),FIN(3*(J1-1)+3)
199: C              WRITE(*,*) CD1, CD2, IDUM1, IDUM2, FIN(3*(J1-1)+1),FIN(3*(J1-1)+2),FIN(3*(J1-1)+3)198: C              WRITE(*,*) CD1, CD2, IDUM1, IDUM2, FIN(3*(J1-1)+1),FIN(3*(J1-1)+2),FIN(3*(J1-1)+3)
200:             ENDDO199:             ENDDO
201:           END IF200:           END IF
202:          ENDIF201:          ENDIF
203:       ELSE IF (AMH) THEN202:       ELSE IF (AMH) THEN
204:          NOPT=3*NATOMS203:          NOPT=3*NATOMS
205: 204: 


r10131/geopt.f 2017-01-21 10:39:53.882632452 +0000 r10130/geopt.f 2017-01-21 10:39:58.242886082 +0000
  1: C   OPTIM: A program for optimizing geometries and calculating reaction pathways 
  2: C   Copyright (C) 1999-2006 David J. Wales  1: C   Copyright (C) 1999-2006 David J. Wales
  3: C   This file is part of OPTIM.  2: C   This file is part of OPTIM.
  4: C  3: C
  5: C   OPTIM is free software; you can redistribute it and/or modify  4: C   OPTIM is free software; you can redistribute it and/or modify
  6: C   it under the terms of the GNU General Public License as published by  5: C   it under the terms of the GNU General Public License as published by
  7: C   the Free Software Foundation; either version 2 of the License, or  6: C   the Free Software Foundation; either version 2 of the License, or
  8: C   (at your option) any later version.  7: C   (at your option) any later version.
  9: C  8: C
 10: C   OPTIM is distributed in the hope that it will be useful,  9: C   OPTIM is distributed in the hope that it will be useful,
 11: C   but WITHOUT ANY WARRANTY; without even the implied warranty of 10: C   but WITHOUT ANY WARRANTY; without even the implied warranty of


r10131/getcor.f 2017-01-21 10:39:50.378425661 +0000 r10130/getcor.f 2017-01-21 10:39:55.550729947 +0000
263: 263: 
264:    ltemp0 = 0.0d0264:    ltemp0 = 0.0d0
265:    nr3 = 3*nr265:    nr3 = 3*nr
266:    lun = 9 !FIXME: use lun=-1 for new amopen()266:    lun = 9 !FIXME: use lun=-1 for new amopen()
267: 267: 
268:    if (writeflag) write(MYUNITNEW,9108)268:    if (writeflag) write(MYUNITNEW,9108)
269:    269:    
270:    !     ----- OPEN THE COORDINATE FILE -----270:    !     ----- OPEN THE COORDINATE FILE -----
271:    271:    
272:    form = (ntx == 1 .or. ntx == 5 .or. ntx == 7 )272:    form = (ntx == 1 .or. ntx == 5 .or. ntx == 7 )
273: 273:    
274:    if(form)then274:    if(form)then
275:       !        subr amopen(lun,fname,fstat,fform,facc)275:       !        subr amopen(lun,fname,fstat,fform,facc)
276:       call amopen(lun,inpcrd,'O','F','R')276:       call amopen(lun,inpcrd,'O','F','R')
277:       read(lun,9008) title1277:       read(lun,9008) title1
278:       278:       
279:       read(lun,'(a80)') line_test279:       read(lun,'(a80)') line_test
280:       if( line_test(6:6) == ' ' ) then ! this is an old, i5 file280:       if( line_test(6:6) == ' ' ) then ! this is an old, i5 file
281:         read(line_test,9010) natom,tt,ltemp0281:         read(line_test,9010) natom,tt,ltemp0
282:       else                   ! assume a new, i6 file282:       else                   ! assume a new, i6 file
283:         read(line_test,9011) natom,tt,ltemp0283:         read(line_test,9011) natom,tt,ltemp0
349:          end if349:          end if
350:          read(lun,end=1000,err=1000) (x(i),i = 1,nr3)350:          read(lun,end=1000,err=1000) (x(i),i = 1,nr3)
351:          read(lun) (f(i),i = 1,nr3)351:          read(lun) (f(i),i = 1,nr3)
352:          write(MYUNITNEW,9008) title1352:          write(MYUNITNEW,9008) title1
353:          write(MYUNITNEW,9009) tt353:          write(MYUNITNEW,9009) tt
354:          close(lun, iostat=ier)354:          close(lun, iostat=ier)
355:          return355:          return
356:       end if356:       end if
357:       357:       
358:       read(lun) title1358:       read(lun) title1
359:       write(*,*) 'title:',title1 
360:       read(lun) natom359:       read(lun) natom
361:       if(natom /= nr) then360:       if(natom /= nr) then
362:          write(MYUNITNEW,9118)361:          write(MYUNITNEW,9118)
363:          call mexit(MYUNITNEW, 1)362:          call mexit(MYUNITNEW, 1)
364:       end if363:       end if
365:       read(lun,end=1000,err=1000) (x(i),i = 1,nr3)364:       read(lun,end=1000,err=1000) (x(i),i = 1,nr3)
366:       read(lun,end=1010,err=1010) (v(i),i = 1,nr3)365:       read(lun,end=1010,err=1010) (v(i),i = 1,nr3)
367:       if(ntx < 6) then366:       if(ntx < 6) then
368:          write(MYUNITNEW,9008) title1367:          write(MYUNITNEW,9008) title1
369:          write(MYUNITNEW,9009) tt368:          write(MYUNITNEW,9009) tt


r10131/getparams.f 2017-01-21 10:39:54.186650262 +0000 r10130/getparams.f 2017-01-21 10:39:58.478899688 +0000
160:             CLOSE(9)160:             CLOSE(9)
161:             GOTO 400161:             GOTO 400
162:          ENDIF162:          ENDIF
163:          NATOMS=NATOMS+1163:          NATOMS=NATOMS+1
164:          GOTO 310164:          GOTO 310
165:       ELSE IF (WORD.EQ.'AMBER9'.OR.(WORD.EQ.'NAB')) THEN165:       ELSE IF (WORD.EQ.'AMBER9'.OR.(WORD.EQ.'NAB')) THEN
166:          IF(WORD.EQ.'AMBER9') AMBERT=.TRUE.166:          IF(WORD.EQ.'AMBER9') AMBERT=.TRUE.
167:          IF(WORD.EQ.'NAB') NABT=.TRUE.167:          IF(WORD.EQ.'NAB') NABT=.TRUE.
168: !         NATOMS=0168: !         NATOMS=0
169:         inpcrd='coords.inpcrd'169:         inpcrd='coords.inpcrd'
170:          call amberinterface(natoms,2,inpcrd,6)170:          call amberinterface(natoms,2,inpcrd)
171:        IF(NITEMS<3) then171:        IF(NITEMS<3) then
172:          CALL READA(amberstr)172:          CALL READA(amberstr)
173:           IF (FILTH2.NE.0) THEN173:           IF (FILTH2.NE.0) THEN
174:             WRITE(OTEMP,*) FILTH2174:             WRITE(OTEMP,*) FILTH2
175:             write(ostring,'(A)') trim(adjustl(amberstr))//'.'//trim(adjustl(otemp))175:             write(ostring,'(A)') trim(adjustl(amberstr))//'.'//trim(adjustl(otemp))
176:             WRITE(*,*) 'ostring=', ostring176:             WRITE(*,*) 'ostring=', ostring
177:           ELSE177:           ELSE
178:             write(ostring,'(A)') trim(adjustl(amberstr))178:             write(ostring,'(A)') trim(adjustl(amberstr))
179:           END IF179:           END IF
180:           WRITE(*,'(A)') ' getparams> input coordinates for AMBER9 system will be read from ',trim(adjustl(amberstr)),ostring180:           WRITE(*,'(A)') ' getparams> input coordinates for AMBER9 system will be read from ',trim(adjustl(amberstr)),ostring
183:          CALL READA(amberstr)183:          CALL READA(amberstr)
184:          CALL READA(amberstr1)184:          CALL READA(amberstr1)
185:           WRITE(*,'(A)') ' getparams> input coordinates for AMBER9 system will be read from ', trim(adjustl(amberstr)),185:           WRITE(*,'(A)') ' getparams> input coordinates for AMBER9 system will be read from ', trim(adjustl(amberstr)),
186:      &                         'type: ', trim(adjustl(amberstr1))186:      &                         'type: ', trim(adjustl(amberstr1))
187:           IF(trim(adjustl(amberstr1)).EQ.'inpcrd') then187:           IF(trim(adjustl(amberstr1)).EQ.'inpcrd') then
188:            inpcrd=amberstr188:            inpcrd=amberstr
189:            WRITE(*,'(A)') ' getparams> reading AMBER inpcrd coordinate format'189:            WRITE(*,'(A)') ' getparams> reading AMBER inpcrd coordinate format'
190:           ELSE190:           ELSE
191:            WRITE(*,'(A)') ' getparams> ERROR - no other types defined currently than inpcrd'191:            WRITE(*,'(A)') ' getparams> ERROR - no other types defined currently than inpcrd'
192:           END IF192:           END IF
193:            call amberinterface(natoms,2,inpcrd,6)193:            inpcrd=trim(adjustl(inpcrd))//CHAR(0)
 194:            call amberinterface(natoms,2,inpcrd)
194:        END IF195:        END IF
195:         GOTO 400           ! finished counting atoms, go to the end of the subroutine196:         GOTO 400           ! finished counting atoms, go to the end of the subroutine
196:       ELSE IF (WORD.EQ.'AMH') THEN197:       ELSE IF (WORD.EQ.'AMH') THEN
197:          AMH=.TRUE.198:          AMH=.TRUE.
198:          NATOMS=0199:          NATOMS=0
199:          OPEN(UNIT=30,FILE='pro.list',STATUS='OLD',FORM='FORMATTED')200:          OPEN(UNIT=30,FILE='pro.list',STATUS='OLD',FORM='FORMATTED')
200:          READ (30,1000)TARFL201:          READ (30,1000)TARFL
201: 1000     FORMAT(A5)202: 1000     FORMAT(A5)
202:          CLOSE(30)203:          CLOSE(30)
203:           OPEN(30,FILE='proteins/'//TARFL,STATUS='OLD')204:           OPEN(30,FILE='proteins/'//TARFL,STATUS='OLD')


r10131/keywords.f 2017-01-21 10:39:54.466666643 +0000 r10130/keywords.f 2017-01-21 10:39:58.714913295 +0000
 18: C 18: C
 19: C  All the keywords possible for the odata file are contained here in  19: C  All the keywords possible for the odata file are contained here in 
 20: C  alphabetical order. Initialisation statements procede the big IF block. 20: C  alphabetical order. Initialisation statements procede the big IF block.
 21: C 21: C
 22:       SUBROUTINE KEYWORDS(Q) 22:       SUBROUTINE KEYWORDS(Q)
 23:       USE COMMONS 23:       USE COMMONS
 24:       USE KEY 24:       USE KEY
 25:       USE MODMEC 25:       USE MODMEC
 26:       USE MODTWOEND 26:       USE MODTWOEND
 27:       USE MODAMBER 27:       USE MODAMBER
 28:       USE MODAMBER9, ONLY : COORDS1,ih,m04,prmtop,saltcon,igb,cut,rgbmax,nocistransrna,atmass1,checkcistransalways 28:       USE MODAMBER9, ONLY : COORDS1,ih,m04,prmtop,saltcon,igb,cut,rgbmax,nocistransrna,atmass1
 29:       USE MODNEB 29:       USE MODNEB
 30:       USE modmxatms   ! needed for CHARMM 30:       USE modmxatms   ! needed for CHARMM
 31:       USE modcharmm    31:       USE modcharmm   
 32:       USE MODUNRES 32:       USE MODUNRES
 33:       USE KEYNEB, NNNIMAGE=>NIMAGE 33:       USE KEYNEB, NNNIMAGE=>NIMAGE
 34:       USE KEYCONNECT 34:       USE KEYCONNECT
 35:       USE MODMEC 35:       USE MODMEC
 36:       USE MODGUESS 36:       USE MODGUESS
 37:       USE PORFUNCS 37:       USE PORFUNCS
 38:       USE msevb_common, ONLY: shellsToCount, maxHbondLength, minHbondAngle, OOclash_sq, printCoefficients 38:       USE msevb_common, ONLY: shellsToCount, maxHbondLength, minHbondAngle, OOclash_sq, printCoefficients
 42:      $     GSGROWTOL, GSMXSTP,GSCONV, REPARAMTOL, EVOLVESTRINGT, 42:      $     GSGROWTOL, GSMXSTP,GSCONV, REPARAMTOL, EVOLVESTRINGT,
 43:      $     GSIMGDENSITY, GSITERDENSITY, FIXATMS, MAXLENPERIM, 43:      $     GSIMGDENSITY, GSITERDENSITY, FIXATMS, MAXLENPERIM,
 44:      $     HESSGRAD, GSMAXTOTITD, MAXGROWSTEPS, GSDGUESS, 44:      $     HESSGRAD, GSMAXTOTITD, MAXGROWSTEPS, GSDGUESS,
 45:      $     NOLBFGS, PREROTATE, GSTANTYPE=>TANTYPE 45:      $     NOLBFGS, PREROTATE, GSTANTYPE=>TANTYPE
 46:       USE CUBSPLSTRING, ONLY : ARCTOL, DQAGKEY 46:       USE CUBSPLSTRING, ONLY : ARCTOL, DQAGKEY
 47:       USE INTCOMMONS, ONLY : NATINT, INTNEWT, BBCART, INTINTERPT, INTERPSIMPLE, 47:       USE INTCOMMONS, ONLY : NATINT, INTNEWT, BBCART, INTINTERPT, INTERPSIMPLE,
 48:      $     INTMINPERMT, INTERPCHOICE, NINTIM, CARTRESSTART, INTPARFILE, 48:      $     INTMINPERMT, INTERPCHOICE, NINTIM, CARTRESSTART, INTPARFILE,
 49:      $     MINBACKTCUT, INTERPBACKTCUT, PRINTCOORDS, DESMINT, NURINGS, URINGS, 49:      $     MINBACKTCUT, INTERPBACKTCUT, PRINTCOORDS, DESMINT, NURINGS, URINGS,
 50:      $     NUBONDS, UBONDS, USEPARFILE 50:      $     NUBONDS, UBONDS, USEPARFILE
 51: !     USE BENCHMARKS, ONLY : MINBMT, MINBMNSAMP 51: !     USE BENCHMARKS, ONLY : MINBMT, MINBMNSAMP
  52: C     MCP
  53: C      USE GLOBALS
  54: 
 52:  55: 
 53:       IMPLICIT NONE 56:       IMPLICIT NONE
 54:  57: 
 55:       INTEGER NDUM, NDIM1, NDIM2 58:       INTEGER NDUM, NDIM1, NDIM2
 56:       INTEGER ITEM, NITEMS, LOC, LINE, NCR, NERROR, IR, LAST, NTYPEA, J1, J2 59:       INTEGER ITEM, NITEMS, LOC, LINE, NCR, NERROR, IR, LAST, NTYPEA, J1, J2
 57:       COMMON /BUFINF/ ITEM, NITEMS, LOC(80), LINE, SKIPBL, CLEAR, NCR, 60:       COMMON /BUFINF/ ITEM, NITEMS, LOC(80), LINE, SKIPBL, CLEAR, NCR,
 58:      &                NERROR, IR, ECHO, LAST, CAT 61:      &                NERROR, IR, ECHO, LAST, CAT
 59:       DOUBLE PRECISION :: XX, EPSAB, EPSBB, SIGAB, SIGBB, Q(3*NATOMS), FDUM, RANDOM, DPRAND 62:       DOUBLE PRECISION :: XX, EPSAB, EPSBB, SIGAB, SIGBB, Q(3*NATOMS), FDUM, RANDOM, DPRAND
 60:       LOGICAL END, SKIPBL, CLEAR, ECHO, CAT, MINBFILE 63:       LOGICAL END, SKIPBL, CLEAR, ECHO, CAT, MINBFILE
 61:       CHARACTER WORD*25, WW*20 64:       CHARACTER WORD*25, WW*20
258:       GSUPDATE = 4261:       GSUPDATE = 4
259:       GCUPDATE=4262:       GCUPDATE=4
260:       DGUESS=0.1D0263:       DGUESS=0.1D0
261:       XDGUESS=0.1D0264:       XDGUESS=0.1D0
262:       NEBDGUESS=0.001D0265:       NEBDGUESS=0.001D0
263:       GSDGUESS = 0.001D0266:       GSDGUESS = 0.001D0
264:       AMBER=.FALSE.267:       AMBER=.FALSE.
265:       AMBERT=.FALSE.268:       AMBERT=.FALSE.
266:       NABT=.FALSE.269:       NABT=.FALSE.
267:       NOCISTRANSRNA=.FALSE.270:       NOCISTRANSRNA=.FALSE.
268:       CHECKCISTRANSALWAYS=.FALSE. 
269: 271: 
270:       FAKEWATER=.FALSE.272:       FAKEWATER=.FALSE.
271: 273: 
272:       CHRMMT=.FALSE.274:       CHRMMT=.FALSE.
273:       ACESOLV=.FALSE.275:       ACESOLV=.FALSE.
274:       ACEUPSTEP=50276:       ACEUPSTEP=50
275:       TWISTDIHET=.FALSE.277:       TWISTDIHET=.FALSE.
276:       PERTDIHET=.FALSE.278:       PERTDIHET=.FALSE.
277:       CHPMAX=0.5d0279:       CHPMAX=0.5d0
278:       CHPMIN=0.25d0280:       CHPMIN=0.25d0
637: ! save atom names in array zsym639: ! save atom names in array zsym
638:         do i=1,natoms640:         do i=1,natoms
639:                 zsym(i) = ih(m04+i-1)641:                 zsym(i) = ih(m04+i-1)
640:         end do642:         end do
641:         IF(.NOT.ALLOCATED(ATMASS)) ALLOCATE(ATMASS(NATOMS))643:         IF(.NOT.ALLOCATED(ATMASS)) ALLOCATE(ATMASS(NATOMS))
642: ! for the NAB interface, ATMASS is also set up in mme2wrapper, and that setting 644: ! for the NAB interface, ATMASS is also set up in mme2wrapper, and that setting 
643: ! overrides the one from below. However, both originate from the same prmtop file, 645: ! overrides the one from below. However, both originate from the same prmtop file, 
644: ! so they should be the same. ATMASS is being assigned here so that it's somewhat consistent646: ! so they should be the same. ATMASS is being assigned here so that it's somewhat consistent
645: ! with the AMBER interface.647: ! with the AMBER interface.
646:         ATMASS(1:NATOMS) = ATMASS1(1:NATOMS)648:         ATMASS(1:NATOMS) = ATMASS1(1:NATOMS)
647:         WRITE(prmtop,'(A)') 'coords.prmtop'649:         WRITE(prmtop,'(A)') 'coords.prmtop'//CHAR(0)
648:         CALL MMEINITWRAPPER(trim(adjustl(prmtop)),igb,saltcon,rgbmax,sqrt(cut))650:         CALL MMEINITWRAPPER(trim(adjustl(prmtop)),igb,saltcon,rgbmax,sqrt(cut))
649:         RETURN651:         RETURN
650: 652: 
651:       ELSE IF (WORD.eq.'DUMPSTRUCTURES') THEN653:       ELSE IF (WORD.eq.'DUMPSTRUCTURES') THEN
652:         DUMPSTRUCTURES=.TRUE.654:         DUMPSTRUCTURES=.TRUE.
653:         WRITE(*,'(A)') ' keywords> Final structures will be dumped in different formats (.rst, .xyz, .pdb)'655:         WRITE(*,'(A)') ' keywords> Final structures will be dumped in different formats (.rst, .xyz, .pdb)'
654: !656: !
655: ! Distinguish between old C of M/Euler and new angle/axis coordinates for657: ! Distinguish between old C of M/Euler and new angle/axis coordinates for
656: ! rigid body TIP potentials658: ! rigid body TIP potentials
657: !659: !
1001:          IF (INTMINT) CALL GETNINT(NINTS)  ! DJW - this is OK because CHARMM is the last keyword!1003:          IF (INTMINT) CALL GETNINT(NINTS)  ! DJW - this is OK because CHARMM is the last keyword!
1002: C1004: C
1003:       ELSE IF (WORD.EQ.'CHARMMTYPE') THEN1005:       ELSE IF (WORD.EQ.'CHARMMTYPE') THEN
1004:          CALL READI(CHARMMTYPE)1006:          CALL READI(CHARMMTYPE)
1005: C CHARMMTYPE = 1 means CHARMM22 with ACE capgroup1007: C CHARMMTYPE = 1 means CHARMM22 with ACE capgroup
1006: C CHARMMTYPE = 2 means CHARMM19 with ACE capgroup1008: C CHARMMTYPE = 2 means CHARMM19 with ACE capgroup
1007: C CHARMMTYPE = 3 means CHARMM19 no capgroup1009: C CHARMMTYPE = 3 means CHARMM19 no capgroup
1008: C Used in REBUILD1010: C Used in REBUILD
1009:          WRITE(*,'(A,I2)') 'CHARMMTYPE set to ',CHARMMTYPE1011:          WRITE(*,'(A,I2)') 'CHARMMTYPE set to ',CHARMMTYPE
1010: C1012: C
1011: C CHARMM related keyword, avoids inversion around C_alpha1013: C CHARMM related keyword, avoids inversion around C_alpha 
1012: C -- also implemented to AMBER (sf344)  
1013:       ELSE IF (WORD.EQ.'CHECKCHIRALITY') THEN1014:       ELSE IF (WORD.EQ.'CHECKCHIRALITY') THEN
1014:          CHECKCHIRALT=.TRUE.1015:          CHECKCHIRALT=.TRUE.
1015: C1016: C
1016: C  If CHECKINDEX is .TRUE. and the BFGSTS routine converges an attempt is1017: C  If CHECKINDEX is .TRUE. and the BFGSTS routine converges an attempt is
1017: C  made to count the number of negative Hessian eigenvalues using projection,1018: C  made to count the number of negative Hessian eigenvalues using projection,
1018: C  orthogonalization and iteration. We also need the opportunity to change the1019: C  orthogonalization and iteration. We also need the opportunity to change the
1019: C  parameters NEVL and NEVS within BFGSTS if BFGSTS isn t true.1020: C  parameters NEVL and NEVS within BFGSTS if BFGSTS isn t true.
1020: C  CHECKINDEX can also be used with BFGSMIN and should understand NOHESS too.1021: C  CHECKINDEX can also be used with BFGSMIN and should understand NOHESS too.
1021: C1022: C
1022:       ELSE IF (WORD.EQ.'CHECKINDEX') THEN1023:       ELSE IF (WORD.EQ.'CHECKINDEX') THEN
1988: C1989: C
1989:       ELSE IF (WORD.EQ.'NOCISTRANS') THEN1990:       ELSE IF (WORD.EQ.'NOCISTRANS') THEN
1990:          NOCISTRANS=.TRUE.   ! is used in connect.f1991:          NOCISTRANS=.TRUE.   ! is used in connect.f
1991:          CHECKOMEGAT=.TRUE.  ! is used in NEWNEB1992:          CHECKOMEGAT=.TRUE.  ! is used in NEWNEB
1992:          IF (NITEMS.GT.1) CALL READF(MINOMEGA)1993:          IF (NITEMS.GT.1) CALL READF(MINOMEGA)
1993:         1994:         
1994:          IF(NITEMS.GT.2) CALL READU(WW)1995:          IF(NITEMS.GT.2) CALL READU(WW)
1995:          IF (TRIM(ADJUSTL(WW))=='RNA') then1996:          IF (TRIM(ADJUSTL(WW))=='RNA') then
1996:              NOCISTRANSRNA = .TRUE.1997:              NOCISTRANSRNA = .TRUE.
1997:              write(*,*) ' keywords> NOCISTRANSRNA set to .TRUE.'1998:              write(*,*) ' keywords> NOCISTRANSRNA set to .TRUE.'
1998:          ELSE IF (TRIM(ADJUSTL(WW))=='ALWAYS') THEN 
1999:              CHECKCISTRANSALWAYS = .TRUE. 
2000:          ELSE 1999:          ELSE 
2001:              WRITE(*,*) ' keywords> ERROR - currently no other nocistrans options implemented than for RNA'2000:              WRITE(*,*) ' keywords> ERROR - currently no other nocistrans options implemented than for RNA'
2002:          END IF2001:          END IF
 2002: C         NOCISTRANS=.TRUE.
 2003: C         NOCISTRANSRNA=.TRUE.
2003: 2004: 
2004: C2005: C
2005: C  No frequencies should be evaluated or placed in the path.info file.2006: C  No frequencies should be evaluated or placed in the path.info file.
2006: C2007: C
2007:       ELSE IF (WORD.EQ.'NOFRQS') THEN2008:       ELSE IF (WORD.EQ.'NOFRQS') THEN
2008:          NOFRQS=.TRUE.2009:          NOFRQS=.TRUE.
2009: C2010: C
2010: C  No Hessian should be calculated during geometry optimisation.2011: C  No Hessian should be calculated during geometry optimisation.
2011: C2012: C
2012:       ELSE IF (WORD.EQ.'NOHESS') THEN2013:       ELSE IF (WORD.EQ.'NOHESS') THEN


r10131/main.F 2017-01-21 10:39:51.478490886 +0000 r10130/main.F 2017-01-21 10:39:56.338775810 +0000
 18: C 18: C
 19:       PROGRAM GMIN 19:       PROGRAM GMIN
 20:       USE MODMXATMS 20:       USE MODMXATMS
 21:       USE NOA 21:       USE NOA
 22:       USE COMMONS 22:       USE COMMONS
 23:       USE QMODULE 23:       USE QMODULE
 24:       USE PERMU 24:       USE PERMU
 25:       USE F1COM 25:       USE F1COM
 26:       USE MODAMBER 26:       USE MODAMBER
 27:       USE MODCHARMM 27:       USE MODCHARMM
  28:       USE STACK
 28:       USE PORFUNCS 29:       USE PORFUNCS
 29:       IMPLICIT NONE 30:       IMPLICIT NONE
 30: #ifdef MPI 31: #ifdef MPI
 31:       INCLUDE 'mpif.h' 32:       INCLUDE 'mpif.h'
 32: #endif 33: #endif
 33:       INTEGER J1,J2, JP, MPIERR 34:       INTEGER J1,J2, JP, MPIERR
 34:       DOUBLE PRECISION, ALLOCATABLE :: SCREENC(:) 35:       DOUBLE PRECISION, ALLOCATABLE :: SCREENC(:)
 35:       DOUBLE PRECISION POTEL 36:       DOUBLE PRECISION POTEL
 36:  37: 
 37:       CHARACTER(LEN=130) ISTR  38:       CHARACTER(LEN=130) ISTR 
145:          QMIN(J1)=1.0D10146:          QMIN(J1)=1.0D10
146:       ENDDO147:       ENDDO
147:       IF ((NRUNS.GT.0).OR.PTMC.OR.BSPT) CALL MCRUNS(SCREENC)148:       IF ((NRUNS.GT.0).OR.PTMC.OR.BSPT) CALL MCRUNS(SCREENC)
148: C     CALL SYSTEM('rm ssdump ssave >& /dev/null')149: C     CALL SYSTEM('rm ssdump ssave >& /dev/null')
149: 150: 
150:       IF (ALLOCATED(FIN)) DEALLOCATE(FIN)151:       IF (ALLOCATED(FIN)) DEALLOCATE(FIN)
151:       IF (ALLOCATED(XICOM)) DEALLOCATE(XICOM)152:       IF (ALLOCATED(XICOM)) DEALLOCATE(XICOM)
152:       IF (ALLOCATED(PCOM)) DEALLOCATE(PCOM)153:       IF (ALLOCATED(PCOM)) DEALLOCATE(PCOM)
153:       IF (ALLOCATED(GAUSSKK)) DEALLOCATE(GAUSSKK,GAUSSEE)154:       IF (ALLOCATED(GAUSSKK)) DEALLOCATE(GAUSSKK,GAUSSEE)
154: C     deallocate dynamic memory for AMBER155: C     deallocate dynamic memory for AMBER
155:       IF (AMBERT) CALL AMBER_DEALLOCATE_STACKS156:       IF (AMBERT) CALL DEALLOCATE_STACKS
156:       CALL MODCOMMONDEINIT157:       CALL MODCOMMONDEINIT
157:       CALL FLUSH(MYUNIT)158:       CALL FLUSH(MYUNIT)
158: 159: 
159:       CLOSE(MYUNIT)160:       CLOSE(MYUNIT)
160: #ifdef MPI161: #ifdef MPI
161:       CALL MPI_FINALIZE(MPIERR)162:       CALL MPI_FINALIZE(MPIERR)
162: #endif163: #endif
163:       STOP164:       STOP
164: 165: 
165:       END166:       END


r10131/Makefile 2017-01-21 10:39:52.638559326 +0000 r10130/Makefile 2017-01-21 10:39:57.306831965 +0000
 45: VPATH = NEB:CONNECT:CHARMM:AMH:. 45: VPATH = NEB:CONNECT:CHARMM:AMH:.
 46: LDFLAGS = -L. 46: LDFLAGS = -L.
 47:  47: 
 48: #### libraries 48: #### libraries
 49: LIBS = -lnn  -lnc -lmyblas -lmylapack  -lmyblas  -lmyblas 49: LIBS = -lnn  -lnc -lmyblas -lmylapack  -lmyblas  -lmyblas
 50: # LIBS = -lmylapack -lmyblas -L/usr/local/lib 50: # LIBS = -lmylapack -lmyblas -L/usr/local/lib
 51: # LIBS = -lnn -lnc -lATLASf77blas -lATLAScblas -lATLASatlas -lATLASlapack 51: # LIBS = -lnn -lnc -lATLASf77blas -lATLAScblas -lATLASatlas -lATLASlapack
 52:  52: 
 53: #### sf344> AMBER 9 / NAB interface 53: #### sf344> AMBER 9 / NAB interface
 54: AMB9DUM = amber9dummy.o 54: AMB9DUM = amber9dummy.o
 55: AMB9SRC = ../../AMBER/src/sander 55: # AMB9SRC = ../../AMBER/src/sander
 56: NABSRC = ../../NAB/src 56: # NABSRC = ../../NAB/src
 57: #AMB9SRC = /home/$USER/svn/AMBER/src/sander 57: #AMB9SRC = ../../AMBER/src/sander
 58: #NABSRC = /home/$USER/svn/NAB/src 58: #NABSRC = ../../NAB/src
 59: EXTRASAMBER9 = modamber9.o 59: EXTRASAMBER9 = modamber9.o
 60: #### end AMBER 9 60: #### end AMBER 9
 61:  61: 
 62: # 62: #
 63: #### AMBER 63: #### AMBER
 64: EXTRASAMBER = amber.o 64: EXTRASAMBER = amber.o
 65: #### end AMBER 65: #### end AMBER
 66: # 66: #
 67: ##### CHARMM 31 67: ##### CHARMM 31
 68: EXTRAS = myblas.o mylapack.o 68: EXTRAS = myblas.o mylapack.o
125: ${optim}: $(AMB9DUM) $(OBJS) $(EXTRAS) $(CHDUM) $(UNDUM)  $(AMDUM) $(AMHDUM) 125: ${optim}: $(AMB9DUM) $(OBJS) $(EXTRAS) $(CHDUM) $(UNDUM)  $(AMDUM) $(AMHDUM) 
126:         $(FC) $(FFLAGS) ${SEARCH_PATH} -o ${optim} $(EXTRAS) $(OBJS) $(CHDUM) $(UNDUM)  $(AMHDUM) $(AMDUM) $(AMB9DUM) \126:         $(FC) $(FFLAGS) ${SEARCH_PATH} -o ${optim} $(EXTRAS) $(OBJS) $(CHDUM) $(UNDUM)  $(AMHDUM) $(AMDUM) $(AMB9DUM) \
127:         $(LDFLAGS) $(LIBS)127:         $(LDFLAGS) $(LIBS)
128:         rm libmyblas.a    libmylapack.a128:         rm libmyblas.a    libmylapack.a
129: 129: 
130: ${coptim}: $(AMB9DUM) $(OBJS) $(EXTRAS) $(UNDUM) $(AMDUM) $(AMHDUM) libcharmm.a 130: ${coptim}: $(AMB9DUM) $(OBJS) $(EXTRAS) $(UNDUM) $(AMDUM) $(AMHDUM) libcharmm.a 
131:         $(FC) $(FFLAGS) ${SEARCH_PATH} -o ${coptim} ${CHOBJS31} $(EXTRAS) $(UNDUM) $(AMDUM) $(AMHDUM) $(AMB9DUM) $(OBJS) \131:         $(FC) $(FFLAGS) ${SEARCH_PATH} -o ${coptim} ${CHOBJS31} $(EXTRAS) $(UNDUM) $(AMDUM) $(AMHDUM) $(AMB9DUM) $(OBJS) \
132:         $(LDFLAGS) $(LIBS) $(CHLIBS31) ${CHLIBS31} ${CHLIBS31} 132:         $(LDFLAGS) $(LIBS) $(CHLIBS31) ${CHLIBS31} ${CHLIBS31} 
133:         rm libmyblas.a    libmylapack.a133:         rm libmyblas.a    libmylapack.a
134: 134: 
135: ${unoptim}: $(AMB9DUM) $(OBJS) $(EXTRAS) $(EXTRASUNRES) $(CHDUM) $(AMHDUM) $(AMDUM)135: ${unoptim}: $(AMB9DUM) $(OBJS) $(EXTRAS) $(EXTRASUNRES) $(CHDUM) $(AMDUM)
136:         $(FC) $(FFLAGS) ${SEARCH_PATH} -o ${unoptim} $(EXTRAS) $(EXTRASUNRES) $(CHDUM) $(AMDUM) $(AMHDUM) $(AMB9DUM) $(OBJS) \136:         $(FC) $(FFLAGS) ${SEARCH_PATH} -o ${unoptim} $(EXTRAS) $(EXTRASUNRES) $(CHDUM) $(AMDUM) $(AMB9DUM) $(OBJS) \
137:         $(LDFLAGS) $(LIBS)137:         $(LDFLAGS) $(LIBS)
138:         rm libmyblas.a    libmylapack.a138:         rm libmyblas.a    libmylapack.a
139: 139: 
140: ${amoptim}: $(AMB9DUM) $(OBJS) $(EXTRAS) $(EXTRASAMBER) $(CHDUM) $(UNDUM) $(AMHDUM)140: ${amoptim}: $(AMB9DUM) $(OBJS) $(EXTRAS) $(EXTRASAMBER) $(CHDUM) $(UNDUM)
141:         $(FC) $(FFLAGS) ${SEARCH_PATH} -o ${amoptim} $(EXTRAS) $(EXTRASAMBER) $(CHDUM) $(UNDUM) $(AMHDUM) $(AMB9DUM) $(OBJS) \141:         $(FC) $(FFLAGS) ${SEARCH_PATH} -o ${amoptim} $(EXTRAS) $(EXTRASAMBER) $(CHDUM) $(UNDUM) $(AMB9DUM) $(OBJS) \
142:         $(LDFLAGS) $(LIBS)142:         $(LDFLAGS) $(LIBS)
143:         rm libmyblas.a    libmylapack.a143:         rm libmyblas.a    libmylapack.a
144: 144: 
145: ${amb9optim}: $(EXTRASAMBER9) $(OBJS) $(EXTRAS) $(CHDUM) $(AMDUM) $(UNDUM) $(AMHDUM) libamber.a libnab.a 145: ${amb9optim}: $(EXTRASAMBER9) $(OBJS) $(EXTRAS) $(CHDUM) $(AMDUM) $(UNDUM) libamber.a libnab.a 
146:         $(FC) $(FFLAGS) ${SEARCH_PATH} -o ${amb9optim} $(EXTRAS) $(CHDUM) $(UNDUM) $(AMHDUM) $(AMDUM) $(OBJS) \146:         $(FC) $(FFLAGS) ${SEARCH_PATH} -o ${amb9optim} $(EXTRAS) $(CHDUM) $(UNDUM) $(AMDUM) $(OBJS) \
147:         $(LDFLAGS) $(LIBS) libamber.a libnab.a $(LIBS)147:         $(LDFLAGS) $(LIBS) libamber.a libnab.a $(LIBS)
148:         rm libmyblas.a    libmylapack.a modamber9.o modamber9.mod148:         rm libmyblas.a    libmylapack.a modamber9.o modamber9.mod
149: 149: 
150: ${amhoptim}: $(AMB9DUM) $(OBJS) $(EXTRAS) $(EXTRASAMH) $(CHDUM) $(AMDUM) $(UNDUM) libamh.a 150: ${amhoptim}: $(AMB9DUM) $(OBJS) $(EXTRAS) $(EXTRASAMH) $(CHDUM) $(AMDUM) $(UNDUM) libamh.a 
151:         $(FC) $(FFLAGS) ${SEARCH_PATH} -o ${amhoptim} $(EXTRAS) $(EXTRASAMH)  $(CHDUM) $(UNDUM) $(AMDUM) $(AMB9DUM) $(OBJS) \151:         $(FC) $(FFLAGS) ${SEARCH_PATH} -o ${amhoptim} $(EXTRAS) $(EXTRASAMH)  $(CHDUM) $(UNDUM) $(AMDUM) $(AMB9DUM) $(OBJS) \
152:         $(LDFLAGS) $(LIBS)  $(LIBS)152:         $(LDFLAGS) $(LIBS)  $(LIBS)
153:         rm libmyblas.a    libmylapack.a 153:         rm libmyblas.a    libmylapack.a 
154: 154: 
155: timing:155: timing:
156:         rm -f $(OPROG) 156:         rm -f $(OPROG) 
158:         rm libmyblas.a    libmylapack.a158:         rm libmyblas.a    libmylapack.a
159: 159: 
160: clean:160: clean:
161:         rm -f $(OBJS) *.mod $(EXTRAS) *.lst *.o pref.dat prefx.msg FOR021.DAT ${GENF90FILES} *.log lastargs lib*161:         rm -f $(OBJS) *.mod $(EXTRAS) *.lst *.o pref.dat prefx.msg FOR021.DAT ${GENF90FILES} *.log lastargs lib*
162:         cd ../../BLAS; make clean162:         cd ../../BLAS; make clean
163:         cd ../../LAPACK; make clean163:         cd ../../LAPACK; make clean
164:         cd NEB; make clean164:         cd NEB; make clean
165:         cd CONNECT; make clean165:         cd CONNECT; make clean
166:         cd CHARMM; make clean166:         cd CHARMM; make clean
167:         cd AMH; make clean167:         cd AMH; make clean
168:         cd $(AMB9SRC) && make clean168: #        cd $(AMB9SRC) && make clean
169:         cd $(NABSRC) && make clean169: #        cd $(NABSRC) && make clean
170: cleanexe:170: cleanexe:
171:         rm -r ../bin/*171:         rm -r ../bin/*
172: 172: 
173: cleanall:173: cleanall:
174:         make clean174:         make clean
175:         make cleanexe175:         make cleanexe
176: 176: 
177: porfuncs.f90: porfuncs.csh177: porfuncs.f90: porfuncs.csh
178:         ./porfuncs.csh ${SWITCH} > porfuncs.f90178:         ./porfuncs.csh ${SWITCH} > porfuncs.f90
179: header.f90: header.csh179: header.f90: header.csh
198: libmylapack.a: SAT-Ghost198: libmylapack.a: SAT-Ghost
199:         cd ../../LAPACK; make selection FC="${FC}" FFLAGS="${FFLAGS}" NOOPT="${NOOPT}";\199:         cd ../../LAPACK; make selection FC="${FC}" FFLAGS="${FFLAGS}" NOOPT="${NOOPT}";\
200:         cp libmylapack.a ../OPTIM/source200:         cp libmylapack.a ../OPTIM/source
201: libcharmm.a: SAT-Ghost201: libcharmm.a: SAT-Ghost
202:         cd CHARMM; make FC="${FC}" FFLAGS="${FFLAGS} ${SEARCH_PATH}" PREFLX="${PREFLX}" PREFDIR="${PREFDIR}" \202:         cd CHARMM; make FC="${FC}" FFLAGS="${FFLAGS} ${SEARCH_PATH}" PREFLX="${PREFLX}" PREFDIR="${PREFDIR}" \
203:         CTYPE="${CTYPE}" FCMDIR=${FCMDIR} C31SRC="${C31SRC}" SRC31="${SRC31}"203:         CTYPE="${CTYPE}" FCMDIR=${FCMDIR} C31SRC="${C31SRC}" SRC31="${SRC31}"
204: SAT-Ghost:204: SAT-Ghost:
205: 205: 
206: ###################################### DEPENDENCIES ######################################206: ###################################### DEPENDENCIES ######################################
207: ${optim} ${coptim} ${unoptim} ${amoptim} ${amb9optim} ${amhoptim}: libnn.a libnc.a libmyblas.a libmylapack.a207: ${optim} ${coptim} ${unoptim} ${amoptim} ${amb9optim} ${amhoptim}: libnn.a libnc.a libmyblas.a libmylapack.a
208: ${amb9optim}: libamber.a modamber9.o 
209: libamh.a: altpot_interfaces.o  amh_interfaces.o  globals_alt.o globals.o208: libamh.a: altpot_interfaces.o  amh_interfaces.o  globals_alt.o globals.o
210: libnn.a: modcharmm.o key.o commons.o modunres.o porfuncs.o modmec.o modguess.o efol.o growstring.o gsdata.o intcommons.o intcoords.o209: libnn.a: modcharmm.o key.o commons.o modunres.o porfuncs.o modmec.o modguess.o efol.o growstring.o gsdata.o intcommons.o intcoords.o
211: libnc.a: libnn.a key.o syminf.o modhess.o210: libnc.a: libnn.a key.o syminf.o modhess.o
212: libamber.a: commons.o modamber9.o211: libamber.a: commons.o modamber9.o
213: libcharmm.a: key.o commons.o modtwoend.o modneb.o modhess.o modcharmm.o modmxatms.o intcommons.o212: libcharmm.a: key.o commons.o modtwoend.o modneb.o modhess.o modcharmm.o modmxatms.o intcommons.o
214: oldneb.o meccano.o unmeccano.o fetchz.o keywords.o OPTIM.o unresnebguessts.o: libnn.a213: oldneb.o meccano.o unmeccano.o fetchz.o keywords.o OPTIM.o unresnebguessts.o: libnn.a
215: fetchz.o keywords.o : libnc.a214: fetchz.o keywords.o : libnc.a
216: OPTIM.o connect.o: libnn.a libnc.a215: OPTIM.o connect.o: libnn.a libnc.a
217: 2Dfunc.o: modcharmm.o commons.o modhess.o216: 2Dfunc.o: modcharmm.o commons.o modhess.o
218: Clatmin.o: commons.o217: Clatmin.o: commons.o
250: dzugutov.o: modcharmm.o modhess.o249: dzugutov.o: modcharmm.o modhess.o
251: ectrap.o: key.o250: ectrap.o: key.o
252: efol.o: commons.o key.o modhess.o syminf.o porfuncs.o251: efol.o: commons.o key.o modhess.o syminf.o porfuncs.o
253: escp.o: modhess.o252: escp.o: modhess.o
254: fd.o: key.o modhess.o253: fd.o: key.o modhess.o
255: fetchz.o: commons.o key.o modneb.o modtwoend.o syminf.o modunres.o modmec.o modguess.o porfuncs.o msevb_common.o \254: fetchz.o: commons.o key.o modneb.o modtwoend.o syminf.o modunres.o modmec.o modguess.o porfuncs.o msevb_common.o \
256: binaryio.o AMH/globals.o255: binaryio.o AMH/globals.o
257: g2special.o: key.o modhess.o porfuncs.o256: g2special.o: key.o modhess.o porfuncs.o
258: g46merdiff.o: modhess.o257: g46merdiff.o: modhess.o
259: geopt.o: modcharmm.o commons.o key.o modhess.o modtwoend.o porfuncs.o efol.o modneb.o binaryio.o258: geopt.o: modcharmm.o commons.o key.o modhess.o modtwoend.o porfuncs.o efol.o modneb.o binaryio.o
260: getparams.o: commons.o porfuncs.o header.o modamber9.o259: getparams.o: commons.o porfuncs.o header.o
261: gmetry.o: commons.o260: gmetry.o: commons.o
262: guesspath.o: modguess.o key.o porfuncs.o261: guesspath.o: modguess.o key.o porfuncs.o
263: h2o.o: modhess.o262: h2o.o: modhess.o
264: hessout.o: modhess.o263: hessout.o: modhess.o
265: inertia.o: commons.o key.o264: inertia.o: commons.o key.o
266: intbeig.o: commons.o key.o modtwoend.o modneb.o265: intbeig.o: commons.o key.o modtwoend.o modneb.o
267: intbfgsts.o: commons.o key.o modtwoend.o vecck.o zwk.o modunres.o modhess.o266: intbfgsts.o: commons.o key.o modtwoend.o vecck.o zwk.o modunres.o modhess.o
268: intsecdiag.o: commons.o key.o 267: intsecdiag.o: commons.o key.o 
269: intxmylbfgs.o: commons.o key.o modtwoend.o porfuncs.o268: intxmylbfgs.o: commons.o key.o modtwoend.o porfuncs.o
270: ions.o: modhess.o269: ions.o: modhess.o


r10131/modamber9.f90 2017-01-21 10:39:54.726681854 +0000 r10130/modamber9.f90 2017-01-21 10:39:58.950926905 +0000
 10: !      INTEGER  match,bean,bondnumber,t, NDIHEDRALS 10: !      INTEGER  match,bean,bondnumber,t, NDIHEDRALS
 11: !      INTEGER, ALLOCATABLE, DIMENSION(:) :: DATOM1, DATOM2 !mxatms 11: !      INTEGER, ALLOCATABLE, DIMENSION(:) :: DATOM1, DATOM2 !mxatms
 12: !      INTEGER loopatom(20) 12: !      INTEGER loopatom(20)
 13: !      INTEGER, ALLOCATABLE, DIMENSION(:,:) ::  bondarray   ! (arraysize*4,2) 13: !      INTEGER, ALLOCATABLE, DIMENSION(:,:) ::  bondarray   ! (arraysize*4,2)
 14: !      DOUBLE PRECISION TINY 14: !      DOUBLE PRECISION TINY
 15: !      PARAMETER  (TINY=1.0D-12) 15: !      PARAMETER  (TINY=1.0D-12)
 16: !      DOUBLE PRECISION, ALLOCATABLE, DIMENSION(:) :: x, y, z, q    !(arraysize) 16: !      DOUBLE PRECISION, ALLOCATABLE, DIMENSION(:) :: x, y, z, q    !(arraysize)
 17: !      DOUBLE PRECISION, ALLOCATABLE, DIMENSION(:,:) :: r, vdwa, vdwb   !(arraysize,arraysize) 17: !      DOUBLE PRECISION, ALLOCATABLE, DIMENSION(:,:) :: r, vdwa, vdwb   !(arraysize,arraysize)
 18: !      DOUBLE PRECISION, ALLOCATABLE, DIMENSION(:) :: mass   !(arraysize) 18: !      DOUBLE PRECISION, ALLOCATABLE, DIMENSION(:) :: mass   !(arraysize)
 19: !      LOGICAL AMBERT 19: !      LOGICAL AMBERT
 20:       LOGICAL MDSTEPT, readcoords, NOCISTRANSRNA, CHECKCISTRANSALWAYS, GOODSTRUCTURE1, GOODSTRUCTURE2 20:       LOGICAL MDSTEPT, readcoords, NOCISTRANSRNA, GOODSTRUCTURE1, GOODSTRUCTURE2
 21:       CHARACTER(len=20) :: amberstr 21:       CHARACTER(len=20) :: amberstr
 22:       CHARACTER(len=8)  :: amberstr1 22:       CHARACTER(len=8)  :: amberstr1
 23:       DOUBLE PRECISION, DIMENSION(:), ALLOCATABLE :: coords1, coords, atmass1,cisarray1, cisarray2 23:       DOUBLE PRECISION, DIMENSION(:), ALLOCATABLE :: coords1, coords, atmass1
 24:       CHARACTER(len=81) :: prmtop 24:       CHARACTER(len=81) :: prmtop
 25:       DOUBLE PRECISION, PARAMETER :: TEMPPARAM = 0.0000001 25:       DOUBLE PRECISION, PARAMETER :: TEMPPARAM = 0.0000001
 26: !      INTEGER   NATOM, irest, ntb 26: !      INTEGER   NATOM, irest, ntb
 27: !      DOUBLE PRECISION    tt,crd(3*656),vel(3,656) 27: !      DOUBLE PRECISION    tt,crd(3*656),vel(3,656)
 28:  28: 
 29:        29:       
 30: !      CHARACTER(20) AMBERPRMTOP  30: !      CHARACTER(20) AMBERPRMTOP 
 31: !      DOUBLE PRECISION xbar, ybar, zbar 31: !      DOUBLE PRECISION xbar, ybar, zbar
 32: !   DOUBLE PRECISION, DIMENSION(:), ALLOCATABLE        :: y 32: !   DOUBLE PRECISION, DIMENSION(:), ALLOCATABLE        :: y
 33:    double precision,  dimension(:), allocatable :: x 33:    double precision,  dimension(:), allocatable :: x
 34:    integer, dimension(:), allocatable :: ix, ipairs 34:    integer, dimension(:), allocatable :: ix, ipairs
 35:    character(len=4), dimension(:), allocatable :: ih 35:    character(len=4), dimension(:), allocatable :: ih
 36:    integer :: myunitnew 
 37:  36: 
 38: logical master 37: logical master
 39: common/extra_logical/master 38: common/extra_logical/master
 40:  39: 
 41:  40: 
 42: integer iredir(8) 41: integer iredir(8)
 43: common/nmrrdr/redir,iredir 42: common/nmrrdr/redir,iredir
 44:  43: 
 45: integer nmropt,iprint,noeskp,iscale,ipnlty,iuse,maxsub,jar 44: integer nmropt,iprint,noeskp,iscale,ipnlty,iuse,maxsub,jar
 46: double precision scalm,pencut,ensave,tausw,ebdev,eadev,drjar 45: double precision scalm,pencut,ensave,tausw,ebdev,eadev,drjar
 47: common/nmr1amber/scalm,pencut,ensave,tausw,ebdev,eadev,drjar, & 46: common/nmr1/scalm,pencut,ensave,tausw,ebdev,eadev,drjar, &
 48:       nmropt,iprint,noeskp,iscale,ipnlty,iuse,maxsub,jar 47:       nmropt,iprint,noeskp,iscale,ipnlty,iuse,maxsub,jar
 49:  48: 
 50: integer     ntpr,ntwr,ntwx,ntwv,ntwe,ntpp,ioutfm,ntwprt,ntave 49: integer     ntpr,ntwr,ntwx,ntwv,ntwe,ntpp,ioutfm,ntwprt,ntave
 51: common/hulp/ntpr,ntwr,ntwx,ntwv,ntwe,ntpp,ioutfm,ntwprt,ntave 50: common/hulp/ntpr,ntwr,ntwx,ntwv,ntwe,ntpp,ioutfm,ntwprt,ntave
 52:  51: 
 53: !  parameters for LES: 52: !  parameters for LES:
 54:  53: 
 55: integer maxles,maxlestyp,maxlesadj 54: integer maxles,maxlestyp,maxlesadj
 56: parameter (maxles=500000) 55: parameter (maxles=500000)
 57: parameter (maxlestyp=100) 56: parameter (maxlestyp=100)
135:       ntrx,npscal,imin,maxcyc,ncyc,      &!30134:       ntrx,npscal,imin,maxcyc,ncyc,      &!30
136:       ntmin,irest,jfastw,                &!33135:       ntmin,irest,jfastw,                &!33
137:       ibgwat,ienwat,iorwat,              &!36136:       ibgwat,ienwat,iorwat,              &!36
138:       iwatpr,nsolw,igb,alpb,iyammp,           &!41137:       iwatpr,nsolw,igb,alpb,iyammp,           &!41
139:       gbsa,vrand,iwrap,nrespa,irespa,nrespai,icfe,  &!48138:       gbsa,vrand,iwrap,nrespa,irespa,nrespai,icfe,  &!48
140:       rbornstat,ivcap,iconstreff,        &!51139:       rbornstat,ivcap,iconstreff,        &!51
141:       neb,vv,tmode,ipol,iesp,ievb,nodeid,num_noshake,    &!59140:       neb,vv,tmode,ipol,iesp,ievb,nodeid,num_noshake,    &!59
142:       idecomp,icnstph,ntcnstph,maxdup,numexchg,repcrd,numwatkeep     !66141:       idecomp,icnstph,ntcnstph,maxdup,numexchg,repcrd,numwatkeep     !66
143: parameter (BC_MDI=66)142: parameter (BC_MDI=66)
144: 143: 
145: common/mdiamber/nrp,nspm,ig, &144: common/mdi/nrp,nspm,ig, &
146:       ntx,ntcx,ntxo,ntt,ntp,ntr,init,ntcm,nscm, &145:       ntx,ntcx,ntxo,ntt,ntp,ntr,init,ntcm,nscm, &
147:       isolvp,nsolut,ntc,ntcc,ntf,ntid,ntn,ntnb,nsnb,ndfmin, &146:       isolvp,nsolut,ntc,ntcc,ntf,ntid,ntn,ntnb,nsnb,ndfmin, &
148:       nstlim,nrc,ntrx,npscal,imin,maxcyc,ncyc,ntmin, &147:       nstlim,nrc,ntrx,npscal,imin,maxcyc,ncyc,ntmin, &
149:       irest,jfastw,ibgwat,ienwat,iorwat, &148:       irest,jfastw,ibgwat,ienwat,iorwat, &
150:       iwatpr,nsolw,igb,alpb,iyammp,gbsa,vrand,numexchg,repcrd,numwatkeep, &149:       iwatpr,nsolw,igb,alpb,iyammp,gbsa,vrand,numexchg,repcrd,numwatkeep, &
151:       iwrap,nrespa,irespa,nrespai,icfe,rbornstat, &150:       iwrap,nrespa,irespa,nrespai,icfe,rbornstat, &
152:       ivcap,iconstreff,idecomp,klambda,icnstph,ntcnstph,maxdup,neb,vv, &151:       ivcap,iconstreff,idecomp,klambda,icnstph,ntcnstph,maxdup,neb,vv, &
153:           tmode,ipol,iesp,ievb,nodeid,num_noshake152:           tmode,ipol,iesp,ievb,nodeid,num_noshake
154: 153: 
155: 154: 
278: 277: 
279: !logical calledonce      ! just call subroutine amberinterface once278: !logical calledonce      ! just call subroutine amberinterface once
280: !common/logicals/ calledonce279: !common/logicals/ calledonce
281: 280: 
282: ! sf344> extra variables added to turn on/off the continuous smoothing of non-bonded terms281: ! sf344> extra variables added to turn on/off the continuous smoothing of non-bonded terms
283: !       (that is: force switching for the electrostatics, Stoddard-Ford for the van der Waals terms)282: !       (that is: force switching for the electrostatics, Stoddard-Ford for the van der Waals terms)
284: 283: 
285: integer ifswitch, irespa2, nrespa2284: integer ifswitch, irespa2, nrespa2
286: double precision fswitchbeta285: double precision fswitchbeta
287: !double precision, dimension (:,:),allocatable :: dedrcut,ecut286: !double precision, dimension (:,:),allocatable :: dedrcut,ecut
288: common/extrasamberint/ifswitch,irespa2,nrespa2287: 
289: common/extrasamberdp/fswitchbeta288: common/extrasamber/ifswitch,fswitchbeta,irespa2,nrespa2
 289: 
290: 290: 
291: END MODULE modamber9 291: END MODULE modamber9 
292: 292: 


r10131/potential.f 2017-01-21 10:39:54.990697303 +0000 r10130/potential.f 2017-01-21 10:39:59.194940931 +0000
 15: C   You should have received a copy of the GNU General Public License 15: C   You should have received a copy of the GNU General Public License
 16: C   along with this program; if not, write to the Free Software 16: C   along with this program; if not, write to the Free Software
 17: C   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA 17: C   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 18: C 18: C
 19:       SUBROUTINE POTENTIAL(COORDS,ENERGY,VNEW,GTEST,STEST,RMS,PTEST,BOXTEST) 19:       SUBROUTINE POTENTIAL(COORDS,ENERGY,VNEW,GTEST,STEST,RMS,PTEST,BOXTEST)
 20:       USE COMMONS 20:       USE COMMONS
 21:       USE KEY 21:       USE KEY
 22:       USE MODHESS 22:       USE MODHESS
 23:       USE MODCHARMM 23:       USE MODCHARMM
 24:       use PORFUNCS 24:       use PORFUNCS
 25:       USE MODAMBER9,only : ifswitch,goodstructure1,irespa,cisarray1,checkcistransalways 25:       USE MODAMBER9,only : ifswitch,goodstructure1,irespa
 26:       use globals 26:       use globals
 27:  27: 
 28:       IMPLICIT NONE 28:       IMPLICIT NONE
 29:  29: 
 30:       INTEGER J1, J2, J3, NN, MM, IPOT, NELEMENTS, NTYPE(105), NCOUNT, ISTART, NDUM, NPCALL, ECALL, FCALL, SCALL, 30:       INTEGER J1, J2, J3, NN, MM, IPOT, NELEMENTS, NTYPE(105), NCOUNT, ISTART, NDUM, NPCALL, ECALL, FCALL, SCALL,
 31:      1        J4, J5, J6, JSTART, ISTAT 31:      1        J4, J5, J6, JSTART, ISTAT
 32:       DOUBLE PRECISION VNEW(3*NATOMS), ENERGY, P2, P3, BA, XLAMBDA, AMAT(3,3), AINV(3,3), TEMPX,  32:       DOUBLE PRECISION VNEW(3*NATOMS), ENERGY, P2, P3, BA, XLAMBDA, AMAT(3,3), AINV(3,3), TEMPX, 
 33:      1  TEMPXX, TEMPH(3,3), TEMPV(3), ENERGY1, ENERGY2, 33:      1  TEMPXX, TEMPH(3,3), TEMPV(3), ENERGY1, ENERGY2,
 34:      1  COORDS(3*NATOMS), EDOUBLE, XTEMP, YTEMP, ZTEMP, GAMESR(3,3), GAMEST(3), 34:      1  COORDS(3*NATOMS), EDOUBLE, XTEMP, YTEMP, ZTEMP, GAMESR(3,3), GAMEST(3),
 35:      2  TEMPA, RMS, TEMP(6), COORDSO(3*NATOMS), GRADO(3*NATOMS), GEMAX, BOXLX, 35:      2  TEMPA, RMS, TEMP(6), COORDSO(3*NATOMS), GRADO(3*NATOMS), GEMAX, BOXLX,
1838:          IF (SSTEST) CALL SECDFTB(NATOMS,COORDS,VNEW,PARAM1)1838:          IF (SSTEST) CALL SECDFTB(NATOMS,COORDS,VNEW,PARAM1)
1839:          IF (PTEST) THEN1839:          IF (PTEST) THEN
1840:             WRITE(*,10) ' potential> Energy for last cycle=',ENERGY,' eV'1840:             WRITE(*,10) ' potential> Energy for last cycle=',ENERGY,' eV'
1841:             WRITE(ESTRING,10) 'Energy for last cycle=',ENERGY,' eV'1841:             WRITE(ESTRING,10) 'Energy for last cycle=',ENERGY,' eV'
1842:          ENDIF1842:          ENDIF
1843:       ELSE IF (AMBER) THEN1843:       ELSE IF (AMBER) THEN
1844:          CALL AMB(COORDS,VNEW,ENERGY,GTEST,SSTEST)1844:          CALL AMB(COORDS,VNEW,ENERGY,GTEST,SSTEST)
1845: 1845: 
1846: 1846: 
1847:       ELSE IF (AMBERT) THEN1847:       ELSE IF (AMBERT) THEN
1848:          IF(CHECKCISTRANSALWAYS) CALL CHECK_CISTRANS_PROTEIN(COORDS,NATOMS,STEST,MINOMEGA,CISARRAY1)1848: !        irespa=50
1849:          CALL AMBERENERGIES(COORDS,VNEW,ENERGY,GTEST,STEST)1849:          CALL AMBERENERGIES(COORDS,VNEW,ENERGY,GTEST,STEST)
1850:          IF (STEST) CALL AMBERSECDER(COORDS,.TRUE.)1850:          IF (STEST) CALL AMBERSECDER(COORDS,.TRUE.)
1851:          IF (PTEST) THEN1851:          IF (PTEST) THEN
1852:             WRITE(*,10) ' potential> Energy for last cycle=',ENERGY,' kcal/mol'1852:             WRITE(*,10) ' potential> Energy for last cycle=',ENERGY,' kcal/mol'
1853:             WRITE(ESTRING,10) 'Energy for last cycle=',ENERGY,' kcal/mol'1853:             WRITE(ESTRING,10) 'Energy for last cycle=',ENERGY,' kcal/mol'
1854:          ENDIF1854:          ENDIF
1855: C          DO i=1,3*NATOMS1855: C          DO i=1,3*NATOMS
1856: C                WRITE(*,*) VNEW(i)1856: C                WRITE(*,*) VNEW(i)
1857: C          END DO1857: C          END DO
1858:       ELSE IF (NABT) THEN1858:       ELSE IF (NABT) THEN


r10131/tryconnect.f90 2017-01-21 10:39:52.334541410 +0000 r10130/tryconnect.f90 2017-01-21 10:39:57.074818543 +0000
 24:           USE NEWNEBMODULE 24:           USE NEWNEBMODULE
 25:           USE CONNECTDATA 25:           USE CONNECTDATA
 26:           USE KEYCONNECT 26:           USE KEYCONNECT
 27:           USE CONNECTUTILS 27:           USE CONNECTUTILS
 28:           USE NEBTOCONNECT 28:           USE NEBTOCONNECT
 29:           USE KEYNEB, ONLY: NIMAGE, NITERMAX 29:           USE KEYNEB, ONLY: NIMAGE, NITERMAX
 30:           USE KEY, ONLY: UNRST, DEBUG, FILTH, FILTHSTR, DUMPALLPATHS, TWOD, MAXTSENERGY, RIGIDBODY, & 30:           USE KEY, ONLY: UNRST, DEBUG, FILTH, FILTHSTR, DUMPALLPATHS, TWOD, MAXTSENERGY, RIGIDBODY, &
 31:   &                   PERMDIST, MAXBARRIER, GROWSTRINGT, DESMDEBUG, BULKT, AMBERT, NABT 31:   &                   PERMDIST, MAXBARRIER, GROWSTRINGT, DESMDEBUG, BULKT, AMBERT, NABT
 32:           USE MODGUESS 32:           USE MODGUESS
 33:           USE MODUNRES 33:           USE MODUNRES
 34:           USE MODCHARMM, ONLY : CHRMMT,NCHENCALLS,CHECKOMEGAT,CHECKCHIRALT,NOCISTRANS,MINOMEGA 34:           USE MODCHARMM, ONLY : CHRMMT,NCHENCALLS,CHECKOMEGAT,CHECKCHIRALT,NOCISTRANS
 35:           USE MODAMBER9, ONLY : NOCISTRANSRNA, GOODSTRUCTURE1, GOODSTRUCTURE2, CISARRAY1, CISARRAY2 35:           USE MODAMBER9, ONLY : NOCISTRANSRNA, GOODSTRUCTURE1, GOODSTRUCTURE2
 36:           USE MODMEC 36:           USE MODMEC
 37:           USE KEYUTILS 37:           USE KEYUTILS
 38:           USE COMMONS, ONLY : NINTS, PARAM1, PARAM2, PARAM3, ZSYM 38:           USE COMMONS, ONLY : NINTS, PARAM1, PARAM2, PARAM3, ZSYM
 39:           USE PORFUNCS 39:           USE PORFUNCS
 40:           USE GSDATA, ONLY : GSITERDENSITY, GSCURITERD=>ITERD 40:           USE GSDATA, ONLY : GSITERDENSITY, GSCURITERD=>ITERD
 41:           IMPLICIT NONE 41:           IMPLICIT NONE
 42:           DOUBLE PRECISION RMAT(3,3) 42:           DOUBLE PRECISION RMAT(3,3)
 43:  43: 
 44:           INTEGER,INTENT(IN) :: JS,JF 44:           INTEGER,INTENT(IN) :: JS,JF
 45:            45:           
386:                    CALL CHECK_CISTRANS_RNA(QPLUS,NATOMS,ZSYM,GOODSTRUCTURE1)386:                    CALL CHECK_CISTRANS_RNA(QPLUS,NATOMS,ZSYM,GOODSTRUCTURE1)
387:                    CALL CHECK_CISTRANS_RNA(QMINUS,NATOMS,ZSYM,GOODSTRUCTURE2)387:                    CALL CHECK_CISTRANS_RNA(QMINUS,NATOMS,ZSYM,GOODSTRUCTURE2)
388:                    IF(.NOT.GOODSTRUCTURE1.OR..NOT.GOODSTRUCTURE2) THEN388:                    IF(.NOT.GOODSTRUCTURE1.OR..NOT.GOODSTRUCTURE2) THEN
389:                     PRINT '(A,G20.10,A)',' tryconnect> Transition state with energy ',TS(I)%DATA%E, &389:                     PRINT '(A,G20.10,A)',' tryconnect> Transition state with energy ',TS(I)%DATA%E, &
390:   &                                     ' ignored, cis-trans isomerisation detected in the RNA ribose ring.'390:   &                                     ' ignored, cis-trans isomerisation detected in the RNA ribose ring.'
391:                     DEALLOCATE(TS(I)%DATA%EVALMIN)391:                     DEALLOCATE(TS(I)%DATA%EVALMIN)
392:                     DEALLOCATE(QPLUS,QMINUS,EPLUS,EMINUS)392:                     DEALLOCATE(QPLUS,QMINUS,EPLUS,EMINUS)
393:                     TS(I)%DATA%BAD=.TRUE.393:                     TS(I)%DATA%BAD=.TRUE.
394:                     CYCLE394:                     CYCLE
395:                    END IF395:                    END IF
396:                  ELSE 
397:                    CALL CHECK_CISTRANS_PROTEIN(QPLUS,NATOMS,GOODSTRUCTURE1,MINOMEGA,CISARRAY1) 
398:                    CALL CHECK_CISTRANS_PROTEIN(QMINUS,NATOMS,GOODSTRUCTURE2,MINOMEGA,CISARRAY2) 
399:                    CISARRAY1=CISARRAY1-CISARRAY2 
400:                    GOODSTRUCTURE1=.TRUE. 
401:                    DO J1=1,NATOMS 
402:                     IF(CISARRAY1(J1)/=0) THEN 
403:                       GOODSTRUCTURE1=.FALSE. 
404:                       WRITE(*,'(A,I6)') ' tryconnect> cis-trans isomerisation of a peptide bond detected involving atom ', J1 
405:                     END IF 
406:                    END DO 
407:                    IF(.NOT.GOODSTRUCTURE1) THEN 
408:                       WRITE(*,'(A)') ' tryconnect> Cis-trans isomerisation of a peptide bond detected, rejecting' 
409:                     PRINT '(A,G20.10,A)',' tryconnect> Transition state with energy ',TS(I)%DATA%E, & 
410:   &                                     ' ignored, cis-trans isomerisation detected in one or more peptide bonds.' 
411:                     DEALLOCATE(TS(I)%DATA%EVALMIN) 
412:                     DEALLOCATE(QPLUS,QMINUS,EPLUS,EMINUS) 
413:                     TS(I)%DATA%BAD=.TRUE. 
414:                     CYCLE 
415:                    END IF 
416:                  END IF396:                  END IF
417:                END IF397:                END IF
418:                AMIDEFAIL=.FALSE.398:                AMIDEFAIL=.FALSE.
419:                IF (CHRMMT .AND. CHECKOMEGAT) &399:                IF (CHRMMT .AND. CHECKOMEGAT) &
420:                   CALL CHECKOMEGA(QPLUS,AMIDEFAIL)400:                   CALL CHECKOMEGA(QPLUS,AMIDEFAIL)
421:                IF (CHRMMT .AND. CHECKOMEGAT .AND. .NOT.AMIDEFAIL) &401:                IF (CHRMMT .AND. CHECKOMEGAT .AND. .NOT.AMIDEFAIL) &
422:                   CALL CHECKOMEGA(QMINUS,AMIDEFAIL)402:                   CALL CHECKOMEGA(QMINUS,AMIDEFAIL)
423:                CHIRALFAIL=.FALSE.403:                CHIRALFAIL=.FALSE.
424:                IF (CHRMMT .AND. CHECKCHIRALT) &404:                IF (CHRMMT .AND. CHECKCHIRALT) &
425:                   CALL CHECKCHIRAL(QPLUS,CHIRALFAIL)405:                   CALL CHECKCHIRAL(QPLUS,CHIRALFAIL)


legend
Lines Added 
Lines changed
 Lines Removed

hdiff - version: 2.1.0