From 051a175eddf6c72096f0d0c088a66cb5d278dc88 Mon Sep 17 00:00:00 2001 From: Adam Kazimierz Sieradzan Date: Mon, 29 Oct 2012 08:37:44 -0400 Subject: [PATCH] Wprowadzenie SCCOR dla wham-M 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 --- source/unres/src_MD-M/COMMON.SCCOR | 2 +- source/unres/src_MD-M/cinfo.f | 6 +-- source/unres/src_MD-M/energy_p_new_barrier.F | 3 +- source/unres/src_MD-M/parmread.F | 11 ++++- source/unres/src_MD/energy_p_new_barrier.F | 1 + source/wham/src-M/COMMON.ALLPARM | 18 +++++--- source/wham/src-M/COMMON.VAR | 5 +- source/wham/src-M/DIMENSIONS | 2 +- source/wham/src-M/cinfo.f | 63 ++++++++++++++++++++++++++ source/wham/src-M/energy_p_new.F | 11 +++-- source/wham/src-M/include_unres/COMMON.LOCAL | 11 ++++- source/wham/src-M/include_unres/COMMON.SCCOR | 25 +++++++--- source/wham/src-M/int_from_cart.f | 3 ++ source/wham/src-M/parmread.F | 56 +++++++++++++++++++++-- source/wham/src-M/store_parm.F | 20 ++++---- source/wham/src/include_unres/COMMON.SCCOR | 18 ++++---- 16 files changed, 208 insertions(+), 47 deletions(-) create mode 100644 source/wham/src-M/cinfo.f diff --git a/source/unres/src_MD-M/COMMON.SCCOR b/source/unres/src_MD-M/COMMON.SCCOR index e29cb4c..154de36 100644 --- a/source/unres/src_MD-M/COMMON.SCCOR +++ b/source/unres/src_MD-M/COMMON.SCCOR @@ -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), diff --git a/source/unres/src_MD-M/cinfo.f b/source/unres/src_MD-M/cinfo.f index f0d4a57..237f29d 100644 --- a/source/unres/src_MD-M/cinfo.f +++ b/source/unres/src_MD-M/cinfo.f @@ -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 ' 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 c8bb8eb..b9d17fe 100644 --- a/source/unres/src_MD-M/energy_p_new_barrier.F +++ b/source/unres/src_MD-M/energy_p_new_barrier.F @@ -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/)') diff --git a/source/unres/src_MD-M/parmread.F b/source/unres/src_MD-M/parmread.F index 91b317c..4dd6b0a 100644 --- a/source/unres/src_MD-M/parmread.F +++ b/source/unres/src_MD-M/parmread.F @@ -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 diff --git a/source/unres/src_MD/energy_p_new_barrier.F b/source/unres/src_MD/energy_p_new_barrier.F index 4f753e4..1bc9be6 100644 --- a/source/unres/src_MD/energy_p_new_barrier.F +++ b/source/unres/src_MD/energy_p_new_barrier.F @@ -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) diff --git a/source/wham/src-M/COMMON.ALLPARM b/source/wham/src-M/COMMON.ALLPARM index ba107a6..4c9a018 100644 --- a/source/wham/src-M/COMMON.ALLPARM +++ b/source/wham/src-M/COMMON.ALLPARM @@ -49,17 +49,21 @@ & 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, diff --git a/source/wham/src-M/COMMON.VAR b/source/wham/src-M/COMMON.VAR index ad412d0..326d6ec 100644 --- a/source/wham/src-M/COMMON.VAR +++ b/source/wham/src-M/COMMON.VAR @@ -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), diff --git a/source/wham/src-M/DIMENSIONS b/source/wham/src-M/DIMENSIONS index c41916e..00fa77f 100644 --- a/source/wham/src-M/DIMENSIONS +++ b/source/wham/src-M/DIMENSIONS @@ -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 index 0000000..962971a --- /dev/null +++ b/source/wham/src-M/cinfo.f @@ -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 diff --git a/source/wham/src-M/energy_p_new.F b/source/wham/src-M/energy_p_new.F index d407898..054ac88 100644 --- a/source/wham/src-M/energy_p_new.F +++ b/source/wham/src-M/energy_p_new.F @@ -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 diff --git a/source/wham/src-M/include_unres/COMMON.LOCAL b/source/wham/src-M/include_unres/COMMON.LOCAL index 1d0f3aa..42ace37 100644 --- a/source/wham/src-M/include_unres/COMMON.LOCAL +++ b/source/wham/src-M/include_unres/COMMON.LOCAL @@ -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) diff --git a/source/wham/src-M/include_unres/COMMON.SCCOR b/source/wham/src-M/include_unres/COMMON.SCCOR index a28f621..b7f742a 100644 --- a/source/wham/src-M/include_unres/COMMON.SCCOR +++ b/source/wham/src-M/include_unres/COMMON.SCCOR @@ -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) diff --git a/source/wham/src-M/int_from_cart.f b/source/wham/src-M/int_from_cart.f index 12d0c9c..6e22094 100644 --- a/source/wham/src-M/int_from_cart.f +++ b/source/wham/src-M/int_from_cart.f @@ -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) diff --git a/source/wham/src-M/parmread.F b/source/wham/src-M/parmread.F index 1c4d26a..da12677 100644 --- a/source/wham/src-M/parmread.F +++ b/source/wham/src-M/parmread.F @@ -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 diff --git a/source/wham/src-M/store_parm.F b/source/wham/src-M/store_parm.F index 93c5b5e..0811726 100644 --- a/source/wham/src-M/store_parm.F +++ b/source/wham/src-M/store_parm.F @@ -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 diff --git a/source/wham/src/include_unres/COMMON.SCCOR b/source/wham/src/include_unres/COMMON.SCCOR index 28d748a..efe2f80 100644 --- a/source/wham/src/include_unres/COMMON.SCCOR +++ b/source/wham/src/include_unres/COMMON.SCCOR @@ -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) -- 1.7.9.5