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)
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),
C DO NOT EDIT THIS FILE - IT HAS BEEN GENERATED BY COMPINFO.C
-C 2 3 3456
+C 2 3 3460
subroutine cinfo
include 'COMMON.IOUNITS'
write(iout,*)'++++ Compile info ++++'
- write(iout,*)'Version 2.3 build 3456'
- write(iout,*)'compiled Tue Oct 16 03:04:11 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 '
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))
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/)')
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)
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)
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
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)
& 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)
+ & 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),
& 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,
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),
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,
C DO NOT EDIT THIS FILE - IT HAS BEEN GENERATED BY COMPINFO.C
-C 0 0 678
+C 0 0 699
subroutine cinfo
include 'COMMON.IOUNITS'
write(iout,*)'++++ Compile info ++++'
- write(iout,*)'Version 0.0 build 678'
- write(iout,*)'compiled Fri Aug 17 02:06:23 2012'
+ 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 '
double precision u(3),ud(3)
estr=0.0d0
estr1=0.0d0
- write (iout,*) "distchainmax",distchainmax
+c write (iout,*) "distchainmax",distchainmax
do i=nnt+1,nct
if (itype(i-1).eq.ntyp1 .or. itype(i).eq.ntyp1) then
estr1=estr1+gnmr1(vbld(i),-1.0d0,distchainmax)
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))
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
& 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
+ & 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,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
+ & iint_end,iphi1_start,iphi1_end,itau_start,itau_end
C Inverses of the actual virtual bond lengths
common /invlen/ vbld_inv(maxres2)
-C Parameters of the SCCOR term
- double precision v1sccor,v2sccor
- integer nterm_sccor
- common/torsion/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)
+
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)
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)
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
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)
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
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
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
& 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(maxterm_sccor,20),
- & 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)