Wprowadzenie SCCOR dla wham-M
authorAdam Kazimierz Sieradzan <adasko@sun1.chem.univ.gda.pl>
Mon, 29 Oct 2012 12:37:44 +0000 (08:37 -0400)
committerAdam Sieradzan <adasko@piasek4.chem.univ.gda.pl>
Thu, 18 Dec 2014 09:04:35 +0000 (10:04 +0100)
Conflicts:

bin/unres/MD-M/unres_Tc_procor_oldparm_em64-D-symetr.exe
bin/wham_multparm-D-sccor-oldparm
source/unres/src_MD-M/cinfo.f
source/wham/src-M/COMMON.ALLPARM
source/wham/src-M/cinfo.f
source/wham/src-M/energy_p_new.F
source/wham/src-M/include_unres/COMMON.LOCAL
source/wham/src-M/include_unres/COMMON.SCCOR
source/wham/src/include_unres/COMMON.SCCOR

17 files changed:
bin/unres/MD-M/unres_Tc_procor_oldparm_em64-D-symetr.exe [deleted file]
source/unres/src_MD-M/COMMON.SCCOR
source/unres/src_MD-M/cinfo.f
source/unres/src_MD-M/energy_p_new_barrier.F
source/unres/src_MD-M/parmread.F
source/unres/src_MD/energy_p_new_barrier.F
source/wham/src-M/COMMON.ALLPARM
source/wham/src-M/COMMON.VAR
source/wham/src-M/DIMENSIONS
source/wham/src-M/cinfo.f [new file with mode: 0644]
source/wham/src-M/energy_p_new.F
source/wham/src-M/include_unres/COMMON.LOCAL
source/wham/src-M/include_unres/COMMON.SCCOR
source/wham/src-M/int_from_cart.f
source/wham/src-M/parmread.F
source/wham/src-M/store_parm.F
source/wham/src/include_unres/COMMON.SCCOR

diff --git a/bin/unres/MD-M/unres_Tc_procor_oldparm_em64-D-symetr.exe b/bin/unres/MD-M/unres_Tc_procor_oldparm_em64-D-symetr.exe
deleted file mode 100755 (executable)
index 8260e99..0000000
Binary files a/bin/unres/MD-M/unres_Tc_procor_oldparm_em64-D-symetr.exe and /dev/null differ
index e29cb4c..154de36 100644 (file)
@@ -6,7 +6,7 @@ cc Parameters of the SCCOR term
       integer nterm_sccor,isccortyp,nsccortyp,nlor_sccor
       common/sccor/v1sccor(maxterm_sccor,3,-ntyp:ntyp,-ntyp:ntyp),
      &    v2sccor(maxterm_sccor,3,-ntyp:ntyp,-ntyp:ntyp),
-     &    v0sccor(maxterm_sccor,-ntyp:ntyp),
+     &    v0sccor(maxterm_sccor,-ntyp:ntyp,-ntyp:ntyp),
      &    nterm_sccor(-ntyp:ntyp,-ntyp:ntyp),isccortyp(-ntyp:ntyp),
      &    nsccortyp,
      &    nlor_sccor(-ntyp:ntyp,-ntyp:ntyp),
index f0d4a57..237f29d 100644 (file)
@@ -1,10 +1,10 @@
 C DO NOT EDIT THIS FILE - IT HAS BEEN GENERATED BY COMPINFO.C
-C 2 3 3452
+C 2 3 3460
       subroutine cinfo
       include 'COMMON.IOUNITS'
       write(iout,*)'++++ Compile info ++++'
-      write(iout,*)'Version 2.3 build 3452'
-      write(iout,*)'compiled Thu Oct  4 13:46:14 2012'
+      write(iout,*)'Version 2.3 build 3460'
+      write(iout,*)'compiled Mon Oct 29 07:58:47 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 '
index c8bb8eb..b9d17fe 100644 (file)
@@ -5725,6 +5725,7 @@ c      lprn=.true.
 c      write (iout,*) "EBACK_SC_COR",itau_start,itau_end
       esccor=0.0D0
       do i=itau_start,itau_end
+        if ((itype(i-2).eq.ntyp1).or.(itype(i-1).eq.ntyp1)) cycle
         esccor_ii=0.0D0
         isccori=isccortyp(itype(i-2))
         isccori1=isccortyp(itype(i-1))
@@ -5757,7 +5758,7 @@ c   3 = SC...Ca...Ca...SCi
           esccor=esccor+v1ij*cosphi+v2ij*sinphi
           gloci=gloci+j*(v2ij*cosphi-v1ij*sinphi)
         enddo
-c      write (iout,*) "EBACK_SC_COR",i,esccor,intertyp
+c      write (iout,*) "EBACK_SC_COR",i,v1ij*cosphi+v2ij*sinphi,intertyp
         gloc_sc(intertyp,i-3,icg)=gloc_sc(intertyp,i-3,icg)+wsccor*gloci
         if (lprn)
      &  write (iout,'(2(a3,2x,i3,2x),2i3,6f8.3/26x,6f8.3/)')
index 91b317c..4dd6b0a 100644 (file)
@@ -522,6 +522,9 @@ cc maxinter is maximum interaction sites
           read (isccor,*,end=119,err=119)
      &nterm_sccor(i,j),nlor_sccor(i,j)
           v0ijsccor=0.0d0
+          v0ijsccor1=0.0d0
+          v0ijsccor2=0.0d0
+          v0ijsccor3=0.0d0
           si=-1.0d0
           nterm_sccor(-i,j)=nterm_sccor(i,j)
           nterm_sccor(-i,-j)=nterm_sccor(i,j)
@@ -562,6 +565,9 @@ cc maxinter is maximum interaction sites
                endif
             endif
             v0ijsccor=v0ijsccor+si*v1sccor(k,l,i,j)
+            v0ijsccor1=v0ijsccor+si*v1sccor(k,l,-i,j)
+            v0ijsccor2=v0ijsccor+si*v1sccor(k,l,i,-j)
+            v0ijsccor3=v0ijsccor+si*v1sccor(k,l,-i,-j)
             si=-si
           enddo
           do k=1,nlor_sccor(i,j)
@@ -570,7 +576,10 @@ cc maxinter is maximum interaction sites
             v0ijsccor=v0ijsccor+vlor1sccor(k,i,j)/
      &(1+vlor3sccor(k,i,j)**2)
           enddo
-          v0sccor(i,j)=v0ijsccor
+          v0sccor(l,i,j)=v0ijsccor
+          v0sccor(l,-i,j)=v0ijsccor1
+          v0sccor(l,i,-j)=v0ijsccor2
+          v0sccor(l,-i,-j)=v0ijsccor3         
         enddo
       enddo
       enddo
index 4f753e4..1bc9be6 100644 (file)
@@ -5957,6 +5957,7 @@ 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
+        if ((itype(i-2).eq.ntyp1).or(itype(i-1).eq.ntyp1)) cycle
         isccori=isccortyp(itype(i-2))
         isccori1=isccortyp(itype(i-1))
         phii=phi(i)
index ba107a6..4c9a018 100644 (file)
      & alp_all(ntyp,max_parm),ebr_all(max_parm),d0cm_all(max_parm),
      & akcm_all(max_parm),akth_all(max_parm),akct_all(max_parm),
      & v1ss_all(max_parm),v2ss_all(max_parm),v3ss_all(max_parm),
-     & v1sccor_all(maxterm_sccor,ntyp,ntyp,max_parm),
-     & v2sccor_all(maxterm_sccor,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),
+     & v1sccor_all(maxterm_sccor,3,-ntyp:ntyp,-ntyp:ntyp,max_parm),
+     & v2sccor_all(maxterm_sccor,3,-ntyp:ntyp,-ntyp:ntyp,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),
      & nsingle_all(max_parm),ndouble_all(max_parm),
-     & nntheterm_all(max_parm),nterm_sccor_all(max_parm)
+     & nntheterm_all(max_parm),
+     &nterm_sccor_all(-ntyp:ntyp,-ntyp:ntyp,max_parm)
       common /allparm/ ww_all,vbldp0_all,akp_all,vbldsc0_all,aksc_all,
      & abond0_all,aa0thet_all,aathet_all,bbthet_all,ccthet_all,
      & ddthet_all,eethet_all,ffthet_all,ggthet_all,
index ad412d0..326d6ec 100644 (file)
@@ -2,14 +2,15 @@ C Store the geometric variables in the following COMMON block.
       integer ntheta,nphi,nside,nvar,ialph,ivar
       double precision theta,phi,alph,omeg,vbld,vbld_ref,
      &  theta_ref,phi_ref,alph_ref,omeg_ref,
-     &  costtab,sinttab,cost2tab,sint2tab,
+     &  costtab,sinttab,cost2tab,sint2tab,tauangle,omicron,
      &          xxtab,yytab,zztab
       common /var/ theta(maxres),phi(maxres),alph(maxres),omeg(maxres),
      &          vbld(2*maxres),
      &          costtab(maxres), sinttab(maxres), cost2tab(maxres),
      &          sint2tab(maxres),xxtab(maxres),yytab(maxres),
      &          zztab(maxres),
-     &          ialph(maxres,2),ivar(4*maxres2),ntheta,nphi,nside,nvar
+     &          ialph(maxres,2),ivar(4*maxres2),ntheta,nphi,nside,nvar,
+     &          omicron(2,maxres),tauangle(3,maxres)
 C Angles from experimental structure
       common /varref/ vbld_ref(maxres),
      &  theta_ref(maxres),phi_ref(maxres),
index c41916e..00fa77f 100644 (file)
@@ -48,7 +48,7 @@ C and the number of terms in double torsionals
       parameter (maxtor=4,maxterm=10,maxlor=3,maxtermd_1=8,maxtermd_2=8)
 c Max number of torsional terms in SCCOR
       integer maxterm_sccor
-      parameter (maxterm_sccor=3)
+      parameter (maxterm_sccor=6)
 C Max. number of residue types and parameters in expressions for
 C virtual-bond angle bending potentials
       integer maxthetyp,maxthetyp1,maxtheterm,maxtheterm2,maxtheterm3,
diff --git a/source/wham/src-M/cinfo.f b/source/wham/src-M/cinfo.f
new file mode 100644 (file)
index 0000000..962971a
--- /dev/null
@@ -0,0 +1,63 @@
+C DO NOT EDIT THIS FILE - IT HAS BEEN GENERATED BY COMPINFO.C
+C 0 0 699
+      subroutine cinfo
+      include 'COMMON.IOUNITS'
+      write(iout,*)'++++ Compile info ++++'
+      write(iout,*)'Version 0.0 build 699'
+      write(iout,*)'compiled Mon Oct 29 08:33:30 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 '
+      write(iout,*)'OS version:',
+     & ' #1 SMP Tue May 3 09:23:03 UTC 2011 '
+      write(iout,*)'flags:'
+      write(iout,*)'INSTALL_DIR = /users/software/mpich-1.2.7p1_int...'
+      write(iout,*)'BIN = ../../../bin'
+      write(iout,*)'CC = cc'
+      write(iout,*)'FC = ifort'
+      write(iout,*)'OPT = -g -CB'
+      write(iout,*)'FFLAGS = -c ${OPT} -I. -I./include_unres -I$(IN...'
+      write(iout,*)'LIBS = -L$(INSTALL_DIR)/lib -lmpich ../../lib/x...'
+      write(iout,*)'CPPFLAGS = -DMPI -DLINUX -DUNRES -DSPLITELE -DP...'
+      write(iout,*)'objects = \\'
+      write(iout,*)'   wham_multparm.o \\'
+      write(iout,*)'   bxread.o \\'
+      write(iout,*)'   xread.o \\'
+      write(iout,*)'   cxread.o \\'
+      write(iout,*)'   enecalc1.o \\'
+      write(iout,*)'   energy_p_new.o \\'
+      write(iout,*)'   gnmr1.o \\'
+      write(iout,*)'   initialize_p.o \\'
+      write(iout,*)'   molread_zs.o \\'
+      write(iout,*)'   openunits.o \\'
+      write(iout,*)'   readrtns.o \\'
+      write(iout,*)'   read_dist_constr.o \\'
+      write(iout,*)'   arcos.o \\'
+      write(iout,*)'   cartder.o \\'
+      write(iout,*)'   cartprint.o \\'
+      write(iout,*)'   chainbuild.o \\'
+      write(iout,*)'   geomout.o \\'
+      write(iout,*)'   icant.o \\'
+      write(iout,*)'   intcor.o \\'
+      write(iout,*)'   int_from_cart.o \\'
+      write(iout,*)'   make_ensemble1.o \\'
+      write(iout,*)'   matmult.o \\'
+      write(iout,*)'   misc.o \\'
+      write(iout,*)'   mygetenv.o \\'
+      write(iout,*)'   parmread.o \\'
+      write(iout,*)'   pinorm.o \\'
+      write(iout,*)'   printmat.o \\'
+      write(iout,*)'   proc_proc.o \\'
+      write(iout,*)'   rescode.o \\'
+      write(iout,*)'   setup_var.o \\'
+      write(iout,*)'   slices.o \\'
+      write(iout,*)'   store_parm.o \\'
+      write(iout,*)'   timing.o \\'
+      write(iout,*)'   wham_calc1.o'
+      write(iout,*)'objects_compar = \\'
+      write(iout,*)'        readrtns_compar.o \\'
+      write(iout,*)'        readpdb.o permut.o fitsq.o contact.o \\'
+      write(iout,*)'        elecont.o contfunc.o cont_frag.o conf_c...'
+      write(iout,*)'++++ End of compile info ++++'
+      return
+      end
index d407898..054ac88 100644 (file)
@@ -3072,7 +3072,9 @@ c
       logical energy_dec /.false./
       double precision u(3),ud(3)
       estr=0.0d0
-      write (iout,*) "distchainmax",distchainmax
+C      write (iout,*) "distchainmax",distchainmax
+      estr1=0.0d0
+c      write (iout,*) "distchainmax",distchainmax
       do i=nnt+1,nct
         if (itype(i-1).eq.21 .or. itype(i).eq.21) then
           estr1=estr1+gnmr1(vbld(i),-1.0d0,distchainmax)
@@ -4532,6 +4534,7 @@ c      lprn=.true.
 c      write (iout,*) "EBACK_SC_COR",iphi_start,iphi_end,nterm_sccor
       esccor=0.0D0
       do i=itau_start,itau_end
+        if ((itype(i-2).eq.ntyp1).or.(itype(i-1).eq.ntyp1)) cycle
         esccor_ii=0.0D0
         isccori=isccortyp(itype(i-2))
         isccori1=isccortyp(itype(i-1))
@@ -4563,12 +4566,14 @@ c   3 = SC...Ca...Ca...SCi
            esccor=esccor+v1ij*cosphi+v2ij*sinphi
            gloci=gloci+j*(v2ij*cosphi-v1ij*sinphi)
          enddo
-c      write (iout,*) "EBACK_SC_COR",i,esccor,intertyp
+c      write (iout,*) "EBACK_SC_COR",i,v1ij*cosphi+v2ij*sinphi,intertyp,
+c     & nterm_sccor(isccori,isccori1),isccori,isccori1
         gloc_sc(intertyp,i-3,icg)=gloc_sc(intertyp,i-3,icg)+wsccor*gloci
         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,
-     &  (v1sccor(j,itori,itori1),j=1,6),(v2sccor(j,itori,itori1),j=1,6)
+     &  (v1sccor(j,1,itori,itori1),j=1,6)
+     &  ,(v2sccor(j,1,itori,itori1),j=1,6)
         gsccor_loc(i-3)=gloci
        enddo !intertyp
       enddo
index 1d0f3aa..42ace37 100644 (file)
@@ -29,8 +29,17 @@ C Parameters of the side-chain probability distribution
      &  censc(3,maxlob,ntyp),gaussc(3,3,maxlob,ntyp),dsc0(ntyp1),
      &    nlob(ntyp1)
 C Virtual-bond lenghts
+      double precision vbl,vblinv,vblinv2,vbl_cis,vbl0,vbld_inv
+      integer loc_start,loc_end,ithet_start,ithet_end,iphi_start,
+     & iphi_end,iphid_start,iphid_end,ibond_start,ibond_end,
+     & ibondp_start,ibondp_end,ivec_start,ivec_end,iset_start,iset_end,
+     & iturn3_start,iturn3_end,iturn4_start,iturn4_end,iint_start,
+     & iint_end,iphi1_start,iphi1_end,itau_start,itau_end
       common /peptbond/ vbl,vblinv,vblinv2,vbl_cis,vbl0
       common /indices/ loc_start,loc_end,ithet_start,ithet_end,
-     &                 iphi_start,iphi_end
+     & iphi_start,iphi_end,iphid_start,iphid_end,ibond_start,ibond_end,
+     & ibondp_start,ibondp_end,ivec_start,ivec_end,iset_start,iset_end,
+     & iturn3_start,iturn3_end,iturn4_start,iturn4_end,iint_start,
+     & iint_end,iphi1_start,iphi1_end,itau_start,itau_end
 C Inverses of the actual virtual bond lengths
       common /invlen/ vbld_inv(maxres2)
index a28f621..b7f742a 100644 (file)
@@ -1,6 +1,19 @@
-C Parameters of the SCCOR term
-      double precision v1sccor,v2sccor
-      integer nterm_sccor
-      common/sccor/v1sccor(maxterm_sccor,20,20),
-     &    v2sccor(maxterm_sccor,20,20),
-     &    nterm_sccor
+cc Parameters of the SCCOR term
+      double precision v1sccor,v2sccor,vlor1sccor,
+     &                 vlor2sccor,vlor3sccor,gloc_sc,
+     &                 dcostau,dsintau,dtauangle,dcosomicron,
+     &                 domicron,v0sccor
+      integer nterm_sccor,isccortyp,nsccortyp,nlor_sccor
+      common /sccor/ v1sccor(maxterm_sccor,3,-ntyp:ntyp,-ntyp:ntyp),
+     &    v2sccor(maxterm_sccor,3,-ntyp:ntyp,-ntyp:ntyp),
+     &    v0sccor(maxterm_sccor,-ntyp:ntyp,-ntyp:ntyp),
+     &    vlor1sccor(maxterm_sccor,-ntyp:ntyp,-ntyp:ntyp),
+     &    vlor2sccor(maxterm_sccor,-ntyp:ntyp,-ntyp:ntyp),
+     &    vlor3sccor(maxterm_sccor,-ntyp:ntyp,-ntyp:ntyp),
+     &    gloc_sc(3,0:maxres2,10),
+     &    dcostau(3,3,3,maxres2),dsintau(3,3,3,maxres2),
+     &    dtauangle(3,3,3,maxres2),dcosomicron(3,3,3,maxres2),
+     &    domicron(3,3,3,maxres2),
+     &    nterm_sccor(-ntyp:ntyp,-ntyp:ntyp),isccortyp(-ntyp:ntyp),
+     &    nsccortyp,
+     &    nlor_sccor(-ntyp:ntyp,-ntyp:ntyp)
index 12d0c9c..6e22094 100644 (file)
@@ -26,6 +26,9 @@
         enddo
         be=0.0D0
         if (i.gt.2) phi(i+1)=beta(i-2,i-1,i,i+1)
+        if (i.gt.2) tauangle(3,i+1)=beta(i+nres-1,i-1,i,i+nres)
+        if (i.gt.2) tauangle(1,i+1)=beta(i-1+nres,i-1,i,i+1)
+        if (i.gt.2) tauangle(2,i+1)=beta(i-2,i-1,i,i+nres)
         omeg(i)=beta(nres+i,i,maxres2,i+1)
         theta(i+1)=alpha(i-1,i,i+1)
         alph(i)=alpha(nres+i,i,maxres2)
index 1c4d26a..da12677 100644 (file)
@@ -101,7 +101,7 @@ c Return if not own parameters
       call reads(controlcard,"TORDPAR",tordname_t,tordname)
       open (itordp,file=tordname_t,status='old')
       rewind(itordp)
-      call reads(controlcard,"SCCORAR",sccorname_t,sccorname)
+      call reads(controlcard,"SCCORPAR",sccorname_t,sccorname)
       open (isccor,file=sccorname_t,status='old')
       rewind(isccor)
       call reads(controlcard,"FOURIER",fouriername_t,fouriername)
@@ -588,6 +588,10 @@ CCC
 C
       read (isccor,*) nsccortyp
       read (isccor,*) (isccortyp(i),i=1,ntyp)
+      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
@@ -596,13 +600,56 @@ cc maxinter is maximum interaction sites
         do j=1,nsccortyp
           read (isccor,*)
      &nterm_sccor(i,j),nlor_sccor(i,j)
+          write (iout,*) nterm_sccor(i,j)
           v0ijsccor=0.0d0
+          v0ijsccor1=0.0d0
+          v0ijsccor2=0.0d0
+          v0ijsccor3=0.0d0
           si=-1.0d0
-
+          nterm_sccor(-i,j)=nterm_sccor(i,j)
+          nterm_sccor(-i,-j)=nterm_sccor(i,j)
+          nterm_sccor(i,-j)=nterm_sccor(i,j)
+          write (iout,*) nterm_sccor(i,j),nterm_sccor(-i,j),
+     &    nterm_sccor(-i,-j),nterm_sccor(i,-j)
           do k=1,nterm_sccor(i,j)
             read (isccor,*) kk,v1sccor(k,l,i,j)
      &    ,v2sccor(k,l,i,j)
+            if (j.eq.iscprol) then
+             if (i.eq.isccortyp(10)) then
+             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)*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)
+             endif
+            else
+             if (i.eq.isccortyp(10)) then
+             v1sccor(k,l,i,-j)=v1sccor(k,l,i,j)
+             v2sccor(k,l,i,-j)=-v2sccor(k,l,i,j)
+             else
+               if (j.eq.isccortyp(10)) then
+             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
+               endif
+            endif
             v0ijsccor=v0ijsccor+si*v1sccor(k,l,i,j)
+            v0ijsccor1=v0ijsccor+si*v1sccor(k,l,-i,j)
+            v0ijsccor2=v0ijsccor+si*v1sccor(k,l,i,-j)
+            v0ijsccor3=v0ijsccor+si*v1sccor(k,l,-i,-j)
             si=-si
            enddo
           do k=1,nlor_sccor(i,j)
@@ -611,7 +658,10 @@ cc maxinter is maximum interaction sites
             v0ijsccor=v0ijsccor+vlor1sccor(k,i,j)/
      &(1+vlor3sccor(k,i,j)**2)
           enddo
-          v0sccor(i,j)=v0ijsccor
+          v0sccor(l,i,j)=v0ijsccor
+          v0sccor(l,-i,j)=v0ijsccor1
+          v0sccor(l,i,-j)=v0ijsccor2
+          v0sccor(l,-i,-j)=v0ijsccor3
           enddo
         enddo
       enddo
index 93c5b5e..0811726 100644 (file)
@@ -226,16 +226,16 @@ c Store disulfide-bond parameters
       v2ss_all(iparm)=v2ss
       v3ss_all(iparm)=v3ss
 c Store SC-backbone correlation parameters
-      do i=1,nsccortyp
-       do j=1,nsccortyp
+      do i=-nsccortyp,nsccortyp
+       do j=-nsccortyp,nsccortyp
 
-      nterm_sccor(j,i)=nterm_sccor_all(j,i,iparm)
+      nterm_sccor_all(j,i,iparm)=nterm_sccor(j,i)
 c      do i=1,20
 c        do j=1,20
          do l=1,3
           do k=1,nterm_sccor(j,i)
-            v1sccor(k,l,j,i)=v1sccor_all(k,l,j,i,iparm)
-            v2sccor(k,l,j,i)=v2sccor_all(k,l,j,i,iparm)
+            v1sccor_all(k,l,j,i,iparm)=v1sccor(k,l,j,i)
+            v2sccor_all(k,l,j,i,iparm)=v2sccor(k,l,j,i)
            enddo
           enddo
         enddo
@@ -471,14 +471,14 @@ c Restore disulfide-bond parameters
       v2ss=v2ss_all(iparm)
       v3ss=v3ss_all(iparm)
 c Restore SC-backbone correlation parameters
-      do i=1,nsccortyp
-       do j=1,nsccortyp
+      do i=-nsccortyp,nsccortyp
+       do j=-nsccortyp,nsccortyp
 
-      nterm_sccor_all(j,i,iparm)=nterm_sccor(j,i)
+      nterm_sccor(j,i)=nterm_sccor_all(j,i,iparm)
         do l=1,3
            do k=1,nterm_sccor(j,i)
-            v1sccor_all(k,l,j,i,iparm)=v1sccor(k,l,j,i)
-            v2sccor_all(k,l,j,i,iparm)=v2sccor(k,l,j,i)
+            v1sccor(k,l,j,i)=v1sccor_all(k,l,j,i,iparm)
+            v2sccor(k,l,j,i)=v2sccor_all(k,l,j,i,iparm)
            enddo
           enddo
         enddo
index 28d748a..efe2f80 100644 (file)
@@ -4,15 +4,17 @@ cc Parameters of the SCCOR term
      &                 dcostau,dsintau,dtauangle,dcosomicron,
      &                 domicron,v0sccor
       integer nterm_sccor,isccortyp,nsccortyp,nlor_sccor
-      common /sccor/ v1sccor(maxterm_sccor,3,20,20),
-     &    v2sccor(maxterm_sccor,3,20,20),
-     &    v0sccor(ntyp,ntyp),
-     &    vlor1sccor(maxterm_sccor,20,20),
-     &    vlor2sccor(maxterm_sccor,20,20),
-     &    vlor3sccor(maxterm_sccor,20,20),gloc_sc(3,0:maxres2,10),
+      common /sccor/ v1sccor(maxterm_sccor,3,-ntyp:ntyp,-ntyp:ntyp),
+     &    v2sccor(maxterm_sccor,3,-ntyp:ntyp,-ntyp:ntyp),
+     &    v0sccor(maxterm_sccor,-ntyp:ntyp),
+     &    vlor1sccor(maxterm_sccor,-ntyp:ntyp,-ntyp:ntyp),
+     &    vlor2sccor(maxterm_sccor,-ntyp:ntyp,-ntyp:ntyp),
+     &    vlor3sccor(maxterm_sccor,-ntyp:ntyp,-ntyp:ntyp),
+     &    gloc_sc(3,0:maxres2,10),
      &    dcostau(3,3,3,maxres2),dsintau(3,3,3,maxres2),
      &    dtauangle(3,3,3,maxres2),dcosomicron(3,3,3,maxres2),
      &    domicron(3,3,3,maxres2),
-     &    nterm_sccor(ntyp,ntyp),isccortyp(ntyp),nsccortyp,
-     &    nlor_sccor(ntyp,ntyp)
+     &    nterm_sccor(-ntyp:ntyp,-ntyp:ntyp),isccortyp(-ntyp:ntyp),
+     &    nsccortyp,
+     &    nlor_sccor(-ntyp:ntyp,-ntyp:ntyp)