Dzialajaczy dla D aminokwasow whama(mono) psuedosymetria dla GABowego
authorAdam Kazimierz Sieradzan <adasko@sun1.chem.univ.gda.pl>
Fri, 24 Aug 2012 12:07:29 +0000 (08:07 -0400)
committerAdam Kazimierz Sieradzan <adasko@sun1.chem.univ.gda.pl>
Fri, 24 Aug 2012 12:07:29 +0000 (08:07 -0400)
25 files changed:
PARAM/pot_tor_G631_DIL.parm
bin/wham/wham_multparm-ham_rep-oldparm
source/unres/src_MD-M/energy_p_new_barrier.F
source/unres/src_MD/COMMON.SCCOR
source/unres/src_MD/Makefile
source/unres/src_MD/cinfo.f
source/unres/src_MD/energy_p_new_barrier.F
source/unres/src_MD/parmread.F
source/wham/src-M/energy_p_new.F
source/wham/src-M/molread_zs.F
source/wham/src/COMMON.ALLPARM
source/wham/src/Makefile
source/wham/src/cartder.f
source/wham/src/cinfo.f
source/wham/src/contact.f
source/wham/src/enecalc1.F
source/wham/src/energy_p_new.F
source/wham/src/include_unres/COMMON.LOCAL
source/wham/src/include_unres/COMMON.NAMES
source/wham/src/include_unres/COMMON.TORSION
source/wham/src/molread_zs.F
source/wham/src/parmread.F
source/wham/src/readpdb.f
source/wham/src/rescode.f
source/wham/src/store_parm.F

index e17ff96..92d0182 100644 (file)
      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
      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
index b08f482..81903af 100755 (executable)
Binary files a/bin/wham/wham_multparm-ham_rep-oldparm and b/bin/wham/wham_multparm-ham_rep-oldparm differ
index 734acc1..f2f6372 100644 (file)
@@ -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
index ca6210f..6e39f93 100644 (file)
@@ -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),
index 8ebb82b..e144e8b 100644 (file)
@@ -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:
index d3ab9f4..bb5fadc 100644 (file)
@@ -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...'
index 0e4a3bf..e0c61d8 100644 (file)
@@ -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
index b1edf11..9d5100b 100644 (file)
@@ -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
index b389917..751f59b 100644 (file)
@@ -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
index 885c57b..dc71f06 100644 (file)
@@ -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
index 896b5a2..6e18e93 100644 (file)
@@ -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,
      & 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),
      & 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),
index a76601e..6851373 100644 (file)
@@ -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
 
index ed14f18..693fd60 100644 (file)
@@ -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
index c7ff9f1..b55027a 100644 (file)
@@ -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 \\'
index 5b05d57..fb5a57b 100644 (file)
@@ -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
index db671ff..ff45881 100644 (file)
@@ -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
index 4b2dc0c..fe9f889 100644 (file)
@@ -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)
           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 
index a248d99..5a00bb2 100644 (file)
@@ -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
index a266339..1fdfd4f 100644 (file)
@@ -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,
index 8a12451..07a21be 100644 (file)
@@ -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)
index 87a3495..49ff15c 100644 (file)
@@ -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
index aa0a8fc..618bf8a 100644 (file)
@@ -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)
index 0b82476..a4ac48a 100644 (file)
@@ -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
index b516fed..dbbb459 100644 (file)
@@ -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  
index 6aa33c5..a2960a9 100644 (file)
@@ -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)