From 910d66dd0691a8626df9102a45f6891aacb28981 Mon Sep 17 00:00:00 2001 From: Adam Kazimierz Sieradzan Date: Fri, 26 Oct 2012 05:47:18 -0400 Subject: [PATCH] Rozgrzebany SCCOR dla wham-M --- source/wham/src-M/energy_p_new.F | 45 ++++++++++++++++++++++--------- source/wham/src-M/initialize_p.F | 5 ++++ source/wham/src-M/parmread.F | 54 ++++++++++++++++++++++++++++---------- source/wham/src-M/store_parm.F | 34 +++++++++++++++--------- 4 files changed, 98 insertions(+), 40 deletions(-) diff --git a/source/wham/src-M/energy_p_new.F b/source/wham/src-M/energy_p_new.F index 8231183..e93e9e3 100644 --- a/source/wham/src-M/energy_p_new.F +++ b/source/wham/src-M/energy_p_new.F @@ -228,7 +228,6 @@ C & +wturn3*fact(2)*gel_loc_turn3(i) & +wturn6*fact(5)*gel_loc_turn6(i) & +wel_loc*fact(2)*gel_loc_loc(i) - & +wsccor*fact(1)*gsccor_loc(i) enddo endif return @@ -4568,26 +4567,46 @@ C Set lprn=.true. for debugging c lprn=.true. c write (iout,*) "EBACK_SC_COR",iphi_start,iphi_end,nterm_sccor esccor=0.0D0 - do i=iphi_start,iphi_end - if (itype(i-2).eq.ntyp1 .or. itype(i-1).eq.ntyp1) cycle + do i=itau_start,itau_end esccor_ii=0.0D0 - itori=iabs(itype(i-2)) - itori1=iabs(itype(i-1)) + isccori=isccortyp(itype(i-2)) + isccori1=isccortyp(itype(i-1)) phii=phi(i) + do intertyp=1,3 !intertyp +cc Added 09 May 2012 (Adasko) +cc Intertyp means interaction type of backbone mainchain correlation: +c 1 = SC...Ca...Ca...Ca +c 2 = Ca...Ca...Ca...SC +c 3 = SC...Ca...Ca...SCi gloci=0.0D0 - do j=1,nterm_sccor - v1ij=v1sccor(j,itori,itori1) - v2ij=v2sccor(j,itori,itori1) - cosphi=dcos(j*phii) - sinphi=dsin(j*phii) - esccor=esccor+v1ij*cosphi+v2ij*sinphi - gloci=gloci+j*(v2ij*cosphi-v1ij*sinphi) - enddo + if (((intertyp.eq.3).and.((itype(i-2).eq.10).or. + & (itype(i-1).eq.10).or.(itype(i-2).eq.ntyp1).or. + & (itype(i-1).eq.ntyp1))) + & .or. ((intertyp.eq.1).and.((itype(i-2).eq.10) + & .or.(itype(i-2).eq.ntyp1).or.(itype(i-1).eq.ntyp1) + & .or.(itype(i).eq.ntyp1))) + & .or.((intertyp.eq.2).and.((itype(i-1).eq.10).or. + & (itype(i-1).eq.ntyp1).or.(itype(i-2).eq.ntyp1).or. + & (itype(i-3).eq.ntyp1)))) cycle + if ((intertyp.eq.2).and.(i.eq.4).and.(itype(1).eq.ntyp1)) cycle + if ((intertyp.eq.1).and.(i.eq.nres).and.(itype(nres).eq.ntyp1)) + & cycle + do j=1,nterm_sccor(isccori,isccori1) + v1ij=v1sccor(j,intertyp,isccori,isccori1) + v2ij=v2sccor(j,intertyp,isccori,isccori1) + cosphi=dcos(j*tauangle(intertyp,i)) + sinphi=dsin(j*tauangle(intertyp,i)) + esccor=esccor+v1ij*cosphi+v2ij*sinphi + gloci=gloci+j*(v2ij*cosphi-v1ij*sinphi) + enddo +c write (iout,*) "EBACK_SC_COR",i,esccor,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/)') & 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) gsccor_loc(i-3)=gloci + enddo !intertyp enddo return end diff --git a/source/wham/src-M/initialize_p.F b/source/wham/src-M/initialize_p.F index 175e7a4..615c3af 100644 --- a/source/wham/src-M/initialize_p.F +++ b/source/wham/src-M/initialize_p.F @@ -513,6 +513,9 @@ C Partition local interactions call int_bounds(nct-nnt-2,iphi_start,iphi_end) iphi_start=iphi_start+nnt+2 iphi_end=iphi_end+nnt+2 + call int_bounds(nres-3,itau_start,itau_end) + itau_start=itau_start+3 + itau_end=itau_end+3 if (lprint) then write (iout,*) 'Processor:',MyID, & ' loc_start',loc_start,' loc_end',loc_end, @@ -536,6 +539,8 @@ C Partition local interactions ithet_end=nres iphi_start=nnt+3 iphi_end=nct + itau_start=4 + itau_end=nres #endif return end diff --git a/source/wham/src-M/parmread.F b/source/wham/src-M/parmread.F index bae0f09..7823ab3 100644 --- a/source/wham/src-M/parmread.F +++ b/source/wham/src-M/parmread.F @@ -690,28 +690,54 @@ C Martix of D parameters for two dimesional fourier series enddo endif #endif +C Read of Side-chain backbone correlation parameters +C Modified 11 May 2012 by Adasko +CCC C -C 5/21/07 (AL) Read coefficients of the backbone-local sidechain-local -C correlation energies. -C - read (isccor,*) nterm_sccor - do i=1,20 - do j=1,20 - read (isccor,'(a)') - do k=1,nterm_sccor - read (isccor,*) - & kk,v1sccor(k,i,j),v2sccor(k,i,j) + read (isccor,*) nsccortyp + read (isccor,*) (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,*) + &nterm_sccor(i,j),nlor_sccor(i,j) + v0ijsccor=0.0d0 + si=-1.0d0 + + do k=1,nterm_sccor(i,j) + read (isccor,*) 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,*) 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) if (lprint) then write (iout,'(/a/)') 'Torsional constants of SCCORR:' - do i=1,20 - do j=1,20 + do i=1,nsccortyp + do j=1,nsccortyp write (iout,*) 'ityp',i,' jtyp',j - do k=1,nterm_sccor - write (iout,'(2(1pe15.5))') v1sccor(k,i,j),v2sccor(k,i,j) + write (iout,*) 'Fourier constants' + do k=1,nterm_sccor(i,j) + write (iout,'(2(1pe15.5))') + & v1sccor(k,l,i,j),v2sccor(k,l,i,j) + enddo + write (iout,*) 'Lorenz constants' + do k=1,nlor_sccor(i,j) + write (iout,'(3(1pe15.5))') + & vlor1sccor(k,i,j),vlor2sccor(k,i,j),vlor3sccor(k,i,j) enddo enddo enddo diff --git a/source/wham/src-M/store_parm.F b/source/wham/src-M/store_parm.F index 461a013..115e3bb 100644 --- a/source/wham/src-M/store_parm.F +++ b/source/wham/src-M/store_parm.F @@ -1,4 +1,4 @@ - subroutine store_parm(iparm) + subroutine store_parm(iparm) C C Store parameters of set IPARM C valence angles and the side chains and energy parameters. @@ -237,12 +237,17 @@ c Store disulfide-bond parameters v2ss_all(iparm)=v2ss v3ss_all(iparm)=v3ss c Store SC-backbone correlation parameters - nterm_sccor_all(iparm)=nterm_sccor - do i=1,20 - do j=1,20 - do k=1,nterm_sccor - v1sccor_all(k,i,j,iparm)=v1sccor(k,i,j) - v2sccor_all(k,i,j,iparm)=v2sccor(k,i,j) + do i=1,nsccortyp + do j=1,nsccortyp + + nterm_sccor(j,i)=nterm_sccor_all(j,i,iparm) +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) + enddo enddo enddo enddo @@ -487,12 +492,15 @@ c Restore disulfide-bond parameters v2ss=v2ss_all(iparm) v3ss=v3ss_all(iparm) c Restore SC-backbone correlation parameters - nterm_sccor=nterm_sccor_all(iparm) - do i=1,20 - do j=1,20 - do k=1,nterm_sccor - v1sccor(k,i,j)=v1sccor_all(k,i,j,iparm) - v2sccor(k,i,j)=v2sccor_all(k,i,j,iparm) + do i=1,nsccortyp + do j=1,nsccortyp + + nterm_sccor_all(j,i,iparm)=nterm_sccor(j,i) + 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) + enddo enddo enddo enddo -- 1.7.9.5