X-Git-Url: http://mmka.chem.univ.gda.pl/gitweb/?a=blobdiff_plain;f=source%2Funres%2Fsrc_CSA%2Fparmread.F;h=3955c0c73d2aaa2d39840a67d4ce749dd57df8ae;hb=c44fbf8cc1fb0b430dc5c68b9bc63582b2708be4;hp=0a99250111d6da04291887a9e078a05f233eedcc;hpb=0874c4ea42598369272a66bf4a345dcf7bff8b1f;p=unres.git diff --git a/source/unres/src_CSA/parmread.F b/source/unres/src_CSA/parmread.F index 0a99250..3955c0c 100644 --- a/source/unres/src_CSA/parmread.F +++ b/source/unres/src_CSA/parmread.F @@ -553,28 +553,133 @@ C 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,*,end=119,err=119) nterm_sccor - do i=1,20 - do j=1,20 - read (isccor,'(a)') - do k=1,nterm_sccor - read (isccor,*,end=119,err=119) kk,v1sccor(k,i,j), - & v2sccor(k,i,j) + read (isccor,*,end=119,err=119) nsccortyp +#ifdef SCCORPDB + read (isccor,*,end=119,err=119) (isccortyp(i),i=1,ntyp) +C For D-aminoacid uncomment +C do i=-ntyp,-1 +C isccortyp(i)=-isccortyp(-i) +C enddo + iscprol=isccortyp(20) +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=119,err=119) + &nterm_sccor(i,j),nlor_sccor(i,j) + v0ijsccor=0.0d0 + si=-1.0d0 +C nterm_sccor(-i,j)=nterm_sccor(i,j) +C nterm_sccor(-i,-j)=nterm_sccor(i,j) +C nterm_sccor(i,-j)=nterm_sccor(i,j) + do k=1,nterm_sccor(i,j) + read (isccor,*,end=119,err=119) kk,v1sccor(k,l,i,j) + & ,v2sccor(k,l,i,j) +C if (j.eq.iscprol) then +C if (i.eq.isccortyp(10)) then +C v1sccor(k,l,i,-j)=v1sccor(k,l,i,j) +C v2sccor(k,l,i,-j)=-v2sccor(k,l,i,j) +C else +C v1sccor(k,l,i,-j)=v1sccor(k,l,i,j)*0.5d0 +C & +v2sccor(k,l,i,j)*dsqrt(0.75d0) +C v2sccor(k,l,i,-j)=-v2sccor(k,l,i,j)*0.5d0 +C & +v1sccor(k,l,i,j)*dsqrt(0.75d0) +C v1sccor(k,l,-i,-j)=v1sccor(k,l,i,j) +C v2sccor(k,l,-i,-j)=-v2sccor(k,l,i,j) +C v1sccor(k,l,-i,j)=v1sccor(k,l,i,-j) +C v2sccor(k,l,-i,j)=-v2sccor(k,l,i,-j) +C endif +CC else +C if (i.eq.isccortyp(10)) then +C v1sccor(k,l,i,-j)=v1sccor(k,l,i,j) +C v2sccor(k,l,i,-j)=-v2sccor(k,l,i,j) +C else +C if (j.eq.isccortyp(10)) then +C v1sccor(k,l,-i,j)=v1sccor(k,l,i,j) +C v2sccor(k,l,-i,j)=-v2sccor(k,l,i,j) +C else +C v1sccor(k,l,i,-j)=-v1sccor(k,l,i,j) +C v2sccor(k,l,i,-j)=-v2sccor(k,l,i,j) +C v1sccor(k,l,-i,-j)=v1sccor(k,l,i,j) +C v2sccor(k,l,-i,-j)=-v2sccor(k,l,i,j) +C v1sccor(k,l,-i,j)=v1sccor(k,l,i,-j) +C v2sccor(k,l,-i,j)=-v2sccor(k,l,i,-j) +C endif +C endif +C endif + 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) +#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 of SCCORR:' - do i=1,20 - do j=1,20 + write (iout,'(/a/)') 'Torsional constants of SCCORR:' +C do i=1,20 +C do j=1,20 +C write (iout,'(/a/)') 'Torsional constants:' + 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) +C do k=1,nterm_sccor +C write (iout,'(2(1pe15.5))') v1sccor(k,i,j),v2sccor(k,i,j) +C 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