From: Adam Kazimierz Sieradzan Date: Fri, 24 Aug 2012 12:07:29 +0000 (-0400) Subject: Dzialajaczy dla D aminokwasow whama(mono) psuedosymetria dla GABowego X-Git-Url: http://mmka.chem.univ.gda.pl/gitweb/?p=unres.git;a=commitdiff_plain;h=2d66111aef48a7db8a87b9f9b3882d640ea53435 Dzialajaczy dla D aminokwasow whama(mono) psuedosymetria dla GABowego --- diff --git a/PARAM/pot_tor_G631_DIL.parm b/PARAM/pot_tor_G631_DIL.parm index e17ff96..92d0182 100644 --- a/PARAM/pot_tor_G631_DIL.parm +++ b/PARAM/pot_tor_G631_DIL.parm @@ -99,12 +99,12 @@ 5 1.79985E-02 -5.08437E-02 6 1.77828E-02 -5.16668E-03 6 0 ** L-Pro-L-Pro-reg - 1 4.18257E+00 2.68786E+00 - 2 2.08368E+00 5.31464E-01 - 3 8.87399E-01 1.16362E+00 - 4 5.86771E-01 7.55998E-01 - 5 2.05355E-01 6.41354E-01 - 6 1.89130E-02 3.44351E-01 + 1 4.18257E+00 -2.68786E+00 + 2 2.08368E+00 -5.31464E-01 + 3 8.87399E-01 -1.16362E+00 + 4 5.86771E-01 -7.55998E-01 + 5 2.05355E-01 -6.41354E-01 + 6 1.89130E-02 -3.44351E-01 6 0 ** Gly-D-Pro-pir 1 -9.88019E-01 -1.24293E+00 2 1.06829E-03 1.15125E-02 @@ -176,12 +176,12 @@ 5 -1.26829E-01 -2.38332E-01 6 1.44938E-02 -2.65417E-01 6 0 ** L-Pro-D-Pro-pir - 1 -3.36624E+00 -3.05377E+00 - 2 -1.25072E+00 1.08327E+00 - 3 1.13263E+00 -2.74805E-01 - 4 -3.43766E-01 -5.48177E-01 - 5 -1.29748E-01 4.77420E-01 - 6 2.21219E-01 -1.85239E-01 + 1 -3.36624E+00 3.05377E+00 + 2 -1.25072E+00 -1.08327E+00 + 3 1.13263E+00 2.74805E-01 + 4 -3.43766E-01 5.48177E-01 + 5 -1.29748E-01 -4.77420E-01 + 6 2.21219E-01 1.85239E-01 6 0 ** L-Pro-D-Ala-pir 1 -2.38982E+00 7.41152E-01 2 5.43079E-01 -6.49673E-01 diff --git a/bin/wham/wham_multparm-ham_rep-oldparm b/bin/wham/wham_multparm-ham_rep-oldparm index b08f482..81903af 100755 Binary files a/bin/wham/wham_multparm-ham_rep-oldparm and b/bin/wham/wham_multparm-ham_rep-oldparm differ diff --git a/source/unres/src_MD-M/energy_p_new_barrier.F b/source/unres/src_MD-M/energy_p_new_barrier.F index 734acc1..f2f6372 100644 --- a/source/unres/src_MD-M/energy_p_new_barrier.F +++ b/source/unres/src_MD-M/energy_p_new_barrier.F @@ -5052,7 +5052,7 @@ c do j = 1,3 xx = xx + x_prime(j)*dc_norm(j,i+nres) yy = yy + y_prime(j)*dc_norm(j,i+nres) - zz = zz + z_prime(j)*dc_norm(j,i+nres) + zz = zz + dsign(1.0,itype(i))*z_prime(j)*dc_norm(j,i+nres) enddo xxtab(i)=xx @@ -5062,7 +5062,7 @@ C C Compute the energy of the ith side cbain C c write (2,*) "xx",xx," yy",yy," zz",zz - it=itype(i) + it=iabs(itype(i)) do j = 1,65 x(j) = sc_parmin(j,it) enddo @@ -5070,7 +5070,7 @@ c write (2,*) "xx",xx," yy",yy," zz",zz Cc diagnostics - remove later xx1 = dcos(alph(2)) yy1 = dsin(alph(2))*dcos(omeg(2)) - zz1 = -dsin(alph(2))*dsin(omeg(2)) + zz1 = -dsign(1.0,itype(i))*dsin(alph(2))*dsin(omeg(2)) write(2,'(3f8.1,3f9.3,1x,3f9.3)') & alph(2)*rad2deg,omeg(2)*rad2deg,theta(3)*rad2deg,xx,yy,zz, & xx1,yy1,zz1 diff --git a/source/unres/src_MD/COMMON.SCCOR b/source/unres/src_MD/COMMON.SCCOR index ca6210f..6e39f93 100644 --- a/source/unres/src_MD/COMMON.SCCOR +++ b/source/unres/src_MD/COMMON.SCCOR @@ -7,8 +7,10 @@ cc Parameters of the SCCOR term common/sccor/v1sccor(maxterm_sccor,3,20,20), & v2sccor(maxterm_sccor,3,20,20), & v0sccor(maxterm_sccor,20), - & nterm_sccor(ntyp,ntyp),isccortyp(ntyp),nsccortyp, - & nlor_sccor(ntyp,ntyp),vlor1sccor(maxterm_sccor,20,20), + & nterm_sccor(-ntyp:ntyp,-ntyp:ntyp),isccortyp(-ntyp:ntyp), + & nsccortyp, + & nlor_sccor(-ntyp:ntyp,-ntyp:ntyp), + & vlor1sccor(maxterm_sccor,20,20), & vlor2sccor(maxterm_sccor,20,20), & vlor3sccor(maxterm_sccor,20,20),gloc_sc(3,0:maxres2,10), & dcostau(3,3,3,maxres2),dsintau(3,3,3,maxres2), diff --git a/source/unres/src_MD/Makefile b/source/unres/src_MD/Makefile index 8ebb82b..e144e8b 100644 --- a/source/unres/src_MD/Makefile +++ b/source/unres/src_MD/Makefile @@ -11,7 +11,7 @@ FFLAGS2 = -c -w -g -O0 -I$(INSTALL_DIR)/include FFLAGSE = -c -w -O3 -CB -ipo -ipo_obj -opt_report -I$(INSTALL_DIR)/include -LIBS = -L$(INSTALL_DIR)/lib -lmpich xdrf/libxdrf.a +LIBS = -L$(INSTALL_DIR)/lib -lmpich ../../lib/xdrf/libxdrf.a ARCH = LINUX PP = /lib/cpp -P @@ -60,7 +60,7 @@ E0LL2Y: ${object} xdrf/libxdrf.a ${FC} ${OPT} ${object} cinfo.o ${LIBS} -o ${BIN} xdrf/libxdrf.a: - cd xdrf && make + cd ../../lib/xdrf && make clean: diff --git a/source/unres/src_MD/cinfo.f b/source/unres/src_MD/cinfo.f index d3ab9f4..bb5fadc 100644 --- a/source/unres/src_MD/cinfo.f +++ b/source/unres/src_MD/cinfo.f @@ -1,10 +1,10 @@ C DO NOT EDIT THIS FILE - IT HAS BEEN GENERATED BY COMPINFO.C -C 2 5 358 +C 2 5 359 subroutine cinfo include 'COMMON.IOUNITS' write(iout,*)'++++ Compile info ++++' - write(iout,*)'Version 2.5 build 358' - write(iout,*)'compiled Wed Jul 11 07:10:02 2012' + write(iout,*)'Version 2.5 build 359' + write(iout,*)'compiled Fri Aug 24 05:18:51 2012' write(iout,*)'compiled by aks255@matrix.chem.cornell.edu' write(iout,*)'OS name: Linux ' write(iout,*)'OS release: 2.6.34.9-69.fc13.x86_64 ' @@ -18,7 +18,7 @@ C 2 5 358 write(iout,*)'FFLAGS1 = -c -w -g -d2 -CA -CB -I$(INSTALL_DIR)...' write(iout,*)'FFLAGS2 = -c -w -g -O0 -I$(INSTALL_DIR)/include ' write(iout,*)'FFLAGSE = -c -w -O3 -CB -ipo -ipo_obj -opt_rep...' - write(iout,*)'LIBS = -L$(INSTALL_DIR)/lib -lmpich xdrf/libxdr...' + write(iout,*)'LIBS = -L$(INSTALL_DIR)/lib -lmpich ../../lib/x...' write(iout,*)'ARCH = LINUX' write(iout,*)'PP = /lib/cpp -P' write(iout,*)'object = unres.o arcos.o cartprint.o chainbuild...' diff --git a/source/unres/src_MD/energy_p_new_barrier.F b/source/unres/src_MD/energy_p_new_barrier.F index 0e4a3bf..e0c61d8 100644 --- a/source/unres/src_MD/energy_p_new_barrier.F +++ b/source/unres/src_MD/energy_p_new_barrier.F @@ -5320,7 +5320,7 @@ c do j = 1,3 xx = xx + x_prime(j)*dc_norm(j,i+nres) yy = yy + y_prime(j)*dc_norm(j,i+nres) - zz = zz + z_prime(j)*dc_norm(j,i+nres) + zz = zz + dsign(1.0,itype(i))*z_prime(j)*dc_norm(j,i+nres) enddo xxtab(i)=xx @@ -5330,7 +5330,7 @@ C C Compute the energy of the ith side cbain C c write (2,*) "xx",xx," yy",yy," zz",zz - it=itype(i) + it=iabs(itype(i)) do j = 1,65 x(j) = sc_parmin(j,it) enddo @@ -5338,7 +5338,7 @@ c write (2,*) "xx",xx," yy",yy," zz",zz Cc diagnostics - remove later xx1 = dcos(alph(2)) yy1 = dsin(alph(2))*dcos(omeg(2)) - zz1 = -dsin(alph(2))*dsin(omeg(2)) + zz1 = -dsign(1.0,itype(i))*dsin(alph(2))*dsin(omeg(2)) write(2,'(3f8.1,3f9.3,1x,3f9.3)') & alph(2)*rad2deg,omeg(2)*rad2deg,theta(3)*rad2deg,xx,yy,zz, & xx1,yy1,zz1 diff --git a/source/unres/src_MD/parmread.F b/source/unres/src_MD/parmread.F index b1edf11..9d5100b 100644 --- a/source/unres/src_MD/parmread.F +++ b/source/unres/src_MD/parmread.F @@ -659,9 +659,10 @@ C read (isccor,*,end=113,err=113) nsccortyp #ifdef SCCORPDB read (isccor,*,end=113,err=113) (isccortyp(i),i=1,ntyp) -#else - read (isccor,*,end=113,err=113) (isccortyp(i),i=-ntyp,ntyp) -#endif + do i=-ntyp,-1 + isccortyp(i)=-isccortyp(-i) + enddo + iscprol=isccortyp(20) c write (iout,*) 'ntortyp',ntortyp maxinter=3 cc maxinter is maximum interaction sites @@ -674,7 +675,24 @@ cc maxinter is maximum interaction sites do k=1,nterm_sccor(i,j) read (isccor,*,end=113,err=113) kk,v1sccor(k,l,i,j) - & ,v2sccor(k,l,i,j) + & ,v2sccor(k,l,i,j) + if (j.eq.iscprol) then + v1sccor(k,l,i,-j)=v1sccor(k,l,i,j)*0.5d0 + & +v2sccor(k,l,i,j)*dsqrt(0.75d0) + v2sccor(k,l,i,-j)=-v2sccor(k,l,i,j)*0.5d0 + & +v1sccor(k,l,i,j)*dsqrt(0.75d0) + v1sccor(k,l,-i,-j)=v1sccor(k,l,i,j) + v2sccor(k,l,-i,-j)=-v2sccor(k,l,i,j) + v1sccor(k,l,-i,j)=v1sccor(k,l,i,-j) + v2sccor(k,l,-i,j)=-v2sccor(k,l,i,-j) + else + v1sccor(k,l,i,-j)=-v1sccor(k,l,i,j) + v2sccor(k,l,i,-j)=-v2sccor(k,l,i,j) + v1sccor(k,l,-i,-j)=v1sccor(k,l,i,j) + v2sccor(k,l,-i,-j)=-v2sccor(k,l,i,j) + v1sccor(k,l,-i,j)=v1sccor(k,l,i,-j) + v2sccor(k,l,-i,j)=-v2sccor(k,l,i,-j) + endif v0ijsccor=v0ijsccor+si*v1sccor(k,l,i,j) si=-si enddo @@ -689,7 +707,38 @@ cc maxinter is maximum interaction sites enddo enddo close (isccor) - +#else + read (isccor,*,end=113,err=113) (isccortyp(i),i=1,ntyp) +c write (iout,*) 'ntortyp',ntortyp + maxinter=3 +cc maxinter is maximum interaction sites + do l=1,maxinter + do i=1,nsccortyp + do j=1,nsccortyp + read (isccor,*,end=113,err=113) + nterm_sccor(i,j),nlor_sccor(i,j) + v0ijsccor=0.0d0 + si=-1.0d0 + + do k=1,nterm_sccor(i,j) + read (isccor,*,end=113,err=113) kk,v1sccor(k,l,i,j) + & ,v2sccor(k,l,i,j) + v0ijsccor=v0ijsccor+si*v1sccor(k,l,i,j) + si=-si + enddo + do k=1,nlor_sccor(i,j) + read (isccor,*,end=113,err=113) kk,vlor1sccor(k,i,j), + & vlor2sccor(k,i,j),vlor3sccor(k,i,j) + v0ijsccor=v0ijsccor+vlor1sccor(k,i,j)/ + &(1+vlor3sccor(k,i,j)**2) + enddo + v0sccor(i,j)=v0ijsccor + enddo + enddo + enddo + close (isccor) + +#endif if (lprint) then write (iout,'(/a/)') 'Torsional constants:' do i=1,nsccortyp diff --git a/source/wham/src-M/energy_p_new.F b/source/wham/src-M/energy_p_new.F index b389917..751f59b 100644 --- a/source/wham/src-M/energy_p_new.F +++ b/source/wham/src-M/energy_p_new.F @@ -3918,7 +3918,7 @@ C cosfac=dsqrt(cosfac2) sinfac2=0.5d0/(1.0d0-costtab(i+1)) sinfac=dsqrt(sinfac2) - it=itype(i) + it=iabs(itype(i)) if (it.eq.10) goto 1 c C Compute the axes of tghe local cartesian coordinates system; store in @@ -3958,7 +3958,7 @@ c do j = 1,3 xx = xx + x_prime(j)*dc_norm(j,i+nres) yy = yy + y_prime(j)*dc_norm(j,i+nres) - zz = zz + z_prime(j)*dc_norm(j,i+nres) + zz = zz + dsign(1.0,itype(i))*z_prime(j)*dc_norm(j,i+nres) enddo xxtab(i)=xx @@ -3968,7 +3968,7 @@ C C Compute the energy of the ith side cbain C c write (2,*) "xx",xx," yy",yy," zz",zz - it=itype(i) + it=iabs(itype(i)) do j = 1,65 x(j) = sc_parmin(j,it) enddo @@ -3976,7 +3976,7 @@ c write (2,*) "xx",xx," yy",yy," zz",zz Cc diagnostics - remove later xx1 = dcos(alph(2)) yy1 = dsin(alph(2))*dcos(omeg(2)) - zz1 = -dsin(alph(2))*dsin(omeg(2)) + zz1 = -dsign(1.0,itype(i))*dsin(alph(2))*dsin(omeg(2)) write(2,'(3f8.1,3f9.3,1x,3f9.3)') & alph(2)*rad2deg,omeg(2)*rad2deg,theta(3)*rad2deg,xx,yy,zz, & xx1,yy1,zz1 diff --git a/source/wham/src-M/molread_zs.F b/source/wham/src-M/molread_zs.F index 885c57b..dc71f06 100644 --- a/source/wham/src-M/molread_zs.F +++ b/source/wham/src-M/molread_zs.F @@ -58,9 +58,9 @@ C Convert sequence to numeric code #endif itel(i)=0 #ifdef PROCOR - else if (itype(i+1).ne.20) then + else if (iabs(itype(i+1)).ne.20) then #else - else if (itype(i).ne.20) then + else if (iabs(itype(i)).ne.20) then #endif itel(i)=1 else diff --git a/source/wham/src/COMMON.ALLPARM b/source/wham/src/COMMON.ALLPARM index 896b5a2..6e18e93 100644 --- a/source/wham/src/COMMON.ALLPARM +++ b/source/wham/src/COMMON.ALLPARM @@ -3,10 +3,12 @@ & vbldsc0_all(maxbondterm,ntyp,max_parm), & aksc_all(maxbondterm,ntyp,max_parm), & abond0_all(maxbondterm,ntyp,max_parm), - & a0thet_all(ntyp,max_parm),athet_all(2,ntyp,max_parm), - & bthet_all(2,ntyp,max_parm),polthet_all(0:3,ntyp,max_parm), - & gthet_all(3,ntyp,max_parm),theta0_all(ntyp,max_parm), - & sig0_all(ntyp,max_parm),sigc0_all(ntyp,max_parm), + & a0thet_all(-ntyp:ntyp,max_parm), + & athet_all(2,-ntyp:ntyp,-1:1,-1:1,max_parm), + & bthet_all(2,-ntyp:ntyp,-1:1,-1:1,max_parm), + & polthet_all(0:3,-ntyp:ntyp,max_parm), + & gthet_all(3,-ntyp:ntyp,max_parm),theta0_all(-ntyp:ntyp,max_parm), + & sig0_all(-ntyp:ntyp,max_parm),sigc0_all(-ntyp:ntyp,max_parm), & aa0thet_all(maxthetyp1,maxthetyp1,maxthetyp1,max_parm), & aathet_all(maxtheterm,maxthetyp1,maxthetyp1,maxthetyp1,max_parm), & bbthet_all(maxsingle,maxtheterm2,maxthetyp1,maxthetyp1, @@ -22,23 +24,32 @@ & ggthet_all(maxdouble,maxdouble,maxtheterm3,maxthetyp1,maxthetyp1, & maxthetyp1,max_parm), & dsc_all(ntyp1,max_parm),bsc_all(maxlob,ntyp,max_parm), - & censc_all(3,maxlob,ntyp,max_parm), - & gaussc_all(3,3,maxlob,ntyp,max_parm),dsc0_all(ntyp1,max_parm), + & censc_all(3,maxlob,-ntyp:ntyp,max_parm), + & gaussc_all(3,3,maxlob,-ntyp:ntyp,max_parm), + & dsc0_all(ntyp1,max_parm), & sc_parmin_all(65,ntyp,max_parm), - & v0_all(maxtor,maxtor,max_parm), - & v1_all(maxterm,maxtor,maxtor,max_parm), - & v2_all(maxterm,maxtor,maxtor,max_parm), + & v0_all(-maxtor:maxtor,-maxtor:maxtor,2,max_parm), + & v1_all(maxterm,-maxtor:maxtor,-maxtor:maxtor,2,max_parm), + & v2_all(maxterm,-maxtor:maxtor,-maxtor:maxtor,2,max_parm), & vlor1_all(maxlor,maxtor,maxtor,max_parm), & vlor2_all(maxlor,maxtor,maxtor,max_parm), & vlor3_all(maxlor,maxtor,maxtor,max_parm), - & v1c_all(2,maxtermd_1,maxtor,maxtor,maxtor,max_parm), - & v1s_all(2,maxtermd_1,maxtor,maxtor,maxtor,max_parm), - & v2c_all(maxtermd_2,maxtermd_2,maxtor,maxtor,maxtor,max_parm), - & v2s_all(maxtermd_2,maxtermd_2,maxtor,maxtor,maxtor,max_parm), - & b1_all(2,maxtor,max_parm),b2_all(2,maxtor,max_parm), - & cc_all(2,2,maxtor,max_parm),dd_all(2,2,maxtor,max_parm), - & ee_all(2,2,maxtor,max_parm),ctilde_all(2,2,maxtor,max_parm), - & dtilde_all(2,2,maxtor,max_parm),b1tilde_all(2,maxtor,max_parm), + & v1c_all(2,maxtermd_1,-maxtor:maxtor,-maxtor:maxtor, + & -maxtor:maxtor,2,max_parm), + & v1s_all(2,maxtermd_1,-maxtor:maxtor,-maxtor:maxtor, + & -maxtor:maxtor,2,max_parm), + & v2c_all(maxtermd_2,maxtermd_2,-maxtor:maxtor, + & -maxtor:maxtor,-maxtor:maxtor,2,max_parm), + & v2s_all(maxtermd_2,maxtermd_2,-maxtor:maxtor,-maxtor:maxtor, + & -maxtor:maxtor,2,max_parm), + & b1_all(2,-maxtor:maxtor,max_parm), + & b2_all(2,-maxtor:maxtor,max_parm), + & cc_all(2,2,-maxtor:maxtor,max_parm), + & dd_all(2,2,-maxtor:maxtor,max_parm), + & ee_all(2,2,-maxtor:maxtor,max_parm), + & ctilde_all(2,2,-maxtor:maxtor,max_parm), + & dtilde_all(2,2,-maxtor:maxtor,max_parm), + & b1tilde_all(2,-maxtor:maxtor,max_parm), & app_all(2,2,max_parm),bpp_all(2,2,max_parm), & ael6_all(2,2,max_parm),ael3_all(2,2,max_parm), & aad_all(ntyp,2,max_parm),bad_all(ntyp,2,max_parm), @@ -51,10 +62,13 @@ & v1ss_all(max_parm),v2ss_all(max_parm),v3ss_all(max_parm), & v1sccor_all(maxterm_sccor,3,ntyp,ntyp,max_parm), & v2sccor_all(maxterm_sccor,3,ntyp,ntyp,max_parm) - integer nlob_all(ntyp1,max_parm),nlor_all(maxtor,maxtor,max_parm), - & nterm_all(maxtor,maxtor,max_parm), - & ntermd1_all(maxtor,maxtor,maxtor,max_parm), - & ntermd2_all(maxtor,maxtor,maxtor,max_parm), + integer nlob_all(ntyp1,max_parm), + & nlor_all(-maxtor:maxtor,-maxtor:maxtor,2,max_parm), + & nterm_all(-maxtor:maxtor,-maxtor:maxtor,2,max_parm), + & ntermd1_all(-maxtor:maxtor,-maxtor:maxtor, + & -maxtor:maxtor,2,max_parm), + & ntermd2_all(-maxtor:maxtor,-maxtor:maxtor, + & -maxtor:maxtor,2,max_parm), & nbondterm_all(ntyp,max_parm),nthetyp_all(max_parm), & ithetyp_all(ntyp1,max_parm),ntheterm_all(max_parm), & ntheterm2_all(max_parm),ntheterm3_all(max_parm), diff --git a/source/wham/src/Makefile b/source/wham/src/Makefile index a76601e..6851373 100644 --- a/source/wham/src/Makefile +++ b/source/wham/src/Makefile @@ -4,7 +4,7 @@ FC= ifort #OPT = -mcmodel=medium -O3 -ip -w OPT = -mcmodel=medium -g -CB FFLAGS = ${OPT} -c -I. -I./include_unres -I$(INSTALL_DIR)/include -LIBS = -L$(INSTALL_DIR)/lib -lmpich -lpmpich xdrf/libxdrf.a +LIBS = -L$(INSTALL_DIR)/lib -lmpich -lpmpich ../../lib/xdrf/libxdrf.a CPPFLAGS = -DMPI -DLINUX -DUNRES -DSPLITELE -DPROCOR -DPGI -DISNAN -DAMD64 \ -DCRYST_BOND -DCRYST_THETA -DCRYST_SC diff --git a/source/wham/src/cartder.f b/source/wham/src/cartder.f index ed14f18..693fd60 100644 --- a/source/wham/src/cartder.f +++ b/source/wham/src/cartder.f @@ -263,7 +263,7 @@ cd print '(3f8.3)',(dcdv(k,ind1),k=1,3) * Derivatives in alpha and omega: * do i=2,nres-1 - dsci=dsc(itype(i)) + dsci=dsc(iabs(itype(i))) alphi=alph(i) omegi=omeg(i) cd print *,'i=',i,' dsci=',dsci,' alphi=',alphi,' omegi=',omegi diff --git a/source/wham/src/cinfo.f b/source/wham/src/cinfo.f index c7ff9f1..b55027a 100644 --- a/source/wham/src/cinfo.f +++ b/source/wham/src/cinfo.f @@ -1,10 +1,10 @@ C DO NOT EDIT THIS FILE - IT HAS BEEN GENERATED BY COMPINFO.C -C 0 0 573 +C 0 0 577 subroutine cinfo include 'COMMON.IOUNITS' write(iout,*)'++++ Compile info ++++' - write(iout,*)'Version 0.0 build 573' - write(iout,*)'compiled Fri Jul 6 01:58:30 2012' + write(iout,*)'Version 0.0 build 577' + write(iout,*)'compiled Fri Aug 24 06:35:31 2012' write(iout,*)'compiled by aks255@matrix.chem.cornell.edu' write(iout,*)'OS name: Linux ' write(iout,*)'OS release: 2.6.34.9-69.fc13.x86_64 ' @@ -16,7 +16,7 @@ C 0 0 573 write(iout,*)'FC= ifort' write(iout,*)'OPT = -mcmodel=medium -g -CB' write(iout,*)'FFLAGS = ${OPT} -c -I. -I./include_unres -I$(IN...' - write(iout,*)'LIBS = -L$(INSTALL_DIR)/lib -lmpich -lpmpich xd...' + write(iout,*)'LIBS = -L$(INSTALL_DIR)/lib -lmpich -lpmpich .....' write(iout,*)'CPPFLAGS = -DMPI -DLINUX -DUNRES -DSPLITELE -DP...' write(iout,*)'objects = \\' write(iout,*)' wham_multparm.o \\' diff --git a/source/wham/src/contact.f b/source/wham/src/contact.f index 5b05d57..fb5a57b 100644 --- a/source/wham/src/contact.f +++ b/source/wham/src/contact.f @@ -29,9 +29,9 @@ endif 110 format (a,'(',i3,')',9f8.3) do i=ist,ien-kkk - iti=itype(i) + iti=iabs(itype(i)) do j=i+kkk,ien - itj=itype(j) + itj=iabs(itype(j)) itypi=iti itypj=itj xj = c(1,nres+j)-c(1,nres+i) @@ -92,7 +92,7 @@ c & csc it2=itype(i2) write (iout,'(i3,2x,a,i4,2x,a,i4,5f8.3,3f10.5)') & i,restyp(it1),i1,restyp(it2),i2,cscore(i), - & sc_cutoff(it1,it2),ddsc(i),ddla(i),ddlb(i), + & sc_cutoff(iabs(it1),iabs(it2)),ddsc(i),ddla(i),ddlb(i), & omt1(i),omt2(i),omt12(i) enddo endif diff --git a/source/wham/src/enecalc1.F b/source/wham/src/enecalc1.F index db671ff..ff45881 100644 --- a/source/wham/src/enecalc1.F +++ b/source/wham/src/enecalc1.F @@ -195,6 +195,10 @@ c call pdbout(ii+1,beta_h(ib,ipar),efree,energia(0),0.0d0,rmsdev) & iii+1,indstart(me1)+iii," T", & 1.0d0/(1.987D-3*beta_h(ib,ipar)) errmsg_count=errmsg_count+1 + + call pdbout(indstart(me1)+iii, + & 1.0d0/(1.987D-3*beta_h(ib,ipar)), + &energia(0),eini,0.0d0,0.0d0) call enerprint(energia(0),fT) if (errmsg_count.gt.maxerrmsg_count) & write (iout,*) "Too many warning messages" @@ -726,7 +730,8 @@ c------------------------------------------------------------------------------ enddo do j=nnt,nct itj=itype(j) - if (itype(j).ne.10 .and. (vbld(nres+j)-dsc(itj)).gt.2.0d0) then + if (itype(j).ne.10 .and.(vbld(nres+j)-dsc(iabs(itj))).gt.2.0d0) + & then if (iprint.gt.0) & write (iout,*) "Bad CA-SC bond length",j," ",vbld(nres+j), & " for conformation",ii diff --git a/source/wham/src/energy_p_new.F b/source/wham/src/energy_p_new.F index 4b2dc0c..fe9f889 100644 --- a/source/wham/src/energy_p_new.F +++ b/source/wham/src/energy_p_new.F @@ -368,8 +368,8 @@ cd print *,'Entering ELJ nnt=',nnt,' nct=',nct,' expon=',expon evdw=0.0D0 evdw_t=0.0d0 do i=iatsc_s,iatsc_e - itypi=itype(i) - itypi1=itype(i+1) + itypi=iabs(itype(i)) + itypi1=iabs(itype(i+1)) xi=c(1,nres+i) yi=c(2,nres+i) zi=c(3,nres+i) @@ -382,7 +382,7 @@ C cd write (iout,*) 'i=',i,' iint=',iint,' istart=',istart(i,iint), cd & 'iend=',iend(i,iint) do j=istart(i,iint),iend(i,iint) - itypj=itype(j) + itypj=iabs(itype(j)) xj=c(1,nres+j)-xi yj=c(2,nres+j)-yi zj=c(3,nres+j)-zi @@ -539,8 +539,8 @@ c print *,'Entering ELJK nnt=',nnt,' nct=',nct,' expon=',expon evdw=0.0D0 evdw_t=0.0d0 do i=iatsc_s,iatsc_e - itypi=itype(i) - itypi1=itype(i+1) + itypi=iabs(itype(i)) + itypi1=iabs(itype(i+1)) xi=c(1,nres+i) yi=c(2,nres+i) zi=c(3,nres+i) @@ -549,7 +549,7 @@ C Calculate SC interaction energy. C do iint=1,nint_gr(i) do j=istart(i,iint),iend(i,iint) - itypj=itype(j) + itypj=iabs(itype(j)) xj=c(1,nres+j)-xi yj=c(2,nres+j)-yi zj=c(3,nres+j)-zi @@ -650,8 +650,8 @@ c else c endif ind=0 do i=iatsc_s,iatsc_e - itypi=itype(i) - itypi1=itype(i+1) + itypi=iabs(itype(i)) + itypi1=iabs(itype(i+1)) xi=c(1,nres+i) yi=c(2,nres+i) zi=c(3,nres+i) @@ -665,7 +665,7 @@ C do iint=1,nint_gr(i) do j=istart(i,iint),iend(i,iint) ind=ind+1 - itypj=itype(j) + itypj=iabs(itype(j)) dscj_inv=vbld_inv(j+nres) chi1=chi(itypi,itypj) chi2=chi(itypj,itypi) @@ -786,8 +786,8 @@ c print *,'Entering EGB nnt=',nnt,' nct=',nct,' expon=',expon c if (icall.gt.0) lprn=.true. ind=0 do i=iatsc_s,iatsc_e - itypi=itype(i) - itypi1=itype(i+1) + itypi=iabs(itype(i)) + itypi1=iabs(itype(i+1)) xi=c(1,nres+i) yi=c(2,nres+i) zi=c(3,nres+i) @@ -801,7 +801,7 @@ C do iint=1,nint_gr(i) do j=istart(i,iint),iend(i,iint) ind=ind+1 - itypj=itype(j) + itypj=iabs(itype(j)) dscj_inv=vbld_inv(j+nres) sig0ij=sigma(itypi,itypj) chi1=chi(itypi,itypj) @@ -931,8 +931,8 @@ c print *,'Entering EGB nnt=',nnt,' nct=',nct,' expon=',expon c if (icall.gt.0) lprn=.true. ind=0 do i=iatsc_s,iatsc_e - itypi=itype(i) - itypi1=itype(i+1) + itypi=iabs(itype(i)) + itypi1=iabs(itype(i+1)) xi=c(1,nres+i) yi=c(2,nres+i) zi=c(3,nres+i) @@ -946,7 +946,7 @@ C do iint=1,nint_gr(i) do j=istart(i,iint),iend(i,iint) ind=ind+1 - itypj=itype(j) + itypj=iabs(itype(j)) dscj_inv=vbld_inv(j+nres) sig0ij=sigma(itypi,itypj) r0ij=r0(itypi,itypj) @@ -2785,7 +2785,7 @@ c & " iscp",(iscpstart(i,j),iscpend(i,j),j=1,nscp_gr(i)) do iint=1,nscp_gr(i) do j=iscpstart(i,iint),iscpend(i,iint) - itypj=itype(j) + itypj=iabs(itype(j)) C Uncomment following three lines for SC-p interactions c xj=c(1,nres+j)-xi c yj=c(2,nres+j)-yi @@ -2897,7 +2897,8 @@ c write (iout,*) "i",i," ii",ii," iii",iii," jj",jj," jjj",jjj, c & dhpb(i),dhpb1(i),forcon(i) C 24/11/03 AL: SS bridges handled separately because of introducing a specific C distance and angle dependent SS bond potential. - if (ii.gt.nres .and. itype(iii).eq.1 .and. itype(jjj).eq.1) then + if (ii.gt.nres .and. iabs(itype(iii)).eq.1 .and. + & iabs(itype(jjj)).eq.1) then call ssbond_ene(iii,jjj,eij) ehpb=ehpb+2*eij cd write (iout,*) "eij",eij @@ -2997,7 +2998,7 @@ C include 'COMMON.VAR' include 'COMMON.IOUNITS' double precision erij(3),dcosom1(3),dcosom2(3),gg(3) - itypi=itype(i) + itypi=iabs(itype(i)) xi=c(1,nres+i) yi=c(2,nres+i) zi=c(3,nres+i) @@ -3005,7 +3006,7 @@ C dyi=dc_norm(2,nres+i) dzi=dc_norm(3,nres+i) dsci_inv=dsc_inv(itypi) - itypj=itype(j) + itypj=iabs(itype(j)) dscj_inv=dsc_inv(itypj) xj=c(1,nres+j)-xi yj=c(2,nres+j)-yi @@ -3095,7 +3096,7 @@ c c 09/18/07 AL: multimodal bond potential based on AM1 CA-SC PMF's included c do i=nnt,nct - iti=itype(i) + iti=iabs(itype(i)) if (iti.ne.10) then nbi=nbondterm(iti) if (nbi.eq.1) then @@ -3175,6 +3176,18 @@ c write (iout,*) ithet_start,ithet_end C Zero the energy function and its derivative at 0 or pi. call splinthet(theta(i),0.5d0*delta,ss,ssd) it=itype(i-1) + ichir1=isign(1,itype(i-2)) + ichir2=isign(1,itype(i)) + if (itype(i-2).eq.10) ichir1=isign(1,itype(i-1)) + if (itype(i).eq.10) ichir2=isign(1,itype(i-1)) + if (itype(i-1).eq.10) then + itype1=isign(10,itype(i-2)) + ichir11=isign(1,itype(i-2)) + ichir12=isign(1,itype(i-2)) + itype2=isign(10,itype(i)) + ichir21=isign(1,itype(i)) + ichir22=isign(1,itype(i)) + endif c if (i.gt.ithet_start .and. c & (itel(i-1).eq.0 .or. itel(i-2).eq.0)) goto 1215 c if (i.gt.3 .and. (i.le.4 .or. itel(i-3).ne.0)) then @@ -3230,8 +3243,12 @@ C dependent on the adjacent virtual-bond-valence angles (gamma1 & gamma2). C In following comments this theta will be referred to as t_c. thet_pred_mean=0.0d0 do k=1,2 - athetk=athet(k,it) - bthetk=bthet(k,it) + athetk=athet(k,it,ichir1,ichir2) + bthetk=bthet(k,it,ichir1,ichir2) + if (it.eq.10) then + athetk=athet(k,itype1,ichir11,ichir12) + bthetk=bthet(k,itype2,ichir21,ichir22) + endif thet_pred_mean=thet_pred_mean+athetk*y(k)+bthetk*z(k) enddo c write (iout,*) "thet_pred_mean",thet_pred_mean @@ -3239,8 +3256,16 @@ c write (iout,*) "thet_pred_mean",thet_pred_mean thet_pred_mean=thet_pred_mean*ss+a0thet(it) c write (iout,*) "thet_pred_mean",thet_pred_mean C Derivatives of the "mean" values in gamma1 and gamma2. - dthetg1=(-athet(1,it)*y(2)+athet(2,it)*y(1))*ss - dthetg2=(-bthet(1,it)*z(2)+bthet(2,it)*z(1))*ss + dthetg1=(-athet(1,it,ichir1,ichir2)*y(2) + &+athet(2,it,ichir1,ichir2)*y(1))*ss + dthetg2=(-bthet(1,it,ichir1,ichir2)*z(2) + & +bthet(2,it,ichir1,ichir2)*z(1))*ss + if (it.eq.10) then + dthetg1=(-athet(1,itype1,ichir11,ichir12)*y(2) + &+athet(2,itype1,ichir11,ichir12)*y(1))*ss + dthetg2=(-bthet(1,itype2,ichir21,ichir22)*z(2) + & +bthet(2,itype2,ichir21,ichir22)*z(1))*ss + endif if (theta(i).gt.pi-delta) then call theteng(pi-delta,thet_pred_mean,theta0(it),f0,fprim0, & E_tc0) @@ -3415,7 +3440,7 @@ c write (iout,*) "ithetyp",(ithetyp(i),i=1,ntyp1) dephii=0.0d0 dephii1=0.0d0 theti2=0.5d0*theta(i) - ityp2=ithetyp(itype(i-1)) + ityp2=ithetyp(iabs(itype(i-1))) do k=1,nntheterm coskt(k)=dcos(k*theti2) sinkt(k)=dsin(k*theti2) @@ -3427,7 +3452,7 @@ c write (iout,*) "ithetyp",(ithetyp(i),i=1,ntyp1) #else phii=phi(i) #endif - ityp1=ithetyp(itype(i-2)) + ityp1=ithetyp(iabs(itype(i-2))) do k=1,nsingle cosph1(k)=dcos(k*phii) sinph1(k)=dsin(k*phii) @@ -3448,7 +3473,7 @@ c write (iout,*) "ithetyp",(ithetyp(i),i=1,ntyp1) #else phii1=phi(i+1) #endif - ityp3=ithetyp(itype(i)) + ityp3=ithetyp(iabs(itype(i))) do k=1,nsingle cosph2(k)=dcos(k*phii1) sinph2(k)=dsin(k*phii1) @@ -3602,7 +3627,7 @@ c write (iout,'(a)') 'ESC' do i=loc_start,loc_end it=itype(i) if (it.eq.10) goto 1 - nlobit=nlob(it) + nlobit=nlob(iabs(it)) c print *,'i=',i,' it=',it,' nlobit=',nlobit c write (iout,*) 'i=',i,' ssa=',ssa,' ssad=',ssad theti=theta(i+1)-pipol @@ -3757,7 +3782,7 @@ C Compute the contribution to SC energy and derivatives do iii=-1,1 do j=1,nlobit - expfac=dexp(bsc(j,it)-0.5D0*contr(j,iii)+emin) + expfac=dexp(bsc(j,iabs(it))-0.5D0*contr(j,iii)+emin) cd print *,'j=',j,' expfac=',expfac escloc_i=escloc_i+expfac do k=1,3 @@ -3838,7 +3863,7 @@ C Compute the contribution to SC energy and derivatives dersc12=0.0d0 do j=1,nlobit - expfac=dexp(bsc(j,it)-0.5D0*contr(j)+emin) + expfac=dexp(bsc(j,iabs(it))-0.5D0*contr(j)+emin) escloc_i=escloc_i+expfac do k=1,2 dersc(k)=dersc(k)+Ax(k,j)*expfac @@ -3901,7 +3926,7 @@ C cosfac=dsqrt(cosfac2) sinfac2=0.5d0/(1.0d0-costtab(i+1)) sinfac=dsqrt(sinfac2) - it=itype(i) + it=iabs(itype(i)) if (it.eq.10) goto 1 c C Compute the axes of tghe local cartesian coordinates system; store in @@ -3941,7 +3966,7 @@ c do j = 1,3 xx = xx + x_prime(j)*dc_norm(j,i+nres) yy = yy + y_prime(j)*dc_norm(j,i+nres) - zz = zz + z_prime(j)*dc_norm(j,i+nres) + zz = zz + dsign(1.0,itype(i))*z_prime(j)*dc_norm(j,i+nres) enddo xxtab(i)=xx @@ -3951,7 +3976,7 @@ C C Compute the energy of the ith side cbain C c write (2,*) "xx",xx," yy",yy," zz",zz - it=itype(i) + it=iabs(itype(i)) do j = 1,65 x(j) = sc_parmin(j,it) enddo @@ -3959,7 +3984,7 @@ c write (2,*) "xx",xx," yy",yy," zz",zz Cc diagnostics - remove later xx1 = dcos(alph(2)) yy1 = dsin(alph(2))*dcos(omeg(2)) - zz1 = -dsin(alph(2))*dsin(omeg(2)) + zz1 = -dsign(1.0,itype(i))*dsin(alph(2))*dsin(omeg(2)) write(2,'(3f8.1,3f9.3,1x,3f9.3)') & alph(2)*rad2deg,omeg(2)*rad2deg,theta(3)*rad2deg,xx,yy,zz, & xx1,yy1,zz1 @@ -4367,14 +4392,19 @@ c lprn=.true. etors=0.0D0 do i=iphi_start,iphi_end if (itel(i-2).eq.0 .or. itel(i-1).eq.0) goto 1215 + if (iabs(itype(i)).eq.20) then + iblock=2 + else + iblock=1 + endif itori=itortyp(itype(i-2)) itori1=itortyp(itype(i-1)) phii=phi(i) gloci=0.0D0 C Regular cosine and sine terms - do j=1,nterm(itori,itori1) - v1ij=v1(j,itori,itori1) - v2ij=v2(j,itori,itori1) + do j=1,nterm(itori,itori1,iblock) + v1ij=v1(j,itori,itori1,iblock) + v2ij=v2(j,itori,itori1,iblock) cosphi=dcos(j*phii) sinphi=dsin(j*phii) etors=etors+v1ij*cosphi+v2ij*sinphi @@ -4387,7 +4417,7 @@ C [v2 cos(phi/2)+v3 sin(phi/2)]^2 + 1 C cosphi=dcos(0.5d0*phii) sinphi=dsin(0.5d0*phii) - do j=1,nlor(itori,itori1) + do j=1,nlor(itori,itori1,iblock) vl1ij=vlor1(j,itori,itori1) vl2ij=vlor2(j,itori,itori1) vl3ij=vlor3(j,itori,itori1) @@ -4398,11 +4428,11 @@ C gloci=gloci+vl1ij*(vl3ij*cosphi-vl2ij*sinphi)*pom enddo C Subtract the constant term - etors=etors-v0(itori,itori1) + etors=etors-v0(itori,itori1,iblock) if (lprn) & write (iout,'(2(a3,2x,i3,2x),2i3,6f8.3/26x,6f8.3/)') & restyp(itype(i-2)),i-2,restyp(itype(i-1)),i-1,itori,itori1, - & (v1(j,itori,itori1),j=1,6),(v2(j,itori,itori1),j=1,6) + & (v1(j,itori,itori1,1),j=1,6),(v2(j,itori,itori1,1),j=1,6) gloc(i-3,icg)=gloc(i-3,icg)+wtor*fact*gloci c write (iout,*) 'i=',i,' gloc=',gloc(i-3,icg) 1215 continue @@ -4469,17 +4499,19 @@ c if (iabs(itype(i+1)).eq.20) iblock=2 phii1=phi(i+1) gloci1=0.0D0 gloci2=0.0D0 + iblock=1 + if (iabs(itype(i+1)).eq.20) iblock=2 C Regular cosine and sine terms c c do j=1,ntermd_1(itori,itori1,itori2,iblock) c v1cij=v1c(1,j,itori,itori1,itori2,iblock) c v1sij=v1s(1,j,itori,itori1,itori2,iblock) c v2cij=v1c(2,j,itori,itori1,itori2,iblock) c v2sij=v1s(2,j,itori,itori1,itori2,iblock) - do j=1,ntermd_1(itori,itori1,itori2) - v1cij=v1c(1,j,itori,itori1,itori2) - v1sij=v1s(1,j,itori,itori1,itori2) - v2cij=v1c(2,j,itori,itori1,itori2) - v2sij=v1s(2,j,itori,itori1,itori2) + do j=1,ntermd_1(itori,itori1,itori2,iblock) + v1cij=v1c(1,j,itori,itori1,itori2,iblock) + v1sij=v1s(1,j,itori,itori1,itori2,iblock) + v2cij=v1c(2,j,itori,itori1,itori2,iblock) + v2sij=v1s(2,j,itori,itori1,itori2,iblock) cosphi1=dcos(j*phii) sinphi1=dsin(j*phii) @@ -4490,17 +4522,12 @@ c v2sij=v1s(2,j,itori,itori1,itori2,iblock) gloci1=gloci1+j*(v1sij*cosphi1-v1cij*sinphi1) gloci2=gloci2+j*(v2sij*cosphi2-v2cij*sinphi2) enddo - do k=2,ntermd_2(itori,itori1,itori2) -c do k=2,ntermd_2(itori,itori1,itori2,iblock) + do k=2,ntermd_2(itori,itori1,itori2,iblock) do l=1,k-1 -c v1cdij = v2c(k,l,itori,itori1,itori2,iblock) -c v2cdij = v2c(l,k,itori,itori1,itori2,iblock) -c v1sdij = v2s(k,l,itori,itori1,itori2,iblock) -c v2sdij = v2s(l,k,itori,itori1,itori2,iblock) - v1cdij = v2c(k,l,itori,itori1,itori2) - v2cdij = v2c(l,k,itori,itori1,itori2) - v1sdij = v2s(k,l,itori,itori1,itori2) - v2sdij = v2s(l,k,itori,itori1,itori2) + v1cdij = v2c(k,l,itori,itori1,itori2,iblock) + v2cdij = v2c(l,k,itori,itori1,itori2,iblock) + v1sdij = v2s(k,l,itori,itori1,itori2,iblock) + v2sdij = v2s(l,k,itori,itori1,itori2,iblock) cosphi1p2=dcos(l*phii+(k-l)*phii1) cosphi1m2=dcos(l*phii-(k-l)*phii1) sinphi1p2=dsin(l*phii+(k-l)*phii1) @@ -4551,8 +4578,9 @@ c write (iout,*) "EBACK_SC_COR",iphi_start,iphi_end,nterm_sccor esccor=0.0D0 do i=itau_start,itau_end esccor_ii=0.0D0 - isccori=isccortyp(itype(i-2)) - isccori1=isccortyp(itype(i-1)) +CC TU NIE MOZE BYC IABS DO ZMIANY JAK BEDA GOTOWE POTENCJALY AM1 + isccori=isccortyp(iabs(itype(i-2))) + isccori1=isccortyp(iabs(itype(i-1))) phii=phi(i) cccc Added 9 May 2012 cc Tauangle is torsional engle depending on the value of first digit diff --git a/source/wham/src/include_unres/COMMON.LOCAL b/source/wham/src/include_unres/COMMON.LOCAL index a248d99..5a00bb2 100644 --- a/source/wham/src/include_unres/COMMON.LOCAL +++ b/source/wham/src/include_unres/COMMON.LOCAL @@ -4,9 +4,10 @@ integer nlob,loc_start,loc_end,ithet_start,ithet_end, & iphi_start,iphi_end,itau_start,itau_end C Parameters of the virtual-bond-angle probability distribution - common /thetas/ a0thet(ntyp),athet(2,ntyp),bthet(2,ntyp), - & polthet(0:3,ntyp),gthet(3,ntyp),theta0(ntyp),sig0(ntyp), - & sigc0(ntyp) + common /thetas/ a0thet(-ntyp:ntyp),athet(2,-ntyp:ntyp,-1:1,-1:1) + & ,bthet(2,-ntyp:ntyp,-1:1,-1:1), + & polthet(0:3,-ntyp:ntyp),gthet(3,-ntyp:ntyp),theta0(-ntyp:ntyp), + &sig0(-ntyp:ntyp), sigc0(-ntyp:ntyp) C Parameters of ab initio-derived potential of virtual-bond-angle bending integer nthetyp,ntheterm,ntheterm2,ntheterm3,nsingle,ndouble, & ithetyp(ntyp1),nntheterm @@ -26,7 +27,8 @@ C Parameters of ab initio-derived potential of virtual-bond-angle bending & ndouble,nntheterm C Parameters of the side-chain probability distribution common /sclocal/ dsc(ntyp1),dsc_inv(ntyp1),bsc(maxlob,ntyp), - & censc(3,maxlob,ntyp),gaussc(3,3,maxlob,ntyp),dsc0(ntyp1), + & censc(3,maxlob,-ntyp:ntyp),gaussc(3,3,maxlob,-ntyp:ntyp), + & dsc0(ntyp1), & nlob(ntyp1) C Virtual-bond lenghts common /peptbond/ vbl,vblinv,vblinv2,vbl_cis,vbl0 diff --git a/source/wham/src/include_unres/COMMON.NAMES b/source/wham/src/include_unres/COMMON.NAMES index a266339..1fdfd4f 100644 --- a/source/wham/src/include_unres/COMMON.NAMES +++ b/source/wham/src/include_unres/COMMON.NAMES @@ -1,6 +1,6 @@ character*3 restyp character*1 onelet - common /names/ restyp(ntyp+1),onelet(ntyp+1) + common /names/ restyp(-ntyp1:ntyp1),onelet(-ntyp1:ntyp1) character*10 ename,wname integer nprint_ene,print_order common /namterm/ ename(max_ene),wname(max_ene),nprint_ene, diff --git a/source/wham/src/include_unres/COMMON.TORSION b/source/wham/src/include_unres/COMMON.TORSION index 8a12451..07a21be 100644 --- a/source/wham/src/include_unres/COMMON.TORSION +++ b/source/wham/src/include_unres/COMMON.TORSION @@ -1,25 +1,35 @@ C Torsional constants of the rotation about virtual-bond dihedral angles double precision v1,v2,vlor1,vlor2,vlor3,v0 integer itortyp,ntortyp,nterm,nlor,nterm_old - common/torsion/v0(maxtor,maxtor),v1(maxterm,maxtor,maxtor), - & v2(maxterm,maxtor,maxtor),vlor1(maxlor,maxtor,maxtor), + common/torsion/v0(-maxtor:maxtor,-maxtor:maxtor,2), + & v1(maxterm,-maxtor:maxtor,-maxtor:maxtor,2), + & v2(maxterm,-maxtor:maxtor,-maxtor:maxtor,2), + & vlor1(maxlor,maxtor,maxtor), & vlor2(maxlor,maxtor,maxtor),vlor3(maxlor,maxtor,maxtor), - & itortyp(ntyp),ntortyp,nterm(maxtor,maxtor),nlor(maxtor,maxtor) + & itortyp(-ntyp:ntyp),ntortyp, + & nterm(-maxtor:maxtor,-maxtor:maxtor,2), + & nlor(-maxtor:maxtor,-maxtor:maxtor,2) & ,nterm_old C 6/23/01 - constants for double torsionals double precision v1c,v1s,v2c,v2s integer ntermd_1,ntermd_2 - common /torsiond/ v1c(2,maxtermd_1,maxtor,maxtor,maxtor), - & v1s(2,maxtermd_1,maxtor,maxtor,maxtor), - & v2c(maxtermd_2,maxtermd_2,maxtor,maxtor,maxtor), - & v2s(maxtermd_2,maxtermd_2,maxtor,maxtor,maxtor), - & ntermd_1(maxtor,maxtor,maxtor),ntermd_2(maxtor,maxtor,maxtor) + common /torsiond/ + &v1c(2,maxtermd_1,-maxtor:maxtor,-maxtor:maxtor,-maxtor:maxtor,2), + &v1s(2,maxtermd_1,-maxtor:maxtor,-maxtor:maxtor,-maxtor:maxtor,2), + &v2c(maxtermd_2,maxtermd_2,-maxtor:maxtor,-maxtor:maxtor, + & -maxtor:maxtor,2), + &v2s(maxtermd_2,maxtermd_2,-maxtor:maxtor,-maxtor:maxtor, + & -maxtor:maxtor,2), + & ntermd_1(-maxtor:maxtor,-maxtor:maxtor,-maxtor:maxtor,2), + & ntermd_2(-maxtor:maxtor,-maxtor:maxtor,-maxtor:maxtor,2) C 9/18/99 - added Fourier coeffficients of the expansion of local energy C surface double precision b1,b2,cc,dd,ee,ctilde,dtilde,b1tilde integer nloctyp - common/fourier/ b1(2,maxtor),b2(2,maxtor),cc(2,2,maxtor), - & dd(2,2,maxtor),ee(2,2,maxtor),ctilde(2,2,maxtor), - & dtilde(2,2,maxtor),b1tilde(2,maxtor),nloctyp + common/fourier/ b1(2,-maxtor:maxtor),b2(2,-maxtor:maxtor), + & cc(2,2,-maxtor:maxtor), + & dd(2,2,-maxtor:maxtor),ee(2,2,-maxtor:maxtor), + & ctilde(2,2,-maxtor:maxtor), + & dtilde(2,2,-maxtor:maxtor),b1tilde(2,-maxtor:maxtor),nloctyp double precision b - common /fourier1/ b(13,maxtor) + common /fourier1/ b(13) diff --git a/source/wham/src/molread_zs.F b/source/wham/src/molread_zs.F index 87a3495..49ff15c 100644 --- a/source/wham/src/molread_zs.F +++ b/source/wham/src/molread_zs.F @@ -58,9 +58,9 @@ C Convert sequence to numeric code #endif itel(i)=0 #ifdef PROCOR - else if (itype(i+1).ne.20) then + else if (iabs(itype(i+1)).ne.20) then #else - else if (itype(i).ne.20) then + else if (iabs(itype(i)).ne.20) then #endif itel(i)=1 else diff --git a/source/wham/src/parmread.F b/source/wham/src/parmread.F index aa0a8fc..618bf8a 100644 --- a/source/wham/src/parmread.F +++ b/source/wham/src/parmread.F @@ -662,18 +662,19 @@ C Martix of D parameters for two dimesional fourier series write (iout,'(3x,20i10)') (l,l=1,ntermd_2(i,j,k,iblock)) do l=1,ntermd_2(i,j,k,iblock) write (iout,'(i5,20f10.5)') - & l,(v2c(l,m,i,j,k),m=1,ntermd_2(i,j,k,iblock)) + & l,(v2c(l,m,i,j,k,iblock),m=1,ntermd_2(i,j,k,iblock)) enddo write (iout,*) write (iout,'(3x,20i10)') (l,l=1,ntermd_2(i,j,k,iblock)) do l=1,ntermd_2(i,j,k,iblock) write (iout,'(i5,20f10.5)') - & l,(v2s(l,m,i,j,k),m=1,ntermd_2(i,j,k,iblock)) + & l,(v2s(l,m,i,j,k,iblock),m=1,ntermd_2(i,j,k,iblock)) enddo write (iout,*) enddo enddo enddo + enddo endif #endif C Read of Side-chain backbone correlation parameters @@ -734,8 +735,8 @@ C interaction energy of the Gly, Ala, and Pro prototypes. C read (ifourier,*) nloctyp do i=0,nloctyp-1 - read (ifourier,*,end=115,err=115) - read (ifourier,*,end=115,err=115) (b(ii),ii=1,13) + read (ifourier,*) + read (ifourier,*) (b(ii),ii=1,13) if (lprint) then write (iout,*) 'Type',i write (iout,'(a,i2,a,f10.5)') ('b(',ii,')=',b(ii),ii=1,13) diff --git a/source/wham/src/readpdb.f b/source/wham/src/readpdb.f index 0b82476..a4ac48a 100644 --- a/source/wham/src/readpdb.f +++ b/source/wham/src/readpdb.f @@ -41,7 +41,7 @@ c ishift1=ishift1+1 ishift=ires-1 if (res.ne.'GLY' .and. res.ne. 'ACE') then ishift=ishift-1 - itype(1)=21 + itype(1)=ntyp1 endif ibeg=0 else @@ -76,7 +76,7 @@ C Calculate the CM of the last side chain. nstart_sup=1 if (itype(nres).ne.10) then nres=nres+1 - itype(nres)=21 + itype(nres)=ntyp1 do j=1,3 dcj=c(j,nres-2)-c(j,nres-3) c(j,nres)=c(j,nres-1)+dcj @@ -92,7 +92,7 @@ C Calculate the CM of the last side chain. c(j,nres+1)=c(j,1) c(j,2*nres)=c(j,nres) enddo - if (itype(1).eq.21) then + if (itype(1).eq.ntyp1) then nsup=nsup-1 nstart_sup=2 do j=1,3 @@ -158,7 +158,7 @@ c--------------------------------------------------------------------------- do i=2,nres iti=itype(i) write (iout,*) i,i-1,(c(j,i),j=1,3),(c(j,i-1),j=1,3),dist(i,i-1) - if (itype(i-1).ne.21 .and. itype(i).ne.21 .and. + if (itype(i-1).ne.ntyp1 .and. itype(i).ne.ntyp1 .and. & (dist(i,i-1).lt.2.0D0 .or. dist(i,i-1).gt.5.0D0)) then write (iout,'(a,i4)') 'Bad Cartesians for residue',i stop @@ -166,12 +166,12 @@ c--------------------------------------------------------------------------- theta(i+1)=alpha(i-1,i,i+1) if (i.gt.2) phi(i+1)=beta(i-2,i-1,i,i+1) enddo - if (itype(1).eq.21) then + if (itype(1).eq.ntyp1) then do j=1,3 c(j,1)=c(j,2)+(c(j,3)-c(j,4)) enddo endif - if (itype(nres).eq.21) then + if (itype(nres).eq.ntyp1) then do j=1,3 c(j,nres)=c(j,nres-1)+(c(j,nres-2)-c(j,nres-3)) enddo @@ -189,7 +189,7 @@ c--------------------------------------------------------------------------- endif if (lprn) & write (iout,'(a3,i4,7f10.3)') restyp(iti),i,dist(i,i-1), - & rad2deg*theta(i),rad2deg*phi(i),dsc(iti),di, + & rad2deg*theta(i),rad2deg*phi(i),dsc(iabs(iti)),di, & rad2deg*alph(i),rad2deg*omeg(i) enddo else if (lprn) then diff --git a/source/wham/src/rescode.f b/source/wham/src/rescode.f index b516fed..dbbb459 100644 --- a/source/wham/src/rescode.f +++ b/source/wham/src/rescode.f @@ -7,7 +7,7 @@ if (itype.eq.0) then - do i=1,ntyp1 + do i=-ntyp1,ntyp1 if (ucase(nam).eq.restyp(i)) then rescode=i return @@ -16,7 +16,7 @@ else - do i=1,ntyp1 + do i=-ntyp1,ntyp1 if (nam(1:1).eq.onelet(i)) then rescode=i return diff --git a/source/wham/src/store_parm.F b/source/wham/src/store_parm.F index 6aa33c5..a2960a9 100644 --- a/source/wham/src/store_parm.F +++ b/source/wham/src/store_parm.F @@ -19,7 +19,7 @@ C include 'COMMON.SCROT' include 'COMMON.SCCOR' include 'COMMON.ALLPARM' - integer i,j,k,l,m,mm,iparm + integer i,j,k,l,m,mm,iparm,ichir1,ichir2,iblock,iii c Store weights ww_all(1,iparm)=wsc @@ -53,11 +53,15 @@ c Store bond parameters enddo c Store bond angle parameters #ifdef CRYST_THETA - do i=1,ntyp + do i=-ntyp,ntyp a0thet_all(i,iparm)=a0thet(i) + do ichir1=-1,1 + do ichir2=-1,1 do j=1,2 - athet_all(j,i,iparm)=athet(j,i) - bthet_all(j,i,iparm)=bthet(j,i) + athet_all(j,i,ichir1,ichir2,iparm)=athet(j,i,ichir1,ichir2) + bthet_all(j,i,ichir1,ichir2,iparm)=bthet(j,i,ichir1,ichir2) + enddo + enddo enddo do j=0,3 polthet_all(j,i,iparm)=polthet(j,i) @@ -109,10 +113,12 @@ c Store bond angle parameters #endif #ifdef CRYST_SC c Store the sidechain rotamer parameters - do i=1,ntyp - nlob_all(i,iparm)=nlob(i) - do j=1,nlob(i) - bsc_all(j,i,iparm)=bsc(j,i) + do i=-ntyp,ntyp + iii=iabs(i) + if (i.eq.0) cycle + nlob_all(iii,iparm)=nlob(iii) + do j=1,nlob(iii) + bsc_all(j,iii,iparm)=bsc(j,iii) do k=1,3 censc_all(k,j,i,iparm)=censc(k,j,i) enddo @@ -131,44 +137,48 @@ c Store the sidechain rotamer parameters enddo #endif c Store the torsional parameters - do i=1,ntortyp - do j=1,ntortyp - v0_all(i,j,iparm)=v0(i,j) - nterm_all(i,j,iparm)=nterm(i,j) - nlor_all(i,j,iparm)=nlor(i,j) - do k=1,nterm(i,j) - v1_all(k,i,j,iparm)=v1(k,i,j) - v2_all(k,i,j,iparm)=v2(i,i,j) - enddo - do k=1,nlor(i,j) - vlor1_all(k,i,j,iparm)=vlor1(k,i,j) - vlor2_all(k,i,j,iparm)=vlor2(k,i,j) - vlor3_all(k,i,j,iparm)=vlor3(k,i,j) - enddo - enddo - enddo + do iblock=1,2 + do i=-ntortyp+1,ntortyp-1 + do j=-ntortyp+1,ntortyp-1 + v0_all(i,j,iblock,iparm)=v0(i,j,iblock) + nterm_all(i,j,iblock,iparm)=nterm(i,j,iblock) + nlor_all(i,j,iblock,iparm)=nlor(i,j,iblock) + do k=1,nterm(i,j,iblock) + v1_all(k,i,j,iblock,iparm)=v1(k,i,j,iblock) + v2_all(k,i,j,iblock,iparm)=v2(k,i,j,iblock) + enddo + do k=1,nlor(i,j,iblock) + vlor1_all(k,i,j,iparm)=vlor1(k,i,j) + vlor2_all(k,i,j,iparm)=vlor2(k,i,j) + vlor3_all(k,i,j,iparm)=vlor3(k,i,j) + enddo + enddo + enddo + enddo c Store the double torsional parameters - do i=1,ntortyp - do j=1,ntortyp - do k=1,ntortyp - ntermd1_all(i,j,k,iparm)=ntermd_1(i,j,k) - ntermd2_all(i,j,k,iparm)=ntermd_2(i,j,k) - do l=1,ntermd_1(i,j,k) - v1c_all(1,l,i,j,k,iparm)=v1c(1,l,i,j,k) - v1c_all(2,l,i,j,k,iparm)=v1c(2,l,i,j,k) - v2c_all(1,l,i,j,k,iparm)=v2c(1,l,i,j,k) - v2c_all(2,l,i,j,k,iparm)=v2c(2,l,i,j,k) - enddo - do l=1,ntermd_2(i,j,k) - do m=1,ntermd_2(i,j,k) - v2s_all(l,m,i,j,k,iparm)=v2s(l,m,i,j,k) - enddo - enddo - enddo - enddo + do iblock=1,2 + do i=-ntortyp+1,ntortyp-1 + do j=-ntortyp+1,ntortyp-1 + do k=-ntortyp+1,ntortyp-1 + ntermd1_all(i,j,k,iblock,iparm)=ntermd_1(i,j,k,iblock) + ntermd2_all(i,j,k,iblock,iparm)=ntermd_2(i,j,k,iblock) + do l=1,ntermd_1(i,j,k,iblock) + v1c_all(1,l,i,j,k,iblock,iparm)=v1c(1,l,i,j,k,iblock) + v1c_all(2,l,i,j,k,iblock,iparm)=v1c(2,l,i,j,k,iblock) + v2c_all(1,l,i,j,k,iblock,iparm)=v2c(1,l,i,j,k,iblock) + v2c_all(2,l,i,j,k,iblock,iparm)=v2c(2,l,i,j,k,iblock) + enddo + do l=1,ntermd_2(i,j,k,iblock) + do m=1,ntermd_2(i,j,k,iblock) + v2s_all(l,m,i,j,k,iblock,iparm)=v2s(l,m,i,j,k,iblock) + enddo + enddo + enddo + enddo + enddo enddo c Store parameters of the cumulants - do i=1,nloctyp + do i=-nloctyp,nloctyp do j=1,2 b1_all(j,i,iparm)=b1(j,i) b1tilde_all(j,i,iparm)=b1tilde(j,i) @@ -262,7 +272,7 @@ C include 'COMMON.SCROT' include 'COMMON.SCCOR' include 'COMMON.ALLPARM' - integer i,j,k,l,m,mm,iparm + integer i,j,k,l,m,mm,iparm,ichir1,ichir2,iblock,iii c Restore weights wsc=ww_all(1,iparm) @@ -296,12 +306,17 @@ c Restore bond parameters enddo c Restore bond angle parameters #ifdef CRYST_THETA - do i=1,ntyp + do i=-ntyp,ntyp a0thet(i)=a0thet_all(i,iparm) + + do ichir1=-1,1 + do ichir2=-1,1 do j=1,2 - athet(j,i)=athet_all(j,i,iparm) - bthet(j,i)=bthet_all(j,i,iparm) - enddo + athet(j,i,ichir1,ichir2)=athet_all(j,i,ichir1,ichir2,iparm) + bthet(j,i,ichir1,ichir2)=bthet_all(j,i,ichir1,ichir2,iparm) + enddo + enddo + enddo do j=0,3 polthet(j,i)=polthet_all(j,i,iparm) enddo @@ -352,10 +367,12 @@ c Restore bond angle parameters #endif c Restore the sidechain rotamer parameters #ifdef CRYST_SC - do i=1,ntyp - nlob(i)=nlob_all(i,iparm) - do j=1,nlob(i) - bsc(j,i)=bsc_all(j,i,iparm) + do i=-ntyp,ntyp + if (i.eq.0) cycle + iii=iabs(i) + nlob(iii)=nlob_all(iii,iparm) + do j=1,nlob(iii) + bsc(j,iii)=bsc_all(j,iii,iparm) do k=1,3 censc(k,j,i)=censc_all(k,j,i,iparm) enddo @@ -374,44 +391,48 @@ c Restore the sidechain rotamer parameters enddo #endif c Restore the torsional parameters - do i=1,ntortyp - do j=1,ntortyp - v0(i,j)=v0_all(i,j,iparm) - nterm(i,j)=nterm_all(i,j,iparm) - nlor(i,j)=nlor_all(i,j,iparm) - do k=1,nterm(i,j) - v1(k,i,j)=v1_all(k,i,j,iparm) - v2(i,i,j)=v2_all(k,i,j,iparm) - enddo - do k=1,nlor(i,j) - vlor1(k,i,j)=vlor1_all(k,i,j,iparm) - vlor2(k,i,j)=vlor2_all(k,i,j,iparm) - vlor3(k,i,j)=vlor3_all(k,i,j,iparm) - enddo - enddo - enddo + do iblock=1,2 + do i=-ntortyp+1,ntortyp-1 + do j=-ntortyp+1,ntortyp-1 + v0(i,j,iblock)=v0_all(i,j,iblock,iparm) + nterm(i,j,iblock)=nterm_all(i,j,iblock,iparm) + nlor(i,j,iblock)=nlor_all(i,j,iblock,iparm) + do k=1,nterm(i,j,iblock) + v1(k,i,j,iblock)=v1_all(k,i,j,iblock,iparm) + v2(k,i,j,iblock)=v2_all(k,i,j,iblock,iparm) + enddo + do k=1,nlor(i,j,iblock) + vlor1(k,i,j)=vlor1_all(k,i,j,iparm) + vlor2(k,i,j)=vlor2_all(k,i,j,iparm) + vlor3(k,i,j)=vlor3_all(k,i,j,iparm) + enddo + enddo + enddo + enddo c Restore the double torsional parameters - do i=1,ntortyp - do j=1,ntortyp - do k=1,ntortyp - ntermd_1(i,j,k)=ntermd1_all(i,j,k,iparm) - ntermd_2(i,j,k)=ntermd2_all(i,j,k,iparm) - do l=1,ntermd_1(i,j,k) - v1c(1,l,i,j,k)=v1c_all(1,l,i,j,k,iparm) - v1c(2,l,i,j,k)=v1c_all(2,l,i,j,k,iparm) - v2c(1,l,i,j,k)=v2c_all(1,l,i,j,k,iparm) - v2c(2,l,i,j,k)=v2c_all(2,l,i,j,k,iparm) - enddo - do l=1,ntermd_2(i,j,k) - do m=1,ntermd_2(i,j,k) - v2s(l,m,i,j,k)=v2s_all(l,m,i,j,k,iparm) - enddo - enddo - enddo - enddo + do iblock=1,2 + do i=-ntortyp+1,ntortyp-1 + do j=-ntortyp+1,ntortyp-1 + do k=-ntortyp+1,ntortyp-1 + ntermd_1(i,j,k,iblock)=ntermd1_all(i,j,k,iblock,iparm) + ntermd_2(i,j,k,iblock)=ntermd2_all(i,j,k,iblock,iparm) + do l=1,ntermd_1(i,j,k,iblock) + v1c(1,l,i,j,k,iblock)=v1c_all(1,l,i,j,k,iblock,iparm) + v1c(2,l,i,j,k,iblock)=v1c_all(2,l,i,j,k,iblock,iparm) + v2c(1,l,i,j,k,iblock)=v2c_all(1,l,i,j,k,iblock,iparm) + v2c(2,l,i,j,k,iblock)=v2c_all(2,l,i,j,k,iblock,iparm) + enddo + do l=1,ntermd_2(i,j,k,iblock) + do m=1,ntermd_2(i,j,k,iblock) + v2s(l,m,i,j,k,iblock)=v2s_all(l,m,i,j,k,iblock,iparm) + enddo + enddo + enddo + enddo + enddo enddo c Restore parameters of the cumulants - do i=1,nloctyp + do i=-nloctyp,nloctyp do j=1,2 b1(j,i)=b1_all(j,i,iparm) b1tilde(j,i)=b1tilde_all(j,i,iparm)